我在共享主机上,并由fastcgi运行Cpanel,Apache,PHP。PHP在哪里存储错误日志?
还有什么其他方法可以在共享主机环境中找到错误日志,而不必遍历整个站点结构来查找error_log文件?
我可以访问php.ini
(我正在使用PHP版本5.2.16)。
php --info | grep error
php --info | findstr /r /c:"error_log"
来查看日志文件的位置。
我在共享主机上,并由fastcgi运行Cpanel,Apache,PHP。PHP在哪里存储错误日志?
还有什么其他方法可以在共享主机环境中找到错误日志,而不必遍历整个站点结构来查找error_log文件?
我可以访问php.ini
(我正在使用PHP版本5.2.16)。
php --info | grep error
php --info | findstr /r /c:"error_log"
来查看日志文件的位置。
Answers:
/var/log/apache2
如果PHP是apache2模块,则PHP将存储错误日志。共享主机通常将日志文件存储在您的根目录/log
子文件夹中。但是...如果您有权访问php.ini
文件,则可以执行以下操作:
error_log = /var/log/php-scripts.log
根据rinogo的评论:如果您使用的是cPanel,则可能要查找的主日志文件(默认情况下)存储在
/usr/local/apache/logs/error_log
如果其他所有方法均失败,则可以使用以下命令检查日志文件的位置
<?php phpinfo(); ?>
/usr/local/apache/logs/error_log
<?php phpinfo(); ?>
以确认路径
尝试phpinfo()
检查“ error_log”
echo ini_get('error_log');
吗?
error_reporting(E_ALL|E_STRICT);
se.php.net/manual/en/function.error-reporting.php
php --info | grep error
终端将输出错误日志位置。
php --info | findstr /r /c:"error_log"
命令提示符将输出错误日志位置
打开您的php.ini
并添加以下行:
error_log = /log/myCustomLog.log
感谢@chelmertez和@Boom的这些(有关问题的评论)。
php -info
输出什么吗?您需要确定php
实际上是在调用PHP来运行...
php.ini
,并将其设置error_reporting
为E_ALL & ~E_DEPRECATED & ~E_STRICT
,或者您要查看的任何错误,然后设置error_log
为您要记录错误的目录的路径。(注意:这不是文件的完整路径,只是目录的完整路径。)
php --info | grep log
我指向最近的日志所在的/ var / www / logs。
sudo /etc/init.d/apache2 restart
最好的方法是在您的httpd.conf文件中查找默认值。您的特定虚拟主机也可能会覆盖它。我先查看/etc/httpd/conf/httpd.conf
或/etc/apache2/httpd.conf
搜索error_log。它既可以列为/ var / log / httpd / error_log /var/log/apache2/error_log
,也可以列为simple logs/error_log
。
在这种情况下,这是一条相对路径,这意味着它将位于下/etc/httpd/logs/error_log
。如果仍然找不到它,请检查httpd.conf文件的底部,并查看虚拟主机的位置。它可能在/etc/httpd/conf.d/<-中作为“其他”或“其他”。您的虚拟主机可以使用ErrorLog“ / path / to / error_log”覆盖它。
在php.ini中配置错误日志文件时,可以使用绝对路径或相对路径。相对路径将根据生成脚本的位置进行解析,并且您将在脚本所在的每个目录中获得一个日志文件。如果希望所有错误消息都移至同一文件,请使用绝对路径文件。
在此处查看更多信息:http : //www.php.net/manual/zh/ref.errorfunc.php#53025
php --info | grep error
这是有帮助的。sjas对问题发表了评论。所以我把它作为答案。
ErrorLog
通过cat <file location> | grep ErrorLog
在命令行上运行来搜索httpd.conf文件。例如:
$ 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.conf
以指定其他日志文件位置。
cPanel错误日志位于:
/ usr / local / cpanel / logs /
/ usr / local / apache / logs /
默认情况下,Apche日志位于以下位置:
/ var / log / apache
要么
/ var / log / apache2
如果有人使用自定义日志位置,则可以通过运行以下命令进行检查:
猫/ etc / apache2 / conf /httpd.conf | grep ErrorLog
如果遇到错误提示apache2目录不存在,则可以通过以下方式运行此命令以找到正确的位置:
阿帕奇在哪里
要么
apache2在哪里
您在共享环境中,找不到错误日志,请始终检查cPanel在cPanel仪表板上是否有选项Errors。如果找不到错误日志,则可以在此处找到它。
在cPanel搜索栏上,搜索错误,它将显示错误页面,这些错误页面基本上是不同的http错误页面的列表,其他错误是显示错误日志的位置。
共享环境上的其他位置:/ home /您的用户名/ logs / home /您的用户名/ public_html / error_log
当设置为true 时,Wordpress会将error_log()
消息定向到。/wp-content/debug.log
WP_DEBUG_LOG
/var/log/httpd/error_log
或者/var/log/apache2/error.log
。这些文件由root拥有,因此您需要是root或使用sudo
它才能看到或读取它。