当前位置:首页 > ubuntu相关 > 正文内容

Ubuntu 系统Apache安装多个版本PHP

在Ubuntu 系统上Apache2平台安装多个版本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


gt;
# 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

          将以下内容添加到具有正确的ServerNameDocumentRoot的文件中。

 

<VirtualHost *:80>	ServerName php74.example.com	DocumentRoot /var/www/php74-app	<Directory /var/www/php74-app>		Options -Indexes +FollowSymLinks +MultiViews		AllowOverrideAll		Require all granted	</Directory>	<FilesMatch \.php


gt;
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版本的多个网站。

安装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。

 THE END 


扫描二维码推送至手机访问。

版权声明:本文由uuucd.cn发布,如需转载请注明出处。

本文链接:https://www.uuucd.cn/ubuntu/20.html

标签: ubuntu相关

相关文章

Ubuntu 桌面卡死的解决方法

Ubuntu 桌面卡死的解决方法

Ubuntu桌面卡死解决办法        新装的ubuntu系统,进系统桌面不久就卡死花屏,下面总结一下个别的处理方法。千万不要强制按机箱上的重启键。方法一1. 按Ctrl+Alt+F1可以进入tt...

Vsftpd服务器配置文件简单说明

Vsftpd服务器配置文件简单说明

本文章简单列出Vsftpd服务器配置文件vsftpd.conf的说明实际上是简单汉化后的参考参数listen=NO#listen_ipv6=YES## 允许匿名FTP? (默认禁用)。#anonymous_enable=NO## 取消注释以...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。