apache - php.ini 与 .htaccess 中的 suPHP

标签 apache .htaccess php suphp

我的服务器使用 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 文件的路径?

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

最佳答案

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

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

suPHP_ConfigPath %{ENV:DOCUMENT_ROOT_REAL}/_private

这对我来说很好。

关于apache - php.ini 与 .htaccess 中的 suPHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297371/

相关文章:

php - .htaccess将error_display设置为E_ALL

php - 服务器端 Apple 推送通知

PHP 与 neo4j 的连接 "cURL error 7"

macos - 仅文件夹/无文件如何 "SVN UP --set-depth infinity"

php - URL 重写解析为地址栏中的实际 URL

.htaccess - 子域的 htaccess 重写规则到页面

javascript - ajax后Laravel刷新数据

apache - .htaccess 虚拟主机的基本身份验证?

php - htaccess - 重写具有相同名称目录的文件

Apache 下载具有特定扩展名的文件