Error handling PHP在哪里存储错误日志?(php5、apache、fastcgi、cpanel)

Error handling PHP在哪里存储错误日志?(php5、apache、fastcgi、cpanel),error-handling,php,Error Handling,Php,我在共享主机上,有Cpanel,Apache,PHP由fastcgi运行。PHP在哪里存储错误日志 有没有其他方法可以在共享主机环境中找到错误日志,而不必通过整个站点结构来查找错误日志文件 我可以访问php.ini(我使用的是php版本5.2.16)。尝试phpinfo()并检查“error\u log”在php.ini文件中设置error\u log变量时应使用绝对路径,否则,错误日志将根据相对路径存储 error_log = /var/log/php.errors 另一种解决方案是编写简单

我在共享主机上,有Cpanel,Apache,PHP由fastcgi运行。PHP在哪里存储错误日志

有没有其他方法可以在共享主机环境中找到错误日志,而不必通过整个站点结构来查找错误日志文件


我可以访问
php.ini
(我使用的是php版本5.2.16)。

尝试
phpinfo()
并检查“error\u log”

在php.ini文件中设置error\u log变量时应使用绝对路径,否则,错误日志将根据相对路径存储

error_log = /var/log/php.errors

另一种解决方案是编写简单的脚本,列出目录树中的所有错误日志文件。

PHP将错误日志存储在
/var/log/apache2
中(如果PHP是apache2模块)。 共享主机通常将日志文件存储在根目录
/log
子文件夹中。 但是…如果您可以访问
php.ini
文件,您可以执行以下操作:

error_log = /var/log/php-scripts.log
根据rinogo的评论:如果您使用的是cPanel,您可能要查找的主日志文件(默认情况下)存储在

如果所有其他操作都失败,您可以使用

<?php phpinfo(); ?>

在php.ini中配置错误日志文件时,可以使用绝对路径或相对路径。相对路径将根据生成脚本的位置进行解析,并且您将在包含脚本的每个目录中获得一个日志文件。如果希望所有错误消息都指向同一个文件,请使用该文件的绝对路径


请参阅此处的更多信息:

在LAMP环境中,php错误默认指向下面的文件

/var/log/httpd/error_log
所有访问日志都属于:

/var/log/httpd/access_log

如果您从源代码构建了Apache和PHP,那么默认情况下,错误日志将在
${Apache install dir}/logs/error\u log
处生成,即通常
/usr/local/apache2/logs/error\u log
。否则,如果您是从存储库安装的,您将在
/var/log/apache2/error\u log
中找到它。您还可以在
php.ini
中设置路径,并通过调用
phpinfo()

如何在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
另一种等效方式:

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

如果使用php5 fpm日志,则默认值应为

/var/log/php5-fpm.log

最好的方法是查看httpd.conf文件并查看默认值。它也可以被您的特定虚拟主机覆盖。我首先查看
/etc/httpd/conf/httpd.conf
/etc/apache2/httpd.conf
并搜索错误日志。它可以列为/var/log/httpd/error\u log或
/var/log/apache2/error\u log
,但也可以简单列为
日志/error\u log


在本例中,它是一个相对路径,这意味着它将位于
/etc/httpd/logs/error\u log
下。如果仍然找不到它,请检查httpd.conf文件的底部,并查看虚拟主机包括在哪里。如果将其设置为函数调用,则它可能位于/etc/httpd/conf.d/中您希望它位于的任何位置:
错误日志($errorMessageforLog。“\n”,4,“somePath/SomeFileName.som”)

默认情况下,php不会在任何地方记录错误,php.ini中的
错误日志
键在我看到的所有安装中都被注释掉了

一般而言,我:

  • 查找php.ini文件<代码>找到php.ini
  • 在这些文件中搜索
    错误报告

    应该将其设置为php日志级别的任何合并都足以满足您的需要

    例如:
    E\u ALL&~E\u已弃用&~E\u STRICT

  • 检查
    错误日志
    值,确保它指向实际位置且未被注释掉

    默认值没有给出完整路径,只有文件名,我不知道该路径通常解析到哪里。可能是
    /var/log/


  • 如果您在google compute engine中,它也可以是
    /var/log/apache2/error.log

    您可以这样查看尾部:

    tail -f /var/log/apache2/error.log
    
    Linux 终端将输出错误日志位置

    窗户 命令提示符将输出错误日志位置

    设置日志位置的步骤 打开
    php.ini
    并添加以下行:

    error_log = /log/myCustomLog.log
    

    谢谢你(对这个问题的评论)。
    NGINX通常将其存储在/var/log/NGINX/error.log或access.log中。
    (在任何情况下,在Ubuntu上)

    通过在命令行上运行
    cat|grep ErrorLog
    来搜索httpd.conf文件中的
    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指令
    ErrorLog“/private/var/log/apache2/error\u log”
    
    找到以
    ErrorLog
    开头的行,这就是你的答案

    注意:对于虚拟主机,您可以编辑虚拟主机文件
    httpd vhosts.conf
    以指定不同的日志文件位置。

    Wordpress 当
    wp\u debug\u log
    设置为true时,Wordpress将
    error\u log()
    消息定向到
    /wp content/debug.log

    这很有帮助。sjas对问题的评论。所以我把它作为一个答案

  • 您可以进入“文件管理器检查日志”文件夹
  • 检查public_html文件夹中的日志文件
  • 检查日志存储所在的“php phpinfo()”文件

  • cPanel错误日志位于:

    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
    
    /usr/local/cpanel/logs/

    /usr/local/apache/logs/

    默认情况下,Apche日志位于:

    /var/log/apache

    /var/log/apache2

    如果有人正在使用自定义日志位置,则可以通过运行以下命令进行检查:

    cat/etc/apache2/conf/httpd.conf|grep ErrorLog

    如果您遇到错误,认为apache2目录不存在,则可以通过以下方式运行此命令以查找正确的位置:

    阿帕奇在哪里

    我在哪里
    sudo locate error.log | xargs -IX grep -iH "errorlog" X
    
    sudo locate error_log | xargs -IX grep -iH "errorlog" X
    
    sudo find / -iname "error?log" 2>/dev/null | xargs -IX grep -iH "errorlog" X