我们已经准备好了,你呢?

2026我们与您携手共赢,为您的企业形象保驾护航!

在本教程中,我们将向大家演示如何在7个Linux系统上同时运行多个PHP版本。

在单个服务器上部署并运行多个PHP版本,这种做法既实用又普遍。

您可能拥有一段PHP代码,并希望用不同的PHP版本进行检验。遇到这种情况,本篇文章将非常适合您阅读。

让我们解释一下如何运行多个版本。

在访问请求.php页面时,系统会参照“/ x-httpd-php”这一路径来确定需要加载哪个模块以处理PHP脚本。至关重要的是,在这一过程中,PHP的执行受到严格的控制。

在我们的方案里,存在一定的差异。具体来说,我们采用了名为php-fpm的独立PHP进程。这个php-fpm是一个被设置为应对FCGI请求的PHP守护进程。

1.安装和仓库

如果您已安装,请跳过yum httpd

# yum install httpd
# yum install epel-release
# yum install yum-utils

2.安装多个PHP版本

使用yum命令安装,地址为http://rpms.remirepo.net/enterprise/remi-release-7.rpm的remi-release-7.rpm软件包。
# yum install php56 
# yum install php72
# yum install php56-php-fpm
# yum install php72-php-fpm

确保两个版本均已停止

使用系统管理工具,停止php56版本的FastCGI进程管理器服务。
使用系统管理工具停止php72版本的PHP-FPM服务。

3.配置

要允许运行php-fpms脚本,请运行以下命令:

使用命令 semanage 对端口进行配置,添加类型为 http_port_t 的规则,指定传输控制协议为 TCP,端口号为 9072。
使用命令semantique进行端口管理,添加操作符-a,指定类型为http_port_t,配置协议为tcp,端口号设为9056。

4-配置php-fpm

每个PHP-FPM的版本均设定于9000端口进行监听。鉴于我们需同时使用多个PHP版本,因此必须对预设的端口进行相应的调整。

使用sed命令对/etc/opt/remi/php56/php-fpm.d/www.conf文件进行编辑,将其中冒号后的端口号9000替换为9056。
使用sed命令,对位于/etc/opt/remi/php72/php-fpm.d目录下的www.conf文件进行修改,将文件中的冒号9000替换为冒号9072。

现在运行两个php-fpms:

启动php72版本的php-fpm服务。
启动php56的fpm服务进程。

为了实现这一目标,我们需构建一个脚本包装器,其功能是调用php56-cgi和php72-cgi。

<< EOF
# #!/bin/bash
# exec /bin/php56-cgi
# EOF
# cat > /var/www/cgi-bin/php72.fcgi << EOF
# #!/bin/bash
# exec /bin/php72-cgi
# EOF

设置两个脚本为可执行

使用以下命令,将 `/var/www/cgi-bin/php56.fcgi` 文件的权限设置为755:sudo chmod 755 /var/www/cgi-bin/php56.fcgi。
使用命令sudo对文件路径为/var/www/cgi-bin/php72.fcgi的权限进行修改,将其设置为755。

5.配置

我们设立了两个路径,一条专门针对php-fpm56版本,另一条则针对php-fpm72版本。

使用命令行工具cat,将输入重定向到文件路径为/etc/httpd/conf.d/php.conf的配置文件中。<< EOF
# ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# AddHandler php56-fcgi .php
# Action php56-fcgi /cgi-bin/php56.fcgi
# Action php72-fcgi /cgi-bin/php72.fcgi
# 
# DirectoryIndex index.php
# AllowOverride all
# Require all granted
# 
# 
# DirectoryIndex index.php
# AllowOverride all
# Require all granted
# 
# EOF

然后在这两个路径上放置两个php脚本进行测试

创建目录结构,确保路径 /var/www/html/php56 存在。
创建目录结构,指定路径为 /var/www/html,并确保php72版本对应的目录存在。
# echo "请勿对以下路径进行修改:/var/www/html/php56/index.php,以确保系统正常运行。
# echo "禁止对“/var/www/html/php72/index.php”进行修改。
执行命令将文本"AddHandler php72-fcgi .php"写入到路径为"/var/www/html/php72/.htaccess"的文件中。

6.启动服务

现在,我们启用并启动和php-fpm服务:

# systemctl enable httpd
启用php56的php-fpm服务。
启用php72版本的php-fpm服务。
# systemctl start httpd
# systemctl start php56-php-fpm
# systemctl start php72-php-fpm

7.配置防火墙

我们需要打开端口80来访问。因此,请运行以下命令:

执行命令:firewall-cmd,参数为--permanent和--add-service,具体服务为http。
# firewall-cmd --reload

二维码
扫一扫在手机端查看

本文链接:https://by928.com/10276.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线