2011-02-12 35 views
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中指定自定义错误日志

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

+0

明显的问题是'$ custom_error_log_location`设置是否正确? – 2011-02-12 20:15:23

+0

是的。任何机会,这是一个很长的一段时间,如果验证失败,PHP是否验证路径并将其替换为空值? – William 2011-02-12 21:20:09

回答

3

如果safe_modeopen_basedir已生效,ini_set("error_log")是那些设置的限制(因为你可以在打开的文件与error_log()写任何东西)。

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

1

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

通过“打印毫无作为的ini_get('error_log')值”,它可能是你的$custom_error_log_location为空或空,我建议在$custom_error_log_locationini_get('error_log')用于调试的var_dump(),而不是打印。

+0

不,我甩掉了变量的值。我知道我没有传入一个空字符串。 – William 2011-02-12 20:31:53

0

原来我有safe_mode,就这些了。