1. 程式人生 > >Ubuntu 16.04 PHP5.6和PHP7.2共存 LNMP

Ubuntu 16.04 PHP5.6和PHP7.2共存 LNMP

因為公司專案跑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;