Ubuntu系统配置Apache多个PHP环境

做开发时,由于本机开发的php版本跟线上发布的php版本不一致,很容易在上线后,发现因版本的影响导致一些bug,但又不想重新去换本机的php版本,那么多版本共存就很方便了!有必要时,切换到指定版本测试下,没问题再上线就OK了!
单独PHP版本的Apache上两个VirtualHost的安装和配置。第一个VirtualHost将与PHP 5.6一起使用,另一个VirtualHost将与PHP 7.2一起运行。

一、安装Apache

Apache Web服务器软件包在默认存储库中可用。在Ubuntu系统上打开一个终端,然后执行以下命令来安装Apache Web服务器的最新可用版本。

sudo apt update
sudo apt install apache2 libapache2-mod-fcgid

二、安装PHP
在Ubuntu系统上安装PHP维护PPA。您只需要将该PPA添加到系统中即可安装软件包。使用以下几个命令将PPA添加到系统中。

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

使用PHP 5.6和PHP 7.2来配置Apache Web服务器

sudo apt update -y
sudo apt install php5.6 php5.6-fpm -y
sudo apt install php7.2 php7.2-fpm -y

安装后,php-fpm服务将自动启动。使用以下命令确保两个服务都在运行。

sudo systemctl status php5.6-fpm
sudo systemctl status php7.4-fpm

三、使用多个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

Apache将所有VirtualHost配置文件保留在/ etc / apache2 / sites下(扩展名为.conf)。为第一个虚拟主机创建一个文件,然后在您喜欢的文本编辑器中进行编辑。

sudo vim /etc/apache2/sites-available/php56.conf
<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/php72..conf
	<VirtualHost *:80>
    ServerName php72.example.com
    DocumentRoot /var/www/php72-app
    <Directory /var/www/php72-app>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>

你们两个网站都已配置。但是他们仍然不活跃。Apache将活动站点保留在/etc/apache2/sites-enabled目录下。您可以简单地创建到该目录的配置文件的符号链接,或使用下面的命令执行相同的操作。

四、开启站点

sudo a2ensite php56.example.com
sudo a2ensite php72.example.com

开闭站点 sudo a2dissite php56.example.com

完成所有更改后,重新启动Apache以重新加载新的设置更改。或者使用reload重新加载配置

sudo systemctl restart apache2

您的设置现已完成。转到下一步以测试您的设置。

五、测试您的设置

在本地系统上编辑/ etc/hosts文件,然后输入如下内容。这会将临时名称解析为本地主机IP地址。

sudo vim /etc/hosts
				将以下条目添加到文件末尾
127.0.0.1 php72.example.com
127.0.0.1 php56.example.com

打开网络浏览器并访问两个站点。
在这里插入图片描述
在这里插入图片描述
这样就可以实现单个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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值