2

在我的本地测试服务器上,我使用的是 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),如果可能的话,我想保持这种方式。

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

4

1 回答 1

1

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

您可以尝试将您指向Action一个中性的 php 包装器,该包装器可以检测它是否需要运行cgi-sys/php53或 PHP 5.4 版本。类似于以下内容:

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
于 2013-09-17T19:23:51.123 回答