如何从htaccess为多个PHP版本配置Apache

时间:2016-10-15 00:27:51

标签: php apache multiple-versions

我已经从Remi Repositories安装了一个PHP版本的集合,对于问题本身可能会被忽略,但为了理解我尝试过的处理而保留。

它们在命令行中运行良好,但我想将它们与Apache 2(Fedora 24上的httpd)一起使用,运行多个虚拟主机,如下所示:

php54.test
php55.test
php56.test
php70.test
php71.test

我创建了VirtualHost配置文件,每个文件都正常工作。

我想运行每个相应的php版本(相应于暗示的ServerName),但我无法找到如何从每个虚拟主机加载PHP。 我无法找到相应的Remi libphpX.so来加载它们作为模块:

<VirtualHost *:80>
    ServerName php54.test
    DocumentRoot /var/www/php54

    #SOMETHING LIKE THIS... 
    LoadModule php??_module       modules/libphp??.so

</VirtualHost>

我有,这不是新闻,一个允许我从.htaccess更改PHP版本的共享主机,我可以这样做:

AddHandler application/x-httpd-php54 .php
AddHandler application/x-httpd-php55 .php
AddHandler application/x-httpd-php56 .php
AddHandler application/x-httpd-php7 .php
AddHandler application/x-httpd-php71 .php

我现在看起来像个假人,但我怎么能做同样的.htaccess切换,因为有多个PHP版本可用?

我可能不知道在Google上搜索什么以及如何搜索以找到最匹配的答案。

1 个答案:

答案 0 :(得分:4)

您不能使用mod_php的多个版本。

更好的解决方案是使用php-fpm(Fastcgi Process Manager),在每个vhost中使用一个SetHandler到fcgi服务器:

    SetHandler "proxy:fcgi://127.0.0.1:9070"

或(使用unix域套接字)

    SetHandler "proxy:unix:/var/opt/remi/php70/run/php-fpm/www.sock|fcgi://localhost"

本文介绍了这一点:My PHP workstation