如果 error_log 指令只是说“error_log”,PHP 错误会记录到哪里? [重复]

问题描述 投票:0回答:4

我运行了

phpinfo()
,而error_log指令只是说
error_log
。那指的是哪个文件?即error_log的完整路径是什么?

php error-log
4个回答
16
投票

引用来自文档

错误日志字符串

脚本错误所在的文件的名称 已记录。该文件应该可由 Web 服务器的用户写入。如果 使用特殊值 syslog,将错误发送到系统记录器 反而。在 Unix 上,这意味着 syslog(3),在 Windows NT 上,这意味着 事件日志。 Windows 95 不支持系统记录器。另请参阅: 系统日志()。如果未设置此指令,错误将发送到 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 文件(如果管理员没有禁用它)。


5
投票

当该值只是显示

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/user/public_html/admin/images/error_log


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


0
投票

Windows 10IIS 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: mp\php_errors.log 或 mp\php_errors.log

有时直接,但总是在

iisreset
之后(回收应用程序池)。

这就是文件保存的地方。

没有pad:

error_log = php_errors.log
将会写到发生错误的地方。已经提到过了。


-1
投票

打开您的 php.ini 文件。

根据 error_log 检查路径。

© www.soinside.com 2019 - 2024. All rights reserved.