CentOS 7 上带有 Apache 的多个 PHP 版本

新手上路,请多包涵

这里的任何人都可以指导我在 CentOS 7 上使用一个 apache 实例安装和配置 Multi PhP 的方法,以及测试它的正确方法..

原文由 Tabish 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
1 个回答

安装所有必要的回购和包

非常感谢 https://rpms.remirepo.net/wizard/

以下命令假定您已经 sudo su - 否则您必须向每个命令添加 sudo:

 yum install httpd -y
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install yum-utils -y
yum install php56 -y
yum install php72 -y
yum install php56-php-fpm -y
yum install php72-php-fpm -y

停止两个 fpm 服务器

systemctl stop php56-php-fpm
systemctl stop php72-php-fpm

默认情况下它监听 127.0.0.1 端口 9000,让它们监听不同的端口

sed -i 's/:9000/:9056/' /etc/opt/remi/php56/php-fpm.d/www.conf
sed -i 's/:9000/:9072/' /etc/opt/remi/php72/php-fpm.d/www.conf

现在可以在不同的端口上启动两个不同版本的 fpm

 systemctl start php72-php-fpm
systemctl start php56-php-fpm

制作脚本包装器来调用 php56-cgi 和 php72-cgi

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

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

使它们可由 apache 执行

sudo chmod 755 /var/www/cgi-bin/php56.fcgi
sudo chmod 755 /var/www/cgi-bin/php72.fcgi

为 apache 创建 php 配置。默认情况下它运行 php56-fcgi 处理程序

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

<Directory /var/www/html/php56>
    DirectoryIndex index.php
    AllowOverride all
    Require all granted
</Directory>
<Directory /var/www/html/php72>
    DirectoryIndex index.php
    AllowOverride all
    Require all granted
</Directory>
EOF

制作测试页面,创建 .htaccess 以使用 php72-fcgi

 mkdir -p /var/www/html/php56
mkdir -p /var/www/html/php72
echo "<?php phpinfo(); ?>" > /var/www/html/php56/index.php
echo "<?php phpinfo(); ?>" > /var/www/html/php72/index.php
echo "AddHandler php72-fcgi .php" > /var/www/html/php72/.htaccess

现在你应该可以测试它了

( http://127.0.0.1/php56 )

( http://127.0.0.1/php72 )

如果你想在服务器重启后自动启动这些实例

sudo systemctl enable httpd
sudo systemctl enable php56-php-fpm
sudo systemctl enable php72-php-fpm

原文由 runwuf 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