.htaccess中的条件PHP版本

时间:2013-09-17 19:07:48

标签: php .htaccess version

在我的本地测试服务器上,我使用的是PHP 5.4。但是,在实时主机上,我目前仅限于PHP 5.3,必须在.htaccess中指定(否则默认为5.2)。

所以我可以补充一下:

# Use PHP 5.3
Action application/x-hg-php53 /cgi-sys/php53
AddHandler application/x-hg-php53 .php

在现场主机上运行良好,但打破了本地测试服务器。

是否可以使用类似mod_rewrite的东西来有条件地指定基于域的PHP版本?或者,还有更好的方法?跟踪.htaccess文件(git),如果可能的话我想保持这种方式。

我认为同样的问题是here,但我没有实现动态部署方法(除了git push / pull期间的一些简单bash)。

1 个答案:

答案 0 :(得分:0)

使用mod_rewrite无法动态执行此操作。

您可以尝试将Action指向一个可以检测是否需要运行cgi-sys/php53或PHP 5.4版本的中性php包装器。有点像:

Action php-cgi /cgi-sys/php-wrapper.cgi
AddHandler php-cgi .php

然后在cgi-sys/php-wrapper.cgi文件中,例如:

#!/bin/sh

# check if this is the php 5.3 environment
if [ -x "/path/to/cgi-sys/php53" ]; then
    # execute php 5.3
    export PHPRC=/path/to/php5.3/rc
    exec /path/to/cgi-sys/php53
else 
    # else, run php 5.4
    export PHPRC=/path/to/php5.4/rc
    exec /path/to/cgi-sys/php54
fi