2
ini_set('error_log', $custom_error_log_location);  
print ini_get('error_log');

上面代码的结果?没有!它实际上不打印任何值作为ini_get('error_log'). 我在 Apache 服务器上运行它。我调查了我网站的 Apache 配置。Apache 配置通过 ErrorLog 指令有自己的错误日志设置。事情是这样的:我在同一台服务器上运行另一个网站,具有类似的 Apache 配置,并且在那个网站上我可以在 PHP 中指定一个自定义错误日志。

我还检查了该站点的 php.ini 文件。那里没有记录。我想知道的是,Apache 或 php.ini 中是否有一些配置会阻止我修改错误日志文件的位置?

4

3 回答 3

3

如果safe_modeopen_basedir有效,ini_set("error_log")则受这些设置的限制(因为您可以在打开的文件中写入任何内容error_log())。

该限制涵盖 runtime 和.htaccess,但您可以使用该php_value指令在虚拟主机配置文件中进行设置。

于 2011-02-12T22:05:56.760 回答
1

error_log设置属于PHP_INI_ALL可以在任何地方设置的。所以你的代码应该没有问题。

通过“不打印任何内容作为”的值ini_get('error_log'),可能是您的$custom_error_log_location值为空或 null,我建议var_dump()$custom_error_log_locationand上ini_get('error_log')进行调试,而不是打印。

于 2011-02-12T20:24:43.217 回答
1

事实证明我有safe_mode,仅此而已。

于 2011-02-13T00:01:22.683 回答