php.ini 和 .htaccess 中的 suPHP

iag*_*tme 3 php apache .htaccess suphp

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

<IfModule mod_suphp.c>
suPHP_ConfigPath /home/user/public_html
</IfModule>
Run Code Online (Sandbox Code Playgroud)

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

<IfModule mod_suphp.c>
suPHP_ConfigPath %{DOCUMENT_ROOT}/public_html
</IfModule>
Run Code Online (Sandbox Code Playgroud)

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

我希望这是有道理的,解释起来有点困难!

Ter*_*ryE 6

只是扫了一下旧的 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
Run Code Online (Sandbox Code Playgroud)

这对我来说效果很好。