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

时间:2014-04-25 06:48:28

标签: php error-log

我运行了phpinfo(),而 error_log 指令只是说error_log。这指的是什么文件?即 error_log 的完整路径是什么?

4 个答案:

答案 0 :(得分:8)

引用from the documentation

  

error_log string

     

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

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

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

修改

我刚注意到我误解了您的问题,我猜您的意思是error_log具有实际值error_log

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

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

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

ini_set("error_log", "/tmp/php_errors.log");

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

答案 1 :(得分:1)

当值只是error_log(或error_log = error_log文件中的php.ini)时,这意味着错误将被写入同一目录中名为error_log的文件中发生错误。

因此,如果您在 / home / user / public_html / 中有一个名为index.php的文件会引发错误,则会将错误写入: / home / user /的public_html / error_log中

如果您在 / home / user / public_html / admin / images / 中有一个名为resize.php的文件会引发错误,那么错误将写入: / home /用户/的public_html /管理/图像/ error_log中

来源:Display and log errors for PHP

答案 2 :(得分:0)

在Windows 10上,IIS 10.0.18362.1,
我设置为php\php.ini

error_log = "C:\tmp\php_errors.log"  

error_log = C:\tmp\php_errors.log  

error_log = \tmp\php_errors.log  

phpinfo()显示:

error_log C:\ tmp \ php_errors.log或\ tmp \ php_errors.log

有时直接,但总是在iisreset之后(回收应用程序池)。

即保存文件的位置。

没有填充error_log = php_errors.log,它将被写入发生错误的位置。已经提到过。

答案 3 :(得分:-1)

打开php.ini文件 检查error_log

的路径