Linux 技术手札

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 进去.

Exit mobile version