OneinStack多版本PHP7和PHP8共存

  • A+
所属分类:声卡问题

基于《OneinStack》一键PHP/JAVA安装工具中lnmp模式,很多用户希望一个网站运行在php7,另一个网站运行在php8,甚至更多版本的php,那么一台服务器上同时支持多个PHP版本应该如何做呢?

1、安装OneinStack

选择lnmp模式,默认安装php7,安装步骤参考:http://oneinstack.com/install/
选项如下:

./install.sh
OneinStack多版本PHP7和PHP8共存

往下一直no,选项选不安装。

2、 安装php8

service php-fpm stop                      #后面需要再安装php,需要停止php

默认php安装路径是/usr/local/php,如果再次安装会提示php已经安装,因此必须修改(/root/oneinstack/)options.conf的php安装目录,将php7安装路径设置为/usr/local/php7,修改/root/oneinstack/options.conf:

php_install_dir=/usr/local/php7

再次执行./install.sh,选择Install php-7,其余均选择n

3、修改php配置文件

防止php7、php8监听sock冲突,修改php8的listen,更改配置文件/usr/local/php8/etc/php-fpm.conf:

listen = /dev/shm/php-cgi.sock                  #修改前
listen = /dev/shm/php7-cgi.sock                 #修改后

手工启动php5.4、php7:

service php-fpm start  #启动php7
service php8-fpm start #启动php8

停止PHP:service php-fpm stop 
重启PHP:service php-fpm restart 
service nginx restart 重启nginx
重启sql:service mysqld restart

查看PHP进程:

ps -ax | grep php


4、 修改nginx虚拟主机配置文件

./vhost.sh绑定域名,默认是运行在php5.4,如需要将网站运行在php7下,需要修改/usr/local/nginx/conf/vhost/www.oneinstack.com.conf(www.oneinstack.com改成自己绑定域名):

fastcgi_pass unix:/dev/shm/php-cgi.sock;                #修改前
fastcgi_pass unix:/dev/shm/php7-cgi.sock;               #修改后

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

/usr/local/php/sbin/php-fpm(手动启动php)
/usr/local/php8/sbin/php-fpm(手动启动php8)