在Ubuntu系统中,使用PHP-FPM管理多个PHP版本可以通过以下步骤实现:
首先,确保已经安装了所需的PHP版本。可以使用apt
包管理器来安装。例如,要安装PHP 7.2和7.4,可以运行以下命令:
sudo apt-get update
sudo apt-get install php7.2 php7.2-fpm php7.4 php7.4-fpm
接下来,需要为每个PHP版本配置PHP-FPM。每个版本的PHP-FPM都有自己的配置文件,通常位于/etc/php/{version}/fpm/pool.d/www.conf
。例如,对于PHP 7.2和7.4,可以找到以下文件:
编辑这些文件,确保它们监听不同的端口或使用不同的socket文件。例如,可以将PHP 7.2的监听端口更改为9000,将PHP 7.4的监听端口更改为9001:
; PHP 7.2
listen = 127.0.0.1:9000
; PHP 7.4
listen = 127.0.0.1:9001
保存更改并退出编辑器。
对于每个PHP版本,重启相应的PHP-FPM服务以应用更改:
sudo systemctl restart php7.2-fpm
sudo systemctl restart php7.4-fpm
最后,需要配置Web服务器(如Nginx或Apache)以便根据需要使用不同的PHP版本。这通常是通过设置fastcgi_pass
指令来完成的。
对于Nginx,可以在/etc/nginx/sites-available/{your-site}
文件中设置fastcgi_pass
指令:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; # 对于PHP 7.2
# fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 对于PHP 7.4
}
对于Apache,可以在.htaccess
文件或httpd.conf
文件中设置SetHandler
指令:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://localhost:9000" # 对于PHP 7.2
# SetHandler "proxy:fcgi://localhost:9001" # 对于PHP 7.4
</FilesMatch>
保存更改并重启Web服务器。
现在,已经成功配置了多个PHP版本,并可以根据需要为不同的项目使用它们。