yum upgrade 和 yum update 区别

yum -y update

升级所有包,改变软件设置和系统设置,系统版本内核都升级

yum -y upgrade

升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变

 

等效指令

sudo dnf upgrade –refresh

搬家到GCP Centos 7 (SELinux)日志:

系统环境:Centos 7
selinux:开启
Apache:2.4
PHP :5.4
Mysql:GCP 云SQL

GCP目标系统基础运行LAMP环境搭建:

yun -y install httpd php php-gd php-mbstring php-mysql wget unzip zip nano
可选组件安装:
yun -y install php-opcache php-devel php-mcrypt php-pdo php-fpm php-xml php-common

接着开始网站搬家

1、备份数据库。

借助帝国备份王备份数据库:http://ebak.phome.net/

2、打包网站。

使用zip命令打包网站以及备份数据库文件
zip -q -r www.zip /var/www/
格式:zip 参数 压缩包名字 压缩文件夹目录
然后mv移动压缩包文件到你网站根目录。

3、转移打包文件。

mkdir创建一个临时目录,并进入
使用wget http://clin003.com/www.zip (记得域名替换为自己的)

4、解压。

unzip www.zip

5、导入数据库。

使用帝国备份王,恢复备份的数据库

6、测试网站。

如果只有一个网站,并且使用了默认网站目录,那么到此基本没有什么问题,一切顺利。

……

遇到Selinux之文件属性问题

然而如果你爱折腾,使用了非默认网站目录,那么可能会发现,从上一步开始,怎么搞也是
(13)Permission denied AH00035

[core:error] [pid 1519] (13)Permission denied: [client 1.11.21.21:19224] AH00035: access to /index.html denied (filesystem path '/clin003.com/index.html') because search permissions are missing on a component of the path

这个看上去很容易解决,不就是没权限么!
排查顺序如下:
cd /clin003.com/
ls -l index.html
chmod 644 index.html

然后
ls -la
chmod +x .

重启httpd服务。
问题依旧Permission denied

经过Google,翻阅文档:(13) Permission Denied
最终找到解决办法
那就是selinux开启的情况下。
ls -alZ
查看文档权限属性
通过对比默认目录和自定义目录,发现问题
[gcp@clin003.com]$ ls -alZ
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .
drwxr-xr-x. root root system_u:object_r:var_t:s0 ..
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
[gcp@clin003.com]$ ls -alZ
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
-rw-r–r–. root root unconfined_u:object_r:default_t:s0 index.html
通过对比可以发现同样的owner属性,实际的安全属性却不同
那么解决的办法就是给自定义目录及目录下文件添加“httpd_sys_content_t”属性,命令如下:
chcon -R -t httpd_sys_content_t /clin003.com

遇到Selinux之php语法错误问题解决方法

Parse error: syntax error, unexpected end of file in *.php on line *

这个比较容易解决,定位到目标行后发现是php结尾处错误!检查php.ini配置文件

找到short_open_tag

把short_open_tag = off 改为 short_open_tag = on

开启段标签模式就可一解决。

 

遇到Selinux之PHP连接MySQL出现 Can’t connect to MySQL server 的解决方法

问题情景,命令行mysql客户端可以连接成功,网站php连接不成功。

无论是指定IP、端口的tcp/ip方式连接,或者是用unix socket方式连接,报错信息都类似:

Could not connect: Can't connect to MySQL server on 'MYSQL.SERVER' (13)

php.ini配置文件,php mysql组件,防火墙均检查没问题。

最终把目标盯在SElinux

getsebool -a|grep -i httpd

可以看到这里设置了httpd进程的许可模式,再仔细看一下,有一个选项:

getsebool -a|grep -i httpd_can_network_connect
httpd_can_network_connect --> off

原来是SELinux限制了httpd对外访问的权限。将其开启即可:

setsebool -P httpd_can_network_connect=1

如果对SELinux不熟悉,也可以直接修改系统配置文件 /etc/sysconfig/selinux,全局关闭SELINUX!

#SELINUX=enforcing
#把设置改为disabled
SELINUX=disabled

然后重启操作系统,即可生效。
或者,直接执行命令,可在线生效:
[gcp@clin003.com]# setenforce 0
setenforce: SELinux is disabled

至此,坑已填完,网站已搬家完成!

参考文档:

(13) Permission Denied

https://wiki.apache.org/httpd/13PermissionDenied

SELinux导致PHP连接MySQL异常

https://yq.aliyun.com/ziliao/145002

 

apt-get 的几个命令

apt-get 就是从网上下载包,并安装到本地

手工下载 dpkg 包,而后 ”dpkg -i 包名“ 也可以

但找包,检查dependency 太辛苦,这就是 apt-get 帮助做的事情

从哪里下载, 官方url

在/etc/apt/sources.list中,可以看看

开头 deb  代表编译好的包, des-src代表源代码

distribution 代表发行版本

update 三个命令的区别

