3

我在 Site5 托管我的登台和生产服务器,这是一个相对较好的托管 IMO。问题不在于它们的质量,而在于与 PHP 版本相关的问题。

我们的开发服务器使用的是 PHP 5.3,这是一个很好的版本,5.4 太新了,我们还不想使用它的功能,还不够普及。

问题是,Site5 默认使用 PHP 5.2,但您可以使用 HTACCESS AddHandler 语句更改为 5.3。在 Site5 上运行良好,但是当我们将该语句保留在 HTAccess 文件中时,我们的开发服务器崩溃。

如果您使用 SVN/Git 来部署您的 Web 应用程序,您知道您总是在任何地方保留相同的文件,所以这就是它的痛处,我似乎找不到任何关于 AddHandler 的 HTACCESS 文件的条件语句。我可以轻松地在重写引擎上编写条件,但我找不到任何看起来和行为如下的东西:

#<If SERVERNAME == "targethost.com">
#    PHP 5.3 configuration for site5
#    AddHandler application/x-httpd-php53 .php
#</If>

有人有解决方案吗?

4

2 回答 2

3

从 Apache 2.4 开始,您可以在 .htaccess 文件中使用此表达式:

<If "%{HTTP_HOST} == 'example.com'">
    AddHandler application/x-httpd-php53 .php
</If>

https://httpd.apache.org/docs/2.4/expr.html#examples

请注意,这在 Apache 2.2 中不起作用。

于 2014-03-06T15:33:03.383 回答
2

我遇到了同样的问题,在 .htaccess 中找不到解决方案。您可能已经看过这种解决方案,但它对我不起作用。

由于我使用 Capistrano 在 Site5 主机上部署我的应用程序,因此我决定在每次部署完成时更改 .htaccess,方法是在我的部署设置文件中添加一行,该文件只需运行一个 shell 命令:

run "echo 'AddHandler application/x-httpd-php53 .php' >> #{release_path}/public/.htaccess"

注意:#{release_path} 是我的应用程序的根路径。

我询问了 Site5 的支持,但不幸的是,他们无法向我推荐一个。

于 2012-11-01T13:36:09.267 回答