PHP将错误日志存储在哪里?(php5, apache, fastcgi, cpanel)

我是在共享主机上,有Cpanel,Apache,PHP是由fastcgi运行。 PHP把错误日志保存在哪里?

在共享主机环境下,我是否有其他方法可以找到错误日志,而不是通过整个网站结构去寻找错误日志文件?

我可以访问php.ini(我使用的是PHP5.2.16版本)。

对该问题的评论 (5)
解决办法

如果 PHP 是 apache2 模块,则 PHP 将错误日志存储在 /var/log/apache2中。 共享主机通常是将日志文件存储在根目录/log子文件夹中。 但是......如果你能访问php.ini文件,你可以这样做。

error_log = /var/log/php-scripts.log

根据rinogo的评论。如果你使用的是cPanel,你可能要找的主日志文件(默认情况下)存储在

/usr/local/apache/logs/error_log

如果其他方法都失败了,你可以用以下方法检查日志文件的位置

<?php phpinfo(); ?>
评论(8)

尝试phpinfo()并检查"error_log&quot。

评论(17)

Linux

php --info | grep error 

终端将输出错误日志位置。

Windows

php --info | findstr /r /c:"error_log"

命令提示符将输出错误日志的位置

设置日志位置

打开你的php.ini,并添加以下一行。

error_log = /log/myCustomLog.log

感谢@chelmertez@Boom这些(对问题的评论)。

评论(6)

在LAMP环境下,php错误默认指向下面这个文件。

/var/log/httpd/error_log

所有的访问记录都在。

/var/log/httpd/access_log
评论(2)

如何在Linux上找到你的PHP错误日志:

eric@dev /var $ sudo updatedb
[sudo] password for eric:
eric@dev /var $ sudo locate error_log

/var/log/httpd/error_log

另一种相当的方式:

eric@dev /home/eric $ sudo find / -name "error_log" 2>/dev/null

/var/log/httpd/error_log
评论(0)

似乎默认情况下,php不在任何地方记录错误,在我看到的所有安装'中,php.ini中的error_log键都被注释掉了。

一般来说,我的做法是

  1. 寻找php.ini文件。 locate php.ini
  2. 搜索这些文件中的error_reporting值。

*其中应该设置为任何php日志级别的组合,以满足你的需求。

例如:"E_ALL & E_ALL &amp.E_DEPRECATED & ~E_DEPRECATED & ~E_STRICT 3. 检查error_log值,确保它指向一个实际的地方,并且没有被注释掉。

默认值没有给出完整的路径,只有一个文件名,我不知道这个路径通常解析到哪里。 可能是/var/log/

评论(0)

在你的php.ini文件中设置error_log变量时,你应该使用绝对路径,否则,错误日志将根据你的相对路径来存储。

error_log = /var/log/php.errors

其他解决方案是编写简单的脚本,从目录树中列出所有错误日志文件。

评论(0)

如果你在google计算引擎中,也可以是/var/log/apache2/error.log

而且你可以像这样查看尾巴。

tail -f /var/log/apache2/error.log
评论(0)

最好的方法是查看 httpd.conf 文件,看看默认值是多少。 它也可以被你特定的虚拟主机覆盖。 我首先查看/etc/httpd/conf/httpd.conf/etc/apache2/httpd.conf,然后搜索 error_log。 它可能被列为/var/log/httpd/error_log或/var/log/apache2/error_log,但也可能被列为logs/error_log

在这种情况下,它是一个相对路径,这意味着它将在/etc/httpd/logs/error_log下。 如果你还是找不到它,请检查 httpd.conf 文件的底部,看看你的虚拟主机在哪里。 它可能在 /etc/httpd/conf.d/<- 作为 "other" 或"extra"。 你的虚拟主机可以用 ErrorLog "/path/to/error_log"覆盖它。

评论(0)

如果你从源码中构建了Apache和PHP,那么错误日志默认在你的${Apache install dir}/logs/error_log中生成,即一般是/usr/local/apache2/logs/error_log。 否则,如果你是从仓库安装的,你会发现它在/var/log/apache2/error_log.你也可以在php.ini中设置路径,并通过调用phpinfo()来验证它。

评论(0)

NGINX通常将其存储在/var/log/nginx/error.log或access.log中。 (在任何情况下,在Ubuntu上)

评论(0)

如果你使用的是php5-fpm的日志,默认应该是在

/var/log/php5-fpm.log
评论(0)

当在php.ini中配置错误日志文件时,你可以使用绝对路径或相对路径。 相对路径会根据生成脚本的位置进行解析,你会在你的脚本所在的每个目录下得到一个日志文件。 如果你想让所有的错误信息都进入同一个文件,请使用绝对路径进入文件。

更多内容请看这里。 http://www.php.net/manual/en/ref.errorfunc.php#53025

评论(1)
php --info | grep error

这是有帮助的。 由sjas对问题发表评论。 所以我把它作为一个答案。

评论(1)

在httpd.conf文件中搜索 "ErrorLog",在命令行运行 "cat | grep ErrorLog`在命令行中搜索。 例如:

$ cat /etc/apache2/httpd.conf | grep ErrorLog

$ cat /etc/apache2/httpd.conf | grep ErrorLog

产出:

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a 
ErrorLog "/private/var/log/apache2/error_log"

找到以 "ErrorLog "开头的一行,就有了答案。

注意:对于虚拟主机,你可以编辑虚拟主机文件httpd-vhosts: 对于虚拟主机,你可以编辑虚拟主机文件httpd-vhosts.conf`来指定不同的日志文件位置。

评论(0)

无论你想让它在哪里,如果你设置了你的函数调用。 error_log($errorMessageforLog . "\n", 4, 'somePath/SomeFileName.som')。

评论(0)

你是在共享环境中,无法找到错误日志,总是检查cPanel是否有选项Errors在你的cPanel仪表板上。 如果您无法找到错误日志,那么您可以在那里找到它。

在cPanel的搜索栏上,搜索Error,它会显示Error Pages,它基本上是不同http错误页面的列表,其他Error是显示错误日志的地方。

其他地方看共享环境。 /home/yourusername/logs。 /home/yourusername/public_html/error_log。

评论(0)
  1. 你可以到文件管理器中检查日志文件夹。
  2. 检查public_html文件夹中的日志文件。

  3. 检查"php phpinfo()" 文件中存储日志。

评论(0)

cPanel错误日志位于:

/usr/local/cpanel/logs/。

/usr/local/apache/logs/。

默认情况下,Apche的日志位于里面。

/var/log/apache内。

/var/log/apache2。

如果有人使用自定义日志位置,那么你可以通过运行这个命令来检查它。

cat /etc/apache2/conf/httpd.conf | grep ErrorLog。

如果你收到apache2目录不存在的错误信息,那么你可以运行这个命令来找到正确的位置。

whereis apache

apache2在哪里?

评论(0)

Wordpress

当 "WP_DEBUG_LOG "设置为 "true "时,Wordpress会将 "error_log() "信息引导到"/wp-content/debug.log"。

[WP_DEBUG_LOG参见Wordpress文档][1] 。

[1]: https://codex.wordpress.org/Debugging_in_WordPress

评论(0)