如果error_log指令只是说"error_log",那么PHP错误记录在哪里?

Rya*_*yan 7 php error-log

我跑phpinfo()了,error_log指令简单地说error_log.这指的是什么文件?即error_log的完整路径是什么?

Ger*_*der 9

从文档中引用:

error_log字符串

应记录脚本错误的文件的名称.该文件应该可由Web服务器的用户写入.如果使用特殊值syslog,则会将错误发送到系统记录器.在Unix上,这意味着syslog(3),在Windows NT上它意味着事件日志.Windows 95不支持系统记录器.另请参阅:syslog().如果未设置此指令,则会将错误发送到SAPI错误记录器.例如,它是Apache中的错误日志或CLI中的stderr.

因此,当未设置该值(这是默认值)时,它将被发送到父错误记录器,即apache(如果通过它运行)或者stderr在命令行上运行脚本.

如果您通过apache使用脚本,则必须查看apache错误日志,通常在/var/log/apache或中/var/log/httpd,具体取决于您的分发.您可以在apache配置文件中查看确切位置.

编辑:

我只是注意到我误读了你的问题,我想你的意思是error_log有实际价值error_log

我刚做了一些测试.当我设置error_log为像php_errors.logPHP 这样的值仍然将错误消息写入apache错误日志.它的行为就好像值为空.当我将值设置为完整路径(例如/tmp/php_errors.log)时,它会将错误写入指定的文件.

所以我想在你的情况下它将错误写入apache错误日志文件.

当然,您可以设置自己的日志文件添加

ini_set("error_log", "/tmp/php_errors.log");
Run Code Online (Sandbox Code Playgroud)

到您需要它的PHP文件(如果它没有被管理员禁用).


Mic*_*ger 5

当值简单地表示error_log(或error_log = error_log在您的php.ini文件中)时,这意味着错误将写入error_log在发生错误的同一目录中调用的文件。

因此,如果index.php/home/user/public_html/中调用的文件引发错误,则错误将写入:/home/user/public_html/error_log

如果您resize.php/home/user/public_html/admin/images/中调用的文件引发错误,则错误将写入:/home/user/public_html/admin/images/error_log


来源:PHP 的显示和记录错误