2012-10-11 97 views
17

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

+1

这取决于你的日志设置:) CO – Nemoden

+1

我的服务器是centos,但它不显示var/log/httpd下的任何东西 – user1010966

+0

检查['error_log'](http://www.php.net/manual/en /errorfunc.configuration.php#ini.error-log)路径在php.ini中设置。如果没有设置,它通常会记录在Web服务器的错误日志中。 – air4x

回答

2

你正在使用什么操作系统和哪个Webserver?在Linux和Apache上,您可以在/ var/log/apache2/

中找到apache error_log
+2

在/ var下提问 –

+0

/log没有任何文件夹或文件名为apache2或apache。我的服务器是centos - apache – user1010966

+0

在/ var/log/httpd下?您可以在apache.conf文件中配置apache的日志位置。这应该位于/ etc/httpd/ – hiasl86

9

适用于我。如何将所有的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 

如何将错误记录到系统日志或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 
+0

某处我为什么要确保display_errors关闭?当然,这不应该影响错误记录,是吗? – User

+0

正如答案中所述,'display_errors'确定是否向最终用户*显示错误(例如,在渲染的网页上),所以不会影响日志记录。 http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors – cincodenada

1

我使用美分OS 6.6阿帕奇,对我错误日志文件是在

在/ usr /本地/ Apache /日志

15

您可以使用 “lsof的” 到在你的系统上找到打开的日志文件。 lsof只是给你一个所有打开文件的列表。

使用grep作为“log”...再次使用grep作为“php”(如果文件名包含字符串“log”和“php”就像在“php_error_log”中一样,并且你是root用户,你会发现这些文件不知道配置)。

 [email protected]:~# 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 

 [email protected]:~# 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

+0

这是查找日志文件的好方法 – Alp

4

在用的cPanel的CentOS安装我的日志是在:

/usr/local/apache/logs/error_log

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

0

这是在大多数使用情况较佳的答案,因为它可以让你从分离的服务器平台的直接的知识,这使你的代码更便携的软件的执行。如果你正在做很多cron/cgi,这可能不会直接帮助,但它可以在web运行时设置为一个配置,cron/cgi脚本从该配置中取出以保持日志位置一致。


您可以通过使用获得本地分配到PHP在运行在任何平台上当前的日志文件:

ini_get('error_log'); 

这将返回由Web服务器,这是直接分配到PHP的二进制值你需要90%的用例(显而易见的例外是cgi)。 Cgi经常会登录到http webserver客户端的相同位置,但并不总是如此。

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

相关问题