RHEL / Rocky Linux 8 安裝多個 PHP 版本


對於測試用途為主的主機, 或者供應商很常需要在主機安裝多個不同的 PHP 版本, 該不同的 PHP 版本可以同時執行。

用 PHP-FPM 執行的 PHP 環境有很多優點, 除了可以安裝多個 PHP-FPM 外, 也可以對不同的 domain/subdomain 設定不同的 PHP-FPM pool, 給予不同的設定或權限。

以下文章會在 Rocky Linux 上安裝不同的 PHP 版本, 並配置到 Apache 伺服器執行.

第一步先安裝 EPEL Repo, 如果已經安裝則可以忽略:

/linux/

  • # yum install epel-release

安裝 PHP 會透過 Remi Yum Repo 完成, 以下例子是安裝 PHP 5.6 及 PHP7.4, 執行以下指令安裝 Remi Repo:

/linux/

  • # dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
    # dnf makecache

安裝 Apache Server:

/linux/

  • # dnf install -y httpd

現在開始安裝 PHP, 由於只是示範, 所以不會安裝額外的 PHP 套件, 只作基本安裝, 可以按需要安裝不同 PHP 套件, 先安裝 PHP 5.6:

/linux/

  • # dnf install -y php56 php56-php-fpm

安裝 PHP 7.4:

/linux/

  • # dnf install -y php74 php74-php-fpm

安裝好 PHP 5.6 及 PHP 7.4 後, 啟動 PHP-FPM 及設定開機自動執行:

/linux/

  • # systemctl start php56-php-fpm && systemctl start php74-php-fpm
    # systemctl enable php56-php-fpm && systemctl enable php74-php-fpm

設定不同域名執行不同 PHP 版本, 例如以 site1.mydomain.com 為例, 建立檔案 /etc/httpd/conf.d/site1.mydomain.com.conf

以下是檔案內容, 實際情況要按執行環境修改, 以下是執行 PHP 5.6 的 domain:

現在建立另一個網站, 名為 site2.mydomain.com 為例, 建立檔案 /etc/httpd/conf.d/site2.mydomain.com.conf

建立以上檔案後可以啟動 Apache 及設定開機自動執行:

/linux/

  • # systemctl start httpd
    # systemctl enable httpd

現在網站 site1.mydomain.com 會使用 PHP 5.6, 而 site2.mydomain.com 會使用 PHP 7.4.
如果想切換更加方便, 可以在 /home/httpd/conf/ 目錄下建立 2 個檔案, 分別是 PHP 5.6 及 PHP 7.4, 將上面 <filesmatch \.php$=””> …… </filesmatch>的內容複製, 要使用那個版本就 include 進去.

Leave a Reply