在Ubuntu系統中,使用PHP-FPM管理多個PHP版本可以通過以下步驟實現:
首先,確保已經安裝了所需的PHP版本??梢允褂?code>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版本,并可以根據需要為不同的項目使用它們。