CentOS编译平滑升级php7.1到php7.3


说明

之前已经安装了7.1.33,现在升级到7.3.23

编译安装php7.3

参考之前的博客CentOS7.6编译安装php7.3.23,有一个注意点,我们把编译参数--prefix设置为/usr/local/php73

配置php.ini

[root@localhost php-7.3.23]# cp php.ini-production /usr/local/php73/lib/php.ini
[root@localhost php-7.3.23]# touch /data/log/php/php73_errors.log
[root@localhost php-7.3.23]# chown nginx:nginx /data/log/php/php73_errors.log

A.关闭在http头中显示php版本信息

expose_php = Off

B.错误的处理

error_reporting = E_ALL​ & ~E_NOTICE

display_errors = Off

log_errors = On

error_log = /data/log/php/php73_errors.log

C. 设置时区

date.timezone = PRC

linux的配置是不用去开启curl、mysql之类的扩展的,configure配置编译的时候已经默认开启了

php-fpm

配置

一、创建日志目录

mkdir -p /data/log/php-fpm

二、php-fpm.conf

[root@localhost php-7.3.23]# cp /usr/local/php73/etc/php-fpm.conf.default /usr/local/php73/etc/php-fpm.conf


① 去掉;pid = run/php-fpm.pid  前面的分号,使之生效

② 设置错误日志路径

error_log = /data/log/php-fpm/php73-fpm.log

三、www.conf

[root@localhost php-7.3.23]# cp /usr/local/php73/etc/php-fpm.d/www.conf.default /usr/local/php73/etc/php-fpm.d/www.conf

;设置用户和用户组
user = nginx
group = nginx

;设置监听
;listen = 127.0.0.1:9000
listen = /dev/shm/php73-fpm.sock

listen.owner = nginx​
listen.group = nginx
listen.mode = 0660

;进程相关,这个得根据硬件情况来设置
pm.max_children = 100
pm.start_servers = 50
pm.min_spare_servers = 40
pm.max_spare_servers = 60

;开启慢日志
slowlog = /data/log/php-fpm/$pool-slow-php73.log
request_slowlog_timeout = 10s

;开启抓去php的错误输出
catch_workers_output = yes

原因是php-fpm的配置文件php-fpm.conf中默认是关闭worker进程的错误输出,直接把他们重定向到/dev/null,所以我们在nginx的error log 和php-fpm的errorlog都看不到php的错误日志,直接开启catch_workers_output = yes 即可

检测配置文件

[root@localhost php-7.3.23]# /usr/local/php73/sbin/php-fpm -t
[30-Mar-2017 12:20:36] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

设置开机自启动

[root@localhost php-7.3.23]# cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm73
[root@localhost php-7.3.23]# chmod 0744 /etc/init.d/php-fpm73
[root@localhost php-7.3.23]# chkconfig --add php-fpm73
[root@localhost php-7.3.23]# chkconfig --level 35 php-fpm73 on
[root@localhost php-7.3.23]# chkconfig --list 来查看是否将php-fpm添加到了自启动

启动

[root@localhost php-7.3.23]# service php-fpm73 start|restart|stop|reload|status|force-quit

更改nginx配置

将之前的

fastcgi_pass unix:/dev/shm/php-fpm.sock;

改为:

fastcgi_pass unix:/dev/shm/php-fpm73.sock;

重启nginx

nginx -s reload