显然我不是第一个遇到这个问题的人,但我无法找到解决这种情况的答案。
我想稍微锁定一下 PHP,更具体地说是使用 disable_functions。环境是 CentOS 6.2/PHP 5.3.3 fcgid/Apache 2.2.15:
什么是正确的 apache 配置(AllowOverride 等)禁止通过 .htaccess 更改任何 PHP 设置? 所有其他覆盖均正常(当前设置为 AllowOverride All)
什么是正确的配置禁止在除主 php.ini 之外的所有文件中有效使用 disable_functions(如禁止在 /home/myvhost/etc/php5/php.ini 或该 vhost public_html 中的任何目录中使用 disable_functions。换句话说:唯一有效的 disable_functions 来自主 php.ini)?
如果 #2 不可行,至少正确的配置是什么禁止 vhost 所有者有效使用除 vhost 主 php.ini 之外的任何 php.ini(/home/myvhost/etc/php5/php.ini)?
谢谢
答案1
.htaccess
仅在mod_php
使用时覆盖 PHP,并且这样做需要Options
覆盖权限。所有其他情况下,您无法直接从 htaccess 文件中覆盖 ini 选项,但FileInfo
您可以覆盖默认的 FCGI 处理程序以指向备用 fcgi 处理程序,并使用标志告诉 php 使用备用 .ini 文件。我不相信这是可能的。
不允许 vhosts 覆盖 FileInfo。
FileInfo 允许 htaccess 文件覆盖AddHandler
,SetHandler
并Action
适用于 CGI 以及FcgidWrapper
mod_fcgid。