PHP在哪里存储错误日志? (php5,apache,fastcgi,cpanel)
我在共享主机上有Cpanel,Apache,PHP是由fastcgi运行的。 PHP在哪里存储错误日志?
有什么其他的方式,我可以find共享主机环境的错误日志,而不是必须通过整个站点结构来查找error_log文件?
我有权访问php.ini
(我正在使用PHP版本5.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(); ?>
尝试phpinfo()
并检查“error_log”
在LAMP环境下,PHP错误默认指向这个下面的文件。
/var/log/httpd/error_log
所有的访问日志都在:
/var/log/httpd/access_log
Linux的
php --info | grep error
terminal将输出错误日志位置。
视窗
php --info | findstr /r /c:"error_log"
命令提示符将输出错误日志位置
设置日志位置
打开你的php.ini
并添加下面一行:
error_log = /log/myCustomLog.log
感谢@chelmertez , @Boom这些(对问题的意见)。
如何在Linux上find你的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
如果您在Google计算引擎中,它也可以是/var/log/apache2/error.log
。
你可以看到这样的尾巴:
tail -f /var/log/apache2/error.log
在php.ini文件中设置error_logvariables时应该使用绝对path,否则错误日志会根据你的相对path进行存储。
error_log = /var/log/php.errors
其他解决scheme是编写简单的脚本,它将列出目录树中的所有错误日志文件。
看来,默认情况下,php 不会在任何地方logging错误,php.ini中的error_log
键在所有安装过程中都被注释掉了。
一般来说我:
- 寻找php.ini文件。
locate php.ini
。 -
search这些文件的
error_reporting
值;应该设置哪个php日志级别的合并就足够了。 ,
例如:
E_ALL & ~E_DEPRECATED & ~E_STRICT
-
检查
error_log
值以确保它指向一个实际的位置并且不被注释掉。默认值没有给出完整path,只有一个文件名,我不知道这个path正常parsing到哪里。 可能是
/var/log/
。
如果你已经从源代码构buildApache和PHP,那么默认的错误日志是在你的${Apache install dir}/logs/error_log
通常是/usr/local/apache2/logs/error_log
。 否则,如果您已经从存储库安装了它,您可以在/var/log/apache2/error_log
find它。您也可以在php.ini
设置path,并通过调用phpinfo()
validation它。
最好的方法是查看你的httpd.conf文件,看看默认是什么。 它也可以被特定的虚拟主机覆盖。 我首先查看/etc/httpd/conf/httpd.conf
或/etc/apache2/httpd.conf
并searcherror_log。 它可以被列为/ var / log / httpd / error_log或/var/log/apache2/error_log
但也可能被列为简单的logs/error_log
。
在这种情况下,它是一个相对path,这意味着它将在/etc/httpd/logs/error_log
。 如果仍然无法find它,请检查httpd.conf文件的底部,查看您的虚拟主机所在的位置。 它可能在/etc/httpd/conf.d/<-中是“other”或“extra”。 你的虚拟主机可以用ErrorLog“/ path / to / error_log”覆盖它。
如果您使用php5-fpm日志,则应该在默认情况下
/var/log/php5-fpm.log
NGINX通常将其存储在/var/log/nginx/error.log或access.log中。 (在任何情况下在Ubuntu上)
在php.ini中configuration错误日志文件时,可以使用绝对path或相对path。 将根据生成脚本的位置来parsing相对path,并且您将在每个有脚本的目录中获得一个日志文件。如果要将所有错误消息转到同一个文件,请使用绝对path文件。
看更多这里: http : //www.php.net/manual/en/ref.errorfunc.php#53025
无论你想要它,如果你设置它的函数调用:error_log($ errorMessageforLog。“\ n”,4,'somePath / SomeFileName.som');
通过运行cat <file location> | grep ErrorLog
searchhttpd.conf文件中的ErrorLog
在命令行中inputcat <file location> | 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"
find以ErrorLog
开头的行,并有你的答案。
注意:对于虚拟主机,您可以编辑虚拟主机文件httpd-vhosts.conf
以指定其他日志文件位置。
WordPress的
当WP_DEBUG_LOG
设置为true时,Wordpress会将error_log()
消息引导到/wp-content/debug.log
。
请参阅WP_DEBUG_LOG的Wordpress文档