如何在Ubuntu 20.04上使用Apache安装多个PHP版本

通常主机管理器为每个PHP版本应用程序部署使用单独的服务器。这增加了托管成本。一些主机管理器正在使用Docker在单个服务器上运行多个PHP版本。另外,你们中大多数人都知道我在本教程中使用的配置。但是某些系统管理员对此并不了解。本教程将帮助您在Ubuntu 20.04 Linux系统上使用Apache 安装多个PHP版本,而无需切换PHP版本。
本教程介绍了具有单独PHP版本的Apache上两个VirtualHost的安装和配置。第一个VirtualHost将与PHP 5.6一起使用,另一个VirtualHost将与PHP 7.2一起运行。因此,只需阅读本教程即可。您也可以根据需要在Apache上使用两个以上的PHP版本,但是本教程仅涉及两个。
1、安装Apache
Apache Web服务器软件包在默认存储库中可用。在Ubuntu系统上打开一个终端,然后执行以下命令来安装Apache Web服务器的最新可用版本。
sudo apt update
sudo apt install apache2 libapache2-mod-fcgid
2、安装PHP
长期以来,一直为在Ubuntu系统上安装PHP维护PPA。您只需要将该PPA添加到系统中即可安装软件包。使用以下几个命令将PPA添加到系统中。
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
在本教程中,我们使用PHP 5.6和PHP 7.4来配置Apache Web服务器。要使用多个PHP版本,我们将使用PHP FPM和FastCGI。让我们在系统上安装以下软件包。
sudo apt update -y
sudo apt install php5.6 php5.6-fpm -y
sudo apt install php7.4 php7.4-fpm -y
安装后,php-fpm服务将自动启动。使用以下命令确保两个服务都在运行。
sudo systemctl status php5.6-fpm
sudo systemctl status php7.4-fpm
3、使用多个PHP配置Apache
现在启用与Apache一起配置多个PHP版本所需的几个模块。这些模块是将PHP FPM和FastCGI与Apache服务器集成所必需的。
sudo a2enmod actions fcgid alias proxy_fcgi
准备在Apache服务器上配置网站。为了进行测试,我正在配置两个网站以使用两个不同的2个PHP版本。首先,在服务器上创建两个目录。
sudo mkdir /var/www/php56-app
sudo mkdir /var/www/php74-app
现在,创建并包含phpinfo();函数的index.php 。
echo “<?php phpinfo(); ?>” > /var/www/php56-app/index.php
echo “<?php phpinfo(); ?>” > /var/www/php74-app/index.php
让我们开始创建VirtualHost。Apache将所有VirtualHost配置文件保留在/ etc / apache2 / sites下(扩展名为.conf)。为第一个虚拟主机创建一个文件,然后在您喜欢的文本编辑器中进行编辑。
sudo vim /etc/apache2/sites-available/php56.example.com.conf
添加以下内容。确保根据您的设置使用正确的ServerName和目录路径。该网站配置为可与PHP 5.6一起使用。

<VirtualHost *:80>
    ServerName php56.example.com
    DocumentRoot /var/www/php56-app
    <Directory /var/www/php56-app>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    <FilesMatch \.php$>
        # Apache 2.4.10+ can proxy to unix socket
        SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>

同样,创建第二个VirtualHost配置文件以与PHP 7.2一起使用。在文本编辑器中编辑配置文件:
sudo vim /etc/apache2/sites-available/php74.example.com.conf
将以下内容添加到具有正确的ServerName和DocumentRoot的文件中。

<VirtualHost *:80>
    ServerName php72.example.com
    DocumentRoot /var/www/php74-app
    <Directory /var/www/php74-app>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>

你们两个网站都已配置。但是他们仍然不活跃。Apache将活动站点保留在/etc/apache2/sites-enabled目录下。您可以简单地创建到该目录的配置文件的符号链接,或使用下面的命令执行相同的操作。
sudo a2ensite php56.example.com
sudo a2ensite php74.example.com
完成所有更改后,重新启动Apache以重新加载新的设置更改。
sudo systemctl restart apache2
您的设置现已完成。转到下一步以测试您的设置。
4、测试您的设置
在本地系统上编辑/ etc/hosts文件,然后输入如下内容。这会将临时名称解析为本地主机IP地址。
sudo vim /etc/hosts
将以下条目添加到文件末尾
127.0.0.1 php74.example.com
127.0.0.1 php56.example.com
打开网络浏览器并访问两个站点。你会看到,php56.example.com显示版本PHP 5.6和php74.example.com正显示出PHP 7.4的配置。
http://php74.example.com。
http://php56.example.com。
本教程可帮助您在Ubuntu 20.04系统上的单个Apache服务器上设置具有不同2 PHP版本的多个网站。
A5互联https://www.a5idc.net/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值