apt-get update 更新软件列表。
apt-get upgrade 更新软件。
apt-get dist-upgrade 更新系统版本。

查询可安装的 package 

很多时候忘记了package 的名字

用 apt-cache search <包名>  查询就是了,其原理应该是到 package  的index文件中去做正则匹配

查询已经安装的package 

使用 dpkg -S 命令

 

Centos 7 yum安装php 记录

CentOS下yum安装PHP

安装 apache 服务

#yum -y install httpd

安装 PHP

#yum -y install  php  php-gd php-mbstring php-mysql

使用
locate php.ini
查看php.ini文件在哪个位置
php -v 查看版本号

添加一个zend gurad loader模块,

在/etc/php.d/目录下新建zend_gurad.ini 然后参考README.txt

1. Extract the Zend Loader package.

2. Locate and extract the ZendGuardLoader.so (Linux) or ZendLoader.dll (Windows) that corresponds to your php version.

3. Add the following line to your php.ini file for loading the ZendGuardLoader:
Linux and Mac OS X: zend_extension=<full_path_to_ZendGuardLoader.so>
Windows non-thread safe: zend_extension=<full_path_to_ZendLoader.dll>

4. Add an aditional line to your php.ini for enabling ZendGuardLoader
; Enables loading encoded scripts. The default value is On
zend_loader.enable=1

5. Optional: following lines can be added your php.ini file for ZendGuardLoader configuration:

; Disable license checks (for performance reasons)
zend_loader.disable_licensing=0
; The Obfuscation level supported by Zend Guard Loader. The levels are detailed in the official Zend Guard Documentation. 0 – no obfuscation is enabled
zend_loader.obfuscation_level_support=3
; Path to where licensed Zend products should look for the product license. For more information on how to create a license file, see the Zend Guard User Guide
zend_loader.license_path=

6. If you use Zend debugger as well, please make sure to load it after the Zend guard Loader

7. If you use ioncube loader, please make sure to load it before Zend guard Loader

8. Restart your Web server.

 

 

配置www

nano /etc/httpd/conf.d/www.conf

<VirtualHost *:80>
ServerName luoyangbang.com
ServerAlias *.luoyangbang.com
DocumentRoot /var/www/abc/
<Directory /var/www/abc>
Require all granted
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>

 

重启对应服务

  1. systemctl restart mysqld.service
  2. systemctl restart httpd.service

 

添加 yum 源

CentOS 6.x 的源

# rpm -Uvh http://download.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

CentOS 7.x 的源

# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

安装 PHP

# yum install –enablerepo=remi,remi-php56 php php-opcache php-pecl-apcu php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-pdo php-pear php-fpm php-cli php-xml php-bcmath php-process php-gd php-common

注:安装5.6版本为remi-php56,安装5.5版本为remi-php55

查看 PHP 版本

# php -v

CentOS 使用 yum update 命令不升级内核和系统版本的方法

阿里云9折推荐码 : BKJC2G

特殊需要不可以更新内核和系统版本,方法如下

vi /etc/yum.conf

# 在 [main] 的最后添加:
exclude=kernel* centos-release*
# 按 Esc 键,输入 :wq,然后回车

然后使用yum update 就不会更新 CentOS内核和系统版本了。

PS:

查看系统版本  cat /etc/issue
查看内核版本  uname -a

Centos 5.8 64位 yum 安装 php5.2

由于程序运行环境需要,不得不使用老掉牙的PHP5.2以下版本。

下面提供两种方法安装PHP5.2

操作系统: CentOS 5.8 64位(阿里云空间)

1、通过官方下载源码,编译安装
下载地址:http://museum.php.net/php2/

编译安装方法,可以解压后看README文本文件。

2、通过第三方的yum源安装php5.2.17

参考方法:https://webtatic.com/packages/php53/

1)通过rpm -qa |grep php 命令,查看系统已经安装的php软件包
如果有安装,可通过 yum -y remove php* 卸载掉。

2)安装yum库信息 rpm -Uvh http://mirror.webtatic.com/yum/centos/5/latest.rpm
这个安装完成后会在 /etc/yum.repos.d 生成 webtatic.repo 这个配置文件

3)编辑 /etc/yum.conf 排除 5.3,5.4,5.5,5.6版本。
增加这一行:exclude=*5.3.*,*5.3.*,*5.4.*,*5.5.*,*5.6.*

4)安装php

yum –enablerepo=webtatic install php php-mysql php-xml php-gd php-mbstring php-cli

yum –enablerepo=webtatic update php php-mysql php-xml php-gd php-mbstring php-cli

5)使用rpm -qa |grep php 或php -v 查看下php版本是否为php5.2

参考文档 https://webtatic.com/projects/yum-repository/

Centos 5.8 64位 yum 安装 php5.2


https://webtatic.com/packages/php53/

脚本下载地址:centos5-php52

PS:Centos 5.8和centos 5.10官方源中仅为php5.1.6,centos6以上为php5.3。