我是在共享主机上,有Cpanel,Apache,PHP是由fastcgi运行。 PHP把错误日志保存在哪里?
在共享主机环境下,我是否有其他方法可以找到错误日志,而不是通过整个网站结构去寻找错误日志文件?
我可以访问php.ini(我使用的是PHP5.2.16版本)。
php.ini
如果 PHP 是 apache2 模块,则 PHP 将错误日志存储在 /var/log/apache2中。 共享主机通常是将日志文件存储在根目录/log子文件夹中。 但是......如果你能访问php.ini文件,你可以这样做。
/var/log/apache2
/log
error_log = /var/log/php-scripts.log
根据rinogo的评论。如果你使用的是cPanel,你可能要找的主日志文件(默认情况下)存储在。
/usr/local/apache/logs/error_log
如果其他方法都失败了,你可以用以下方法检查日志文件的位置
<?php phpinfo(); ?>
尝试phpinfo()并检查"error_log"。
phpinfo()
php --info | grep error
终端将输出错误日志位置。
php --info | findstr /r /c:"error_log"
命令提示符将输出错误日志的位置
打开你的php.ini,并添加以下一行。
error_log = /log/myCustomLog.log
感谢@chelmertez、@Boom这些(对问题的评论)。
在LAMP环境下,php错误默认指向下面这个文件。
/var/log/httpd/error_log
所有的访问记录都在。
/var/log/httpd/access_log
如何在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键都被注释掉了。
error_log
一般来说,我的做法是
locate php.ini
搜索这些文件中的error_reporting值。
error_reporting
*其中应该设置为任何php日志级别的组合,以满足你的需求。
例如:"E_ALL & E_ALL &.E_DEPRECATED & ~E_DEPRECATED & ~E_STRICT 3. 检查error_log值,确保它指向一个实际的地方,并且没有被注释掉。
E_ALL &.E_DEPRECATED & ~E_DEPRECATED & ~E_STRICT
默认值没有给出完整的路径,只有一个文件名,我不知道这个路径通常解析到哪里。 可能是/var/log/。
/var/log/
在你的php.ini文件中设置error_log变量时,你应该使用绝对路径,否则,错误日志将根据你的相对路径来存储。
error_log = /var/log/php.errors
其他解决方案是编写简单的脚本,从目录树中列出所有错误日志文件。
如果你在google计算引擎中,也可以是/var/log/apache2/error.log。
/var/log/apache2/error.log
而且你可以像这样查看尾巴。
tail -f /var/log/apache2/error.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/conf/httpd.conf
/etc/apache2/httpd.conf
/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"覆盖它。
/etc/httpd/logs/error_log
如果你从源码中构建了Apache和PHP,那么错误日志默认在你的${Apache install dir}/logs/error_log中生成,即一般是/usr/local/apache2/logs/error_log。 否则,如果你是从仓库安装的,你会发现它在/var/log/apache2/error_log.你也可以在php.ini中设置路径,并通过调用phpinfo()来验证它。
${Apache install dir}/logs/error_log
/usr/local/apache2/logs/error_log
NGINX通常将其存储在/var/log/nginx/error.log或access.log中。 (在任何情况下,在Ubuntu上)
如果你使用的是php5-fpm的日志,默认应该是在
/var/log/php5-fpm.log
当在php.ini中配置错误日志文件时,你可以使用绝对路径或相对路径。 相对路径会根据生成脚本的位置进行解析,你会在你的脚本所在的每个目录下得到一个日志文件。 如果你想让所有的错误信息都进入同一个文件,请使用绝对路径进入文件。
更多内容请看这里。 http://www.php.net/manual/en/ref.errorfunc.php#53025
这是有帮助的。 由sjas对问题发表评论。 所以我把它作为一个答案。
在httpd.conf文件中搜索 "ErrorLog",在命令行运行 "cat | 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`来指定不同的日志文件位置。
httpd-vhosts: 对于虚拟主机,你可以编辑虚拟主机文件
无论你想让它在哪里,如果你设置了你的函数调用。 error_log($errorMessageforLog . "\n", 4, 'somePath/SomeFileName.som')。
你是在共享环境中,无法找到错误日志,总是检查cPanel是否有选项Errors在你的cPanel仪表板上。 如果您无法找到错误日志,那么您可以在那里找到它。
在cPanel的搜索栏上,搜索Error,它会显示Error Pages,它基本上是不同http错误页面的列表,其他Error是显示错误日志的地方。
其他地方看共享环境。 /home/yourusername/logs。 /home/yourusername/public_html/error_log。
检查public_html文件夹中的日志文件。
检查"php phpinfo()" 文件中存储日志。
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] 。
[1]: https://codex.wordpress.org/Debugging_in_WordPress
如果 PHP 是 apache2 模块,则 PHP 将错误日志存储在
/var/log/apache2
中。 共享主机通常是将日志文件存储在根目录/log
子文件夹中。 但是......如果你能访问php.ini
文件,你可以这样做。根据rinogo的评论。如果你使用的是cPanel,你可能要找的主日志文件(默认情况下)存储在。
如果其他方法都失败了,你可以用以下方法检查日志文件的位置
尝试
phpinfo()
并检查"error_log"。Linux
终端将输出错误日志位置。
Windows
命令提示符将输出错误日志的位置
设置日志位置
打开你的
php.ini
,并添加以下一行。感谢@chelmertez、@Boom这些(对问题的评论)。
在LAMP环境下,php错误默认指向下面这个文件。
所有的访问记录都在。
如何在Linux上找到你的PHP错误日志:。
另一种相当的方式:。
似乎默认情况下,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/
。在你的php.ini文件中设置error_log变量时,你应该使用绝对路径,否则,错误日志将根据你的相对路径来存储。
其他解决方案是编写简单的脚本,从目录树中列出所有错误日志文件。
如果你在google计算引擎中,也可以是
/var/log/apache2/error.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"覆盖它。如果你从源码中构建了Apache和PHP,那么错误日志默认在你的
${Apache install dir}/logs/error_log
中生成,即一般是/usr/local/apache2/logs/error_log
。 否则,如果你是从仓库安装的,你会发现它在/var/log/apache2/error_log
.你也可以在php.ini
中设置路径,并通过调用phpinfo()
来验证它。NGINX通常将其存储在/var/log/nginx/error.log或access.log中。 (在任何情况下,在Ubuntu上)
如果你使用的是php5-fpm的日志,默认应该是在
当在php.ini中配置错误日志文件时,你可以使用绝对路径或相对路径。 相对路径会根据生成脚本的位置进行解析,你会在你的脚本所在的每个目录下得到一个日志文件。 如果你想让所有的错误信息都进入同一个文件,请使用绝对路径进入文件。
更多内容请看这里。 http://www.php.net/manual/en/ref.errorfunc.php#53025
这是有帮助的。 由sjas对问题发表评论。 所以我把它作为一个答案。
在httpd.conf文件中搜索 "ErrorLog",在命令行运行 "cat | grep ErrorLog`在命令行中搜索。 例如:
。
产出:
找到以 "ErrorLog "开头的一行,就有了答案。
注意:对于虚拟主机,你可以编辑虚拟主机文件
httpd-vhosts: 对于虚拟主机,你可以编辑虚拟主机文件
httpd-vhosts.conf`来指定不同的日志文件位置。无论你想让它在哪里,如果你设置了你的函数调用。 error_log($errorMessageforLog . "\n", 4, 'somePath/SomeFileName.som')。
你是在共享环境中,无法找到错误日志,总是检查cPanel是否有选项Errors在你的cPanel仪表板上。 如果您无法找到错误日志,那么您可以在那里找到它。
在cPanel的搜索栏上,搜索Error,它会显示Error Pages,它基本上是不同http错误页面的列表,其他Error是显示错误日志的地方。
其他地方看共享环境。 /home/yourusername/logs。 /home/yourusername/public_html/error_log。
检查public_html文件夹中的日志文件。
检查"php phpinfo()" 文件中存储日志。
cPanel错误日志位于:。
默认情况下,Apche的日志位于里面。
或
如果有人使用自定义日志位置,那么你可以通过运行这个命令来检查它。
如果你收到apache2目录不存在的错误信息,那么你可以运行这个命令来找到正确的位置。
或
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