在服务器运维的时候会根据要搭建的环境用到不版本的PHP,这时候就需要在LNMP里部署多个PHP版本了,一般军哥的LNMP一键安装包里就支持多PHP版本的安装,最近明月因为尝试升级到PHP 8.2.3,虽然因为硬件配置没有成功,但顺手也给自己服务器部署了一个PHP 7.4.3和PHP 8.1.7的多PHP版本共存,主要是为了方便测试一些非 WordPress 系统的时候用的,另外有些不支持PHP8的 WordPress 插件、主题也是有这个需要的。所以今天给大家带来LNMP环境下多版本PHP的使用方法!
多PHP版本的安装
在军哥LNMP一键安装包搭建的生产环境里,可以利用lnmp1.x
目录下的install.sh
脚本来开启和安装多PHP版本。如下命令运行:
./install.sh mphp
然后就会出现如下图所示的,选择PHP版本编译安装的选择菜单:
然后耐心等待编译安装完成即可,这将是一个漫长的过程,要提醒的是PHP 8.1以上版本对硬件内存要求至少1G以上哦,否则中途会卡死的,明月踩过的坑就不要再去踩了。
编译完成后,当前的环境就是多PHP版本共存了,一定要记得都是哪几个版本共存哦!
多PHP版本的使用
多PHP版本的使用其实更简单,哪个站点项目要用哪个PHP版本,只需要在对应站点的Nginx配置里include
对应的enable-php.conf
文件就是了。
比如:要让网站A用PHP7.4
,那就是enable-php7.4.conf
了,enable-php.conf
文件时当前系统默认PHP版本,也就是第一个安装的PHP版本,所以不用单独用版本号来区别的,以此类推要用PHP 5.6那就是include enable-php5.6.conf
了,然后保存这个Nginx站点的配置文件,重启一下Nginx生效。
多PHP版本的控制
有时候我们安装了多PHP版本后,某一个版本的暂时用不到,这时候建议先关闭掉这个版本的PHP进程以减小服务器的运行负载。
在/etc/init.d/目录中就会有类似如下:
php-fpm php-fpm7.4
这样的文件,上述例子中分别代表这一个默认PHP版本和PHP 7.4版本共存,想要停止和启动哪个直接运行如下命令:
/etc/init.d/php-fpm7.4 stop #停止PHP 7.4运行
/etc/init.d/php-fpm stop #停止默认PHP版本的运行
删除指定版本的PHP
以删除PHP 7.4版本为例
先停止PHP 7.4的进程
/etc/init.d/php-fpm7.4 stop
然后删除对应版本的相关目录和文件即可
rm -rf /usr/local/php7.4
rm -f /etc/init.d/php-fpm7.4
rm -f /usr/local/nginx/conf/enable-php7.4.conf
注:其他版本的话替换前面的版本号
最后通过查看PHP运行状况确认卸载PHP版本成功卸载了
ps -ef|grep php-fpm
<img src="https://zhen.bushini.de/wp-content/uploads/2023/03/1805217444.png" alt="根据如上图所示的返回结果里的master process
来判断是否删除成功,这是还没有删除PHP7.4进程状态" title="根据如上图所示的返回结果里的master process
来判断是否删除成功,这是还没有删除PHP7.4进程状态">
多版本PHP共存和使用方法其实还是很简单的,理解了原理后用起来还是非常方便的,简单点儿总结就是,多个PHP版本同时运行,互不干扰(因为是不同进程),哪个网站需要哪个PHP版本就指定哪个版本的PHP进程来执行PHP文件就是了。就是这么回事,很简单的!