LNMP是指使用Linux、Nginx、MySQL、PHP構(gòu)建的Web服務(wù)器環(huán)境,目前已成為Web開發(fā)的重要基礎(chǔ)設(shè)施。在LNMP環(huán)境下,PHP是作為Nginx的FastCGI進程運行的,這種方式會帶來一些問題,比如PHP版本的切換、模塊的安裝等等。因此,為了解決這些問題,我們可以配置LNMP多PHP環(huán)境,下面我們就詳細(xì)了解一下。
在LNMP多PHP環(huán)境下,我們需要安裝多個PHP版本并運行在不同的端口上,例如PHP5.6、PHP7.0、PHP7.1分別運行在端口9000、9001、9002上。這樣我們就可以在Nginx的Virtual Host配置中指定不同的PHP版本,從而達到一臺服務(wù)器多PHP版本的效果。
下面以CentOS7為例,介紹如何在LNMP環(huán)境下配置多PHP版本。首先我們需要安裝與Nginx對應(yīng)的FastCGI組件,這里我們使用php-fpm:
yum install php-fpm
然后我們需要配置多個PHP版本的安裝源,以PHP7.0為例:sudo yum install epel-release
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
sudo yum install php70w php70w-fpm
安裝完成后,我們需要在/etc目錄下創(chuàng)建php-fpm的配置文件,以PHP7.0為例:cd /etc/php-fpm.d/
cp www.conf www70.conf
然后在www70.conf中指定運行在端口9001上:[www70]
listen = 127.0.0.1:9001
同樣的方式配置PHP5.6和PHP7.1的環(huán)境,最終目錄結(jié)構(gòu)如下:/etc/php-fpm.d/
├── www56.conf
├── www70.conf
└── www71.conf
在Nginx的Virtual Host配置中指定不同的PHP版本,例如:server {
listen 80;
server_name example.com;
root /home/example.com;
location / {
index index.html index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name php56.example.com;
root /home/php56.example.com;
location / {
index index.html index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9001;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name php71.example.com;
root /home/php71.example.com;
location / {
index index.html index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9002;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
最后,重啟Nginx和PHP-FPM,并測試多PHP版本是否正常。
LNMP多PHP環(huán)境的優(yōu)點顯而易見,可以同時支持多個PHP應(yīng)用以及不同版本的框架和CMS,提高了服務(wù)器的利用率和靈活性,讓W(xué)eb開發(fā)更加便捷。