更改PHP记录语法错误的位置


Changing where PHP logs syntax errors

我该如何改变PHP记录语法错误的地方?我有很多人在同一台服务器上工作,我希望能够将我自己的日志发送到自定义文件,这样我就不会看到其他人的错误。

我可以这样做:

error_reporting(E_ALL);
ini_set('display_errors','On');
ini_set('error_log','path/to/mylogfile.log');

这对某些错误有效,但对于实际的语法错误,日志仍然被发送到主/var/log/httpd/error_log。如何将语法错误发送到自定义日志文件?

由于无法正确解析该文件,因此也不会执行ini_set函数,也不会执行新的错误日志集。您需要在.htaccess文件或全局服务器配置中设置php_value error_log /path/to/myfile.log(我假设您正在使用Apache)。

如果语法错误阻止PHP运行,您将无法通过PHP设置日志路径。这是先有鸡先有蛋的情况。

可选选项为:

  • 在web服务器级别更改错误日志
  • 允许向浏览器输出错误信息

我建议是后者。