我已经从Remi Repositories中安装了一组PHP版本,对于问题本身可以忽略,但是为了理解我尝试的处理而保留。
它们在命令行中工作得很好,但我想在Apache 2 (Fedora 24上的httpd)中使用它们,运行多个虚拟主机,如:
php54.test
php55.test
php56.test
php70.test
php71.test
我已经创建了VirtualHost配置文件,每个文件都工作正常。
我想运行每个相应的php版本(根据提示的服务器名),但我找不到如何从每个虚拟主机加载php。我找不到相应的Remi libphpX。所以要将它们作为模块加载:
<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版本可用?
我可能不知道在谷歌上搜索什么以及如何找到最匹配的答案。
mod_php不能同时使用多个版本
更好的解决方案是使用php-fpm (Fastcgi进程管理器),在每个vhost中使用一个SetHandler到fcgi服务器:
SetHandler "proxy:fcgi://127.0.0.1:9070"
或者(使用unix域socket)
SetHandler "proxy:unix:/var/opt/remi/php70/run/php-fpm/www.sock|fcgi://localhost"
我的PHP工作站。