我在共享主机上有Cpanel,Apache,PHP由fastcgi运行 . PHP存储错误日志在哪里?
有没有其他方法可以在共享主机环境中找到错误日志,而不必通过整个站点结构来查找error_log文件?
我可以访问 php.ini (我使用的是PHP版本5.2.16) .
php.ini
如果您使用的是谷歌计算引擎,它也可以是 /var/log/apache2/error.log .
/var/log/apache2/error.log
你可以像这样查看尾巴:
tail -f /var/log/apache2/error.log
NGINX通常将其存储在/var/log/nginx/error.log或access.log中 . (无论如何都在Ubuntu上)
php --info | grep error
这很有帮助 . 由sjas评论 . 所以我把它作为一个答案 .
最好的方法是查看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/<- as "other"或"extra" . 您的虚拟主机可以使用ErrorLog "/path/to/error_log"覆盖它 .
/etc/httpd/logs/error_log
终端将输出错误日志位置 .
php --info | findstr /r /c:"error_log"
命令提示符将输出错误日志位置
打开 php.ini 并添加以下行:
error_log = /log/myCustomLog.log
感谢@chelmertez,@ Bob这些(对问题的评论) .
How do find your PHP error log on Linux:
eric@dev /var $ sudo updatedb [sudo] password for eric: eric@dev /var $ sudo locate error_log /var/log/httpd/error_log
Another equivalent way:
eric@dev /home/eric $ sudo find / -name "error_log" 2>/dev/null /var/log/httpd/error_log
如果php是一个apache2模块,Php会在 /var/log/apache2 中存储错误日志 . 共享主机通常将日志文件存储在根目录 /log 子文件夹中 . 但是......如果你有权访问 php.ini 文件,你可以这样做:
/var/log/apache2
/log
error_log = /var/log/php-scripts.log
根据 rinogo 's comment: If you'使用cPanel,您可能正在查找的主日志文件(默认情况下)存储在
/usr/local/apache/logs/error_log
如果所有其他方法都失败,您可以使用检查日志文件的位置
<?php phpinfo(); ?>
如果你使用php5-fpm日志默认应该在
/var/log/php5-fpm.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
phpinfo()
通过在命令行上运行 cat <file location> | grep ErrorLog ,在httpd.conf文件中搜索 ErrorLog . 例如:
cat <file location> | grep ErrorLog
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.conf 以指定其他日志文件位置 .
httpd-vhosts.conf
试试 phpinfo() 并检查"error_log"
在php.ini文件中设置 error_log 变量时应该使用绝对路径,否则,将根据您的相对路径存储错误日志 .
error_log = /var/log/php.errors
其他解决方案是编写简单的脚本,列出目录树中的所有错误日志文件 .
在php.ini中配置错误日志文件时,可以使用绝对路径或相对路径 . 将根据生成脚本的位置解析相对路径,并且您将在脚本所在的每个目录中获取日志文件 . 如果您希望所有错误消息都转到同一文件,请使用绝对路径文件 .
在这里查看更多:http://www.php.net/manual/en/ref.errorfunc.php#53025
看来默认php does not log 错误在任何地方,php.ini中的 error_log 键在所有安装's I'中被注释掉了 .
error_log
一般我:
寻找php.ini文件 . locate php.ini .
locate php.ini
在 error_reporting 值中搜索这些文件;
error_reporting
哪个应该设置为php日志级别的任何合并对你来说都足够了 .
例如: E_ALL & ~E_DEPRECATED & ~E_STRICT
E_ALL & ~E_DEPRECATED & ~E_STRICT
默认值不知道此路径正常解析的位置 . 可能是 /var/log/ .
/var/log/
当 WP_DEBUG_LOG 设置为true时,Wordpress会将 error_log() 消息指向 /wp-content/debug.log .
WP_DEBUG_LOG
error_log()
/wp-content/debug.log
See Wordpress Documentation for WP_DEBUG_LOG
如果你想要它,如果你设置你的函数调用:error_log($ errorMessageforLog . “\ n”,4,'somePath / SomeFileName.som');
在LAMP环境中,php错误默认指向此文件下方 .
/var/log/httpd/error_log
所有访问日志都包含在:
/var/log/httpd/access_log
17 回答
如果您使用的是谷歌计算引擎,它也可以是
/var/log/apache2/error.log
.你可以像这样查看尾巴:
NGINX通常将其存储在/var/log/nginx/error.log或access.log中 . (无论如何都在Ubuntu上)
这很有帮助 . 由sjas评论 . 所以我把它作为一个答案 .
最好的方法是查看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/<- as "other"或"extra" . 您的虚拟主机可以使用ErrorLog "/path/to/error_log"覆盖它 .Linux
终端将输出错误日志位置 .
Windows
命令提示符将输出错误日志位置
设置日志位置
打开
php.ini
并添加以下行:感谢@chelmertez,@ Bob这些(对问题的评论) .
How do find your PHP error log on Linux:
Another equivalent way:
如果php是一个apache2模块,Php会在
/var/log/apache2
中存储错误日志 . 共享主机通常将日志文件存储在根目录/log
子文件夹中 . 但是......如果你有权访问php.ini
文件,你可以这样做:根据 rinogo 's comment: If you'使用cPanel,您可能正在查找的主日志文件(默认情况下)存储在
如果所有其他方法都失败,您可以使用检查日志文件的位置
如果你使用php5-fpm日志默认应该在
如果您从源代码构建Apache和PHP,那么默认情况下的错误日志是在
${Apache install dir}/logs/error_log
生成的,通常是/usr/local/apache2/logs/error_log
. 否则,如果您已从存储库安装它,您将在/var/log/apache2/error_log
找到它 . 您也可以在php.ini
中设置路径并通过调用phpinfo()
来验证它 .通过在命令行上运行
cat <file location> | grep ErrorLog
,在httpd.conf文件中搜索ErrorLog
. 例如:输出:
找到以
ErrorLog
开头的行,这是你的答案 .注意:对于虚拟主机,您可以编辑虚拟主机文件
httpd-vhosts.conf
以指定其他日志文件位置 .试试
phpinfo()
并检查"error_log"在php.ini文件中设置 error_log 变量时应该使用绝对路径,否则,将根据您的相对路径存储错误日志 .
其他解决方案是编写简单的脚本,列出目录树中的所有错误日志文件 .
在php.ini中配置错误日志文件时,可以使用绝对路径或相对路径 . 将根据生成脚本的位置解析相对路径,并且您将在脚本所在的每个目录中获取日志文件 . 如果您希望所有错误消息都转到同一文件,请使用绝对路径文件 .
在这里查看更多:http://www.php.net/manual/en/ref.errorfunc.php#53025
看来默认php does not log 错误在任何地方,php.ini中的
error_log
键在所有安装's I'中被注释掉了 .一般我:
寻找php.ini文件 .
locate php.ini
.在
error_reporting
值中搜索这些文件;哪个应该设置为php日志级别的任何合并对你来说都足够了 .
例如:
E_ALL & ~E_DEPRECATED & ~E_STRICT
error_log
值以确保它指向实际位置并且未注释掉 .默认值不知道此路径正常解析的位置 . 可能是
/var/log/
.Wordpress
当
WP_DEBUG_LOG
设置为true时,Wordpress会将error_log()
消息指向/wp-content/debug.log
.See Wordpress Documentation for WP_DEBUG_LOG
如果你想要它,如果你设置你的函数调用:error_log($ errorMessageforLog . “\ n”,4,'somePath / SomeFileName.som');
在LAMP环境中,php错误默认指向此文件下方 .
所有访问日志都包含在: