在我的apache服务器上,我希望并发地运行多个PHP版本,这样我就可以根据项目的需要轻松地在它们之间切换。我注意到,一些提供多个版本PHP的共享托管提供程序要求您在.htaccess中定义所需的PHP版本:
AddHandler application/x-httpd-php5 .php我想在我的服务器上实现这样的东西,这样我就可以轻松地切换PHP版本了:
AddHandler application/xhttpd-php53 .php
# .. or ..
AddHandler application/xhttpd-php54 .php
# .. or ..
AddHandler application/xhttpd-php55 .php但是,我编译的所有PHP版本都有一个名为application/xhttpd-php或php5-script的处理程序。我试图搜索一个允许您更改这些处理程序名称的./configure标志,但是什么也没有出现。
/sapi/apache2filter/sapi_apache2.c (第666-668行)/sapi/apache2handler/sapi_apache2.c (第68-70行)/main/php.h (第242行)/sapi/apache/mod_php5.c (第979项)/sapi/apache_hooks/mod_php5.c (第1408行)用新的处理程序名称和版本号替换这些字符串是安全的,还是有一种更广泛使用的(或实际记录在案的)方法来更改处理程序名称?
发布于 2013-07-19 09:28:18
您可以使用一个php版本作为模块,另一个版本使用cgi。如果您需要在某个特定项目(vhost)中使用特定的php版本,则可以使用以下内容
<VirtualHost *:80>
ServerAdmin webmaster@example.net
DocumentRoot /vhosts/php55.example.net/
ServerName php55.example.net
ScriptAlias /php-fastcgi/ /usr/local/php-5.5.1/bin/
AddHandler php-fastcgi .php
AddType application/x-httpd-php .php
Action php-fastcgi /php-fastcgi/php-cgi
<Directory /vhosts/php55.example.net>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@example.net
DocumentRoot /vhosts/php54.example.net/
ServerName php54.example.net
ScriptAlias /php-fastcgi/ /usr/local/php-5.4.17/bin/
AddHandler php-fastcgi .php
AddType application/x-httpd-php .php
Action php-fastcgi /php-fastcgi/php-cgi
<Directory /vhosts/php54.example.net>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>https://serverfault.com/questions/524668
复制相似问题