我在哪里可以找到错误日志文件?

时间:2012-10-11 07:42:31

标签: php logging centos suphp

在哪里可以找到错误日志文件?我需要检查它们以解决安装suPHP后显示的内部服务器错误。

8 个答案:

答案 0 :(得分:23)

您可以使用" lsof"在您的系统上查找打开的日志文件。 lsof只是为您提供所有打开文件的列表。

使用grep for" log" ...再次使用grep for" php" (如果文件名包含字符串" log"和" php"喜欢" php_error_log"并且您是root用户,您将在不知道的情况下找到文件构造)。

        root@lnx-work:~# lsof |grep log
        ... snip
        gmain     12148 12274       user   13r      REG              252,1    32768     661814 /home/user/.local/share/gvfs-metadata/home-11ab0393.log
        gmain     12148 12274       user   21r      REG              252,1    32768     662622 /home/user/.local/share/gvfs-metadata/root-56222fe2.log
        gvfs-udis 12246             user  mem       REG              252,1    55384     790567 /lib/x86_64-linux-gnu/libsystemd-login.so.0.7.1
==> apache 12333             user  mem       REG              252,1    55384     790367 /var/log/http/php_error_log**
        ... snip 
  

        root@lnx-work:~# lsof |grep log |grep php 
        **apache 12333             user  mem       REG              252,1    55384     790367 /var/log/http/php_error_log**
        ... snip 

另见本文关于查找打开的日志文件: Find open logfiles on a linux system

答案 1 :(得分:12)

适合我。如何将所有php错误记录到日志文件中?

只需在/etc/php.ini中添加以下行即可将错误记录到指定文件 - /var/log/php-scripts.log

vi /etc/php.ini

修改error_log指令

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

确保display_errors设置为Off(对最终用户没有错误)

display_errors = Off

保存并关闭文件。重新启动Web服务器:

/etc/init.d/httpd restart

如何将错误记录到syslog或Windows Server事件日志?

修改error_log,如下所示:

error_log = syslog

如何查看日志?

Login using ssh or download a log file /var/log/php-scripts.log using sftp:
$ sudo tail -f /var/log/php-scripts.log

答案 2 :(得分:4)

您使用的是哪种操作系统以及哪种Web服务器?在Linux和Apache上,您可以在/ var / log / apache2 /

中找到apache error_log

答案 3 :(得分:4)

在安装了cPanel的CentoS上,我的日志位于:

/usr/local/apache/logs/error_log

观看:tail -f /usr/local/apache/logs/error_log

答案 4 :(得分:1)

我正在使用 Cent OS 6.6 Apache ,对我来说错误日志文件在

的/ usr /本地/ Apache /日志

答案 5 :(得分:1)

在大多数用例中,这是一个优选的答案,因为它允许您将软件的执行与服务器平台的直接知识分离,从而使代码更加便携。如果您正在执行大量的cron / cgi,这可能无法直接帮助,但可以在Web运行时将其设置为cron / cgi脚本从中拉出以保持日志位置在这种情况下保持一致。

您可以使用以下命令获取在运行时在任何平台上本地分配给php的当前日志文件:

ini_get('error_log');

这将返回由Web服务器直接分发给php二进制文件的值,这是你想要的90%的用例(明显的例外是cgi)。 Cgi通常会登录到与http webserver客户端相同的位置,但并非总是如此。

您还需要在向其提交任何内容之前检查它是否可写,以避免错误。定义它的位置的conf文件(通常是基于每个域的apache.conf或vhosts.conf),但conf不能确保文件权限允许在运行时进行写访问。

答案 6 :(得分:0)

这将极大地帮助您

https://davidwinter.me/enable-php-error-logging/

OR

  

在php.ini中:(vim /etc/php.ini或Sudo vim   /usr/local/etc/php/7.1/php.ini)

     

display_errors =关闭

     

log_errors =开

     

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

制作日志文件,并可通过www-data写入:

  

sudo touch /var/log/php-errors.log

     

/var/log/php-errors.log

     

sudo chown:www

谢谢

答案 7 :(得分:0)

对于UNIX CLI用户

很可能未设置error_log ini条目。要验证:

php -i | grep error_log
// error_log => no value => no value

您可以在php.ini cli文件中进行设置,也可以直接将自己所有的 STDERR 管道传输到文件中:

./myprog 2> myerror.log

然后迅速:

tail -f myerror.log