如何在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 php74.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

开闭站点 sudo a2dissite php56.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版本的多个网站。

安装PHP模块

您可能还需要根据应用程序要求安装模块。使用以下命令在软件包存储库中搜索可用的PHP 7模块。

sudo apt-cache search php7*

您可以在系统上安装所需的PHP模块。只需根据您的要求使用软件包名称更改PHP版本:

sudo apt install php7.4-mysql php7.4-curl php7.4-json php7.4-cgi php7.4-xsl

切换PHP版本

update-alternatives --display php 查看所有 php 版本和当前版本

您可以使用update-alternatives命令设置默认的PHP版本。

update-alternatives --config php

根据您的要求选择PHP版本号。这只会更改PHP CLI版本。

本教程可帮助您在Ubuntu系统上安装PHP 7.4、7.3、7.2或PHP 5.6。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM