oneinstack 多个php版本共存(不同网站用不同php版本)

为了不让一个ecs的性能浪费,所以要在一个ecs中放好几个网站,但是之前默认安装的是7.2版本,第二个网站只能用5.6以下的,所以要弄一个php多版本共存的环境

因为阿里云自带的oneinstack 镜像中已经安装了php5.3-7.4的版本包,所以在这里就不提安装的事情了,有需求的可以去搜索 oneinstack 安装多个版本php的教程。

我的镜像nginx版本为1.16.1,老版本的方法会有所不同

oneinstack里php的默认安装路径是/usr/local/php,脚本里是通过超链接的形式来切换php版本的,所以需要将不同版本的服务单独配置
oneinstack 多个php版本共存(不同网站用不同php版本)_第1张图片

1.配置 php-fpm 服务

因为 PHP默认的服务文件为 php-fpm.service 所以先将php-fpm.service复制两份为php56-fpm.service和php72-fpm.service

service php-fpm stop #停止php启动脚本
mv /usr/lib/systemd/system/php-fpm.service /usr/lib/systemd/system/php56-fpm.service  #重命名php5.6启动脚本
mv /usr/lib/systemd/system/php-fpm.service /usr/lib/systemd/system/php72-fpm.service  #重命名php7.2启动脚本

这里要修改 php56-fpm.service和php72-fpm.service

vim /usr/lib/systemd/system/php56-fpm.service

将:
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf

改成:

PIDFile=/usr/local/php56/var/run/php-fpm.pid
ExecStart=/usr/local/php56/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php56/etc/php-fpm.conf

同理

vim /usr/lib/systemd/system/php72-fpm.service

将:
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf

改成:
PIDFile=/usr/local/php72/var/run/php-fpm.pid
ExecStart=/usr/local/php72/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php72/etc/php-fpm.conf

2.为防止php5.6、php7.2监听sock冲突,修改php的listen配置文件

例如

vim /usr/local/php72/etc/php-fpm.conf

将listen = /dev/shm/php-cgi.sock 修改为

listen = /dev/shm/php72-cgi.sock

同理

vim /usr/local/php56/etc/php-fpm.conf

将listen = /dev/shm/php-cgi.sock 修改为

listen = /dev/shm/php56-cgi.sock

3.修改nginx配置文件,例如

vim /usr/local/nginx/conf/vhosts/www.nginx.com.conf(www.nginx.com改成自己绑定域名):

将location php 中的
fastcgi_pass unix:/dev/shm/php-cgi.sock;
更改为
fastcgi_pass unix:/dev/shm/php72-cgi.sock;
然后保存,
/usr/local/nginx/sbin/nginx -s reload

4.设置php7.2、php5.6开机自启动:

chkconfig php56-fpm on
chkconfig php72-fpm on

5.重启php-fpm服务

service php56-fpm start
service php72-fpm start

6.重新加载nginx,使配置生效:

service nginx reload

7.附:查看php运行状态

ps -ef|grep php-fpm

你可能感兴趣的:(php学习笔记)