server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php54-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name example.org;
root /var/www/example.org;
index index.php;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php70-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
在這里,我們使用兩個不同的服務器塊中分別設置了root和FastCGI參數,分別為example.com和example.org,支持PHP5.4和PHP7.0。
最后,我們需要啟動PHP-FPM進程,并配置其監聽套接字為前面所述的UNIX套接字。 例如:php54-fpm -c /etc/php54/php.ini -y /etc/php54/php-fpm.conf -g /run/php54-fpm.pid -D
php70-fpm -c /etc/php70/php.ini -y /etc/php70/php-fpm.conf -g /run/php70-fpm.pid -D
在這里,我們使用php54-fpm命令和php70-fpm命令分別啟動PHP5.4和PHP7.0的FPM進程,并將其監聽套接字設置為前面所述的Unix套接字,同時使用-c參數指定PHP配置文件的位置,-y參數指定PHP-FPM配置文件的位置,-g參數指定PID文件的位置,-D參數指定進程以守護進程形式運行。
綜上所述,通過配置NGINX服務器以支持多個PHP版本,我們可以輕松地運行不同的PHP應用程序,從而提高Web應用的性能和穩定性。 此外,使用FastCGI和PHP-FPM來運行PHP應用程序,還可以提高Web應用的安全性和可靠性。 但要注意的是,在使用不同的PHP版本之間,要注意不兼容的問題,并且正確地配置服務器塊和FastCGI參數。