首页 文章

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

提问于
浏览
332

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

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

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

17 回答

  • 3

    如果您使用的是谷歌计算引擎,它也可以是 /var/log/apache2/error.log .

    你可以像这样查看尾巴:

    tail -f /var/log/apache2/error.log
    
  • 9

    NGINX通常将其存储在/var/log/nginx/error.log或access.log中 . (无论如何都在Ubuntu上)

  • 9
    php --info | grep error
    

    这很有帮助 . 由sjas评论 . 所以我把它作为一个答案 .

  • 10

    最好的方法是查看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"覆盖它 .

  • 5

    Linux

    php --info | grep error
    

    终端将输出错误日志位置 .

    Windows

    php --info | findstr /r /c:"error_log"
    

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

    设置日志位置

    打开 php.ini 并添加以下行:

    error_log = /log/myCustomLog.log
    

    感谢@chelmertez,@ Bob这些(对问题的评论) .

  • 27

    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
    
  • 2

    如果php是一个apache2模块,Php会在 /var/log/apache2 中存储错误日志 . 共享主机通常将日志文件存储在根目录 /log 子文件夹中 . 但是......如果你有权访问 php.ini 文件,你可以这样做:

    error_log = /var/log/php-scripts.log
    

    根据 rinogo 's comment: If you'使用cPanel,您可能正在查找的主日志文件(默认情况下)存储在

    /usr/local/apache/logs/error_log
    

    如果所有其他方法都失败,您可以使用检查日志文件的位置

    <?php phpinfo(); ?>
    
  • 2

    如果你使用php5-fpm日志默认应该在

    /var/log/php5-fpm.log
    
  • 28

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

  • 3

    通过在命令行上运行 cat <file location> | 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 开头的行,这是你的答案 .

    注意:对于虚拟主机,您可以编辑虚拟主机文件 httpd-vhosts.conf 以指定其他日志文件位置 .

  • 15

    试试 phpinfo() 并检查"error_log"

  • 268

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

    error_log = /var/log/php.errors
    

    其他解决方案是编写简单的脚本,列出目录树中的所有错误日志文件 .

  • 81

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

    在这里查看更多:http://www.php.net/manual/en/ref.errorfunc.php#53025

  • 5

    看来默认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/ .

  • 0

    Wordpress

    WP_DEBUG_LOG 设置为true时,Wordpress会将 error_log() 消息指向 /wp-content/debug.log .

    See Wordpress Documentation for WP_DEBUG_LOG

  • -1

    如果你想要它,如果你设置你的函数调用:error_log($ errorMessageforLog . “\ n”,4,'somePath / SomeFileName.som');

  • 3

    在LAMP环境中,php错误默认指向此文件下方 .

    /var/log/httpd/error_log
    

    所有访问日志都包含在:

    /var/log/httpd/access_log
    

相关问题