3

我的服务器使用 suPHP,因此每个网站都有自己的 php.ini 文件。我的主人建议在我的 .htaccess 文件中添加以下内容:

<IfModule mod_suphp.c>
suPHP_ConfigPath /home/user/public_html
</IfModule>

这基本上指向站点的 php.ini 文件。但是,我试图在我不需要编辑的所有站点上拥有一个标准的 .htaccess 文件——基本上是我开始使用的“样板”站点的一部分。我试图将上面的内容更改为:

<IfModule mod_suphp.c>
suPHP_ConfigPath %{DOCUMENT_ROOT}/public_html
</IfModule>

但这不起作用。正如你所知道的,我可能不明白这一切是如何运作的。任何人都可以帮助我使用上面的代码,这样我就不需要为每个 .htaccess 文件输入确切的路径,并让 Apache 计算出我的 php.ini 文件的路径吗?

我希望这是有道理的,这有点难以解释!

4

1 回答 1

4

只是扫了一些旧的 suphp Qs。 mod_suphp使用标准参数解析器,因此原则上 %{DOCUMENT_ROOT} 应该可以工作。您几乎可以肯定遇到的问题是 suPHP 通常用于共享托管解决方案,对于这些,用户有效的 DOCUMENT_ROOT 与系统配置中 DocumentRoot 指令建立的不同。

大多数供应商设置了一个环境变量来指向用户文档根目录。我的主机设置了 DOCUMENT_ROOT_REAL,我遇到的另一个是 PHP_DOCUMENT_ROOT。您需要查看您的 phpinfo() 报告以了解适用于您的情况。所以在我的 .htaccess 中,我使用

suPHP_ConfigPath %{ENV:DOCUMENT_ROOT_REAL}/_private

这对我来说很好。

于 2012-03-06T16:10:08.577 回答