我是在共享主机上,有Cpanel,Apache,PHP是由fastcgi运行。 PHP把错误日志保存在哪里?
在共享主机环境下,我是否有其他方法可以找到错误日志,而不是通过整个网站结构去寻找错误日志文件?
我可以访问php.ini
(我使用的是PHP5.2.16版本)。
如果 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(); ?>
php --info | grep error
终端将输出错误日志位置。
php --info | findstr /r /c:"error_log"
命令提示符将输出错误日志的位置
打开你的php.ini
,并添加以下一行。
error_log = /log/myCustomLog.log
感谢@chelmertez、@Boom这些(对问题的评论)。
如何在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
似乎默认情况下,php不在任何地方记录错误,在我看到的所有安装'中,php.ini中的error_log
键都被注释掉了。
一般来说,我的做法是
locate php.ini
。搜索这些文件中的error_reporting
值。
*其中应该设置为任何php日志级别的组合,以满足你的需求。
例如:"E_ALL &
E_ALL &.E_DEPRECATED & ~E_DEPRECATED & ~E_STRICT
3.
检查error_log
值,确保它指向一个实际的地方,并且没有被注释掉。
默认值没有给出完整的路径,只有一个文件名,我不知道这个路径通常解析到哪里。
可能是/var/log/
。
最好的方法是查看 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"覆盖它。
如果你使用的是php5-fpm的日志,默认应该是在
/var/log/php5-fpm.log
当在php.ini中配置错误日志文件时,你可以使用绝对路径或相对路径。 相对路径会根据生成脚本的位置进行解析,你会在你的脚本所在的每个目录下得到一个日志文件。 如果你想让所有的错误信息都进入同一个文件,请使用绝对路径进入文件。
更多内容请看这里。 http://www.php.net/manual/en/ref.errorfunc.php#53025
在httpd.conf文件中搜索 "ErrorLog",在命令行运行 "cat
$ 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 <VirtualHost>
ErrorLog "/private/var/log/apache2/error_log"
找到以 "ErrorLog "开头的一行,就有了答案。
注意:对于虚拟主机,你可以编辑虚拟主机文件httpd-vhosts: 对于虚拟主机,你可以编辑虚拟主机文件
httpd-vhosts.conf`来指定不同的日志文件位置。
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在哪里?
当 "WP_DEBUG_LOG "设置为 "true "时,Wordpress会将 "error_log() "信息引导到"/wp-content/debug.log"。
[WP_DEBUG_LOG参见Wordpress文档][1] 。