Linux操作系统:Ubuntu 16.04
因为公司项目跑PHP5.6,而自己学习需要PHP7.2,所以需要这两个版本共存。
LNMP的搭建,首先搭建的是5.6的版本,不影响,在此基础上再安装一个PHP7.2。
PPA 方式安装 php7.2 : sudo apt-get install software-properties-common 添加 php7 的 PPA sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php 更新安装包 sudo apt-get update 检验是否安装成功,运行命令如若成功就能开始安装php7.2 apt-cache search php7.2
php7.2安装 sudo apt-get -y install php7.2 apt-get install php7.2-dev
运行php -v查看版本,出现版本结果即为成功
安装PHP7.2的各个模块
sudo apt-get -y install php7.2-MySQL sudo apt-get install php7.2-fpm apt-get install php7.2-curl php7.2-xml php7.2-json php7.2-gd php7.2-mbstring
修改PHP-FPM的配置
vim /etc/php/7.2/fpm/php-fpm.conf 或者 /etc/php/7.2/fpm/pool.d/ 下配置文件 pm.max_children = 5 => pm.max_children = 20 最大子进程数 listen = /run/php/php7.2-fpm.sock => listen = 127.0.0.1:9001 重启:service php7.2-fpm restart 因为之前安装的PHP5.6下配置文件中
listen = /run/php/php5.6-fpm.sock => 127.0.0.1:9000 本地9000端口被5.6版本使用,所以这里7.2版本使用9001端口(关键!!!: 两个版本共存监听不一样的端口)
同时在PHP7.2项目的nginx配置文件中
location ~ .php$ { fastcgi_pass 127.0.0.1:9001; //这里要改成刚刚修改的端口 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
重启nginx和php-fpm之后,两个不同版本的项目可同时运行
systemctl restart nginx; systemctl restart php7.2-fpm;