溫馨提示×

Alpine PHP多版本管理如何實現(xiàn)

PHP
小樊
96
2024-08-27 04:02:18
欄目: 編程語言

在 Alpine Linux 上實現(xiàn) PHP 多版本管理,可以使用一種叫做 sury PHP repository 的第三方軟件源

  1. 首先,更新系統(tǒng)并安裝必要的依賴:
apk update
apk add --no-cache curl
  1. 添加 sury PHP repository:
curl -sL https://packages.sury.net/php/installer | bash
  1. 添加 sury PHP repository 的簽名密鑰:
curl -sL https://packages.sury.net/php/apt.gpg | tee /etc/apk/keys/sury-php.rsa.pub
  1. 更新軟件包列表:
apk update
  1. 安裝所需的 PHP 版本。例如,要同時安裝 PHP 7.4 和 PHP 8.0,請運行以下命令:
apk add php7.4 php7.4-fpm php7.4-opcache php7.4-cli php7.4-json php7.4-pdo php7.4-mysqlnd php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl php7.4-zip

apk add php8.0 php8.0-fpm php8.0-opcache php8.0-cli php8.0-json php8.0-pdo php8.0-mysqlnd php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl php8.0-zip
  1. 配置 PHP-FPM。對于每個版本,您需要創(chuàng)建一個單獨的 FPM 配置文件。例如,為 PHP 7.4 創(chuàng)建 /etc/php7.4/php-fpm.d/www.conf,為 PHP 8.0 創(chuàng)建 /etc/php8.0/php-fpm.d/www.conf。確保每個配置文件中的 listen 選項具有不同的值,例如:
; PHP 7.4
listen = 127.0.0.1:9001

; PHP 8.0
listen = 127.0.0.1:9002
  1. 啟動并啟用 PHP-FPM 服務:
rc-service php7.4-fpm start
rc-service php8.0-fpm start

rc-update add php7.4-fpm
rc-update add php8.0-fpm
  1. 配置 Web 服務器(例如 Nginx 或 Apache)以使用不同的 PHP 版本。在 Nginx 中,您可以通過更改 fastcgi_pass 指令來實現(xiàn)這一點。例如:
location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9001; # 使用 PHP 7.4
    # fastcgi_pass 127.0.0.1:9002; # 使用 PHP 8.0
    ...
}

在 Apache 中,您可以使用 ProxyPassMatch 指令將請求代理到不同的 PHP-FPM 實例。例如:

    SetHandler "proxy:fcgi://127.0.0.1:9001" # 使用 PHP 7.4
    # SetHandler "proxy:fcgi://127.0.0.1:9002" # 使用 PHP 8.0
</FilesMatch>

現(xiàn)在,您已經(jīng)在 Alpine Linux 上成功設置了 PHP 多版本管理。根據(jù)需要切換 PHP 版本時,只需更新 Web 服務器配置并重新加載服務即可。

0