【发布时间】:2014-06-10 17:58:20
【问题描述】:
我运行了phpinfo(),error_log 指令只写了error_log。那是指什么文件?即 error_log 的完整路径是什么?
【问题讨论】:
我运行了phpinfo(),error_log 指令只写了error_log。那是指什么文件?即 error_log 的完整路径是什么?
【问题讨论】:
在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 之后(回收应用程序池)。
这是保存文件的位置。
不带pad:error_log = php_errors.log会写在出错的地方。已经提过了。
【讨论】:
打开你的 php.ini 文件。
对照error_log检查路径。
【讨论】:
当该值仅显示error_log(或php.ini 文件中的error_log = error_log)时,这意味着错误将被写入发生错误的同一目录中名为error_log 的文件中。
因此,如果您在 /home/user/public_html/ 中有一个名为 index.php 的文件引发错误,则错误将被写入:/home/user/public_html /error_log.
如果您在 /home/user/public_html/admin/images/ 中有名为 resize.php 的文件引发错误,则错误将被写入:/home/user /public_html/admin/images/error_log
【讨论】:
error_log 字符串
脚本错误所在的文件名 记录。该文件应该可由 Web 服务器的用户写入。如果 使用特殊值 syslog,将错误发送到系统记录器 反而。在 Unix 上,这意味着 syslog(3),而在 Windows NT 上,这意味着 事件日志。 Windows 95 不支持系统记录器。另请参阅: 系统日志()。如果未设置此指令,则会将错误发送到 SAPI 错误记录器。例如,它是 Apache 或 stderr 中的错误日志 命令行界面。
因此,当未设置该值(这是默认值)时,它将被发送到父错误记录器,即 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 文件(如果它没有被管理员禁用)。
【讨论】:
/var/log 中没有 /apache。但是/usr/local/apache/logs 中有一个error_log,但它似乎没有显示任何PHP 错误。当我运行我的 PHP 页面时,我得到一个空白屏幕,我想知道语法错误。 display_errors 在 php.ini 中被关闭。
display_errors。只需在开头添加ini_set("display_errors", 1);即可。
ini_set("display_errors", 1); 告诉 PHP 通过输出 HTML 将错误消息回显到屏幕。
/var/log/apache2(额外的“2”)(在fairly standard LAMP installation 上观察到Ubuntu MATE 20.04(Focal Fossa))。