1.关闭已有的php-fpm (我这里是php8)进程,并备份php-fpm进程启动脚本
systemctl stop php-fpm.service
oneinstack里php的默认安装路径是/usr/local/php,如果继续安装别的版本,需要更改参数配置避免这里的文件被覆盖。
我们切到oneinstall的安装包目录下,找到options.conf文件,然后打开
php_install_dir=/usr/local/php
这里我们可以根据自行的需要进行修改,
例如这里需要安装php7.4,就将这里改成了
php_install_dir=/usr/local/php74
wq修改保存以后,运行
./install.sh
开始onestack组件安装,这里除了选择安装php7.4以外,其他都选择n.
2.安装完成后,修改php的配置文件
先停掉php-fpm的进程
systemctl stop php-fpm.service
拷贝sock文件
cp -r /dev/shm/php-cgi.sock /dev/shm/php74-cgi.sock
然后修改安装的php版本文件夹里的/etc/php-fpm.conf
vim /usr/local/php74/etc/php-fpm.conf
3.保存之后,然后手动启动php-fpm
cd /usr/local/php74/sbin/php-fpm
./php-fpm
如果没有报错的话,就成功了。也可以通过命令行查看
ps -aux|grep php-fpm
如果是下面这个样子,就是对的
4.修改nginx的vhost文件
找到:
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
我们只需要将php-cgi.sock修改成对应版本的即可
fastcgi_pass unix:/dev/shm/php74-cgi.sock
记得重启nginx
systemctl restart nginx.service
设置一些开机启动事项
例如
chkconfig --add php-fpm
chkconfig php-fpm on
chkconfig --add php74-fpm
chkconfig php74-fpm on
防止php8、php7.4监听sock冲突,修改php的listen配置文件
例如
vim /usr/local/php74/etc/php-fpm.conf
将listen = /dev/shm/php-cgi.sock 修改为
listen = /dev/shm/php74-cgi.sock
4.重启php-fpm服务
systemctl php-fpm start
systemctl php74-fpm start
ps:
补充说明
1.检测php多版本安装情况
ps -ef|grep php-fpm
oninstack是自动检测内存大小,根据内存大小划分fpm的进程数。也就是说,每个版本的php-fpm子进程都是按照内存满载划分
要适当的到php-fpm.conf里面把子进程数量减小点
2.使用locate命令可以快速搜索文件
locate */php
如果没有locate命令的话,centos可以快速安装
yum install mlocate
updatedb