IIS 7.5错误日志保存在哪里?

37

IIS 7.5错误日志记录在哪里?

事件查看器? 日志文件?

我遇到了一个非常不具体的500内部错误。我想找到更多信息。

我正在运行PHP,并且按照此帖子上最后一条评论所说进行了操作。但仍未记录到C:\windows\temp文件夹中。


这个问题可能也应该打上“iis”的标签。例如,参见*如果我的解决方案仅限于特定版本,我不应该使用通用标签吗?*。 - Peter Mortensen
这在Windows和Linux上可能会有很大的不同,但是为了定位PHP错误日志,规范的方法是*PHP 5、Apache、FastCGI和cPanel中PHP存储错误日志的位置在哪里?*(尽管标题过于具体)。其中描述的一些通用方法也适用于Windows。 - Peter Mortensen
5个回答

37

要报告事件查看器中的错误,请转到您的php.ini文件并确保日志记录已启用。

log_errors = On

然后启用 error_log 以将其写入 syslog (在 Windows 计算机上是事件查看器)

error_log = syslog

1
我在想这有什么用处...它不会和许多其他操作系统/应用程序日志混杂在一起吗? - bobsaccamano
@SandipGangakhedkar - 这是用户的个人喜好。我个人喜欢有一个单独的日志文件。但有些人使用网络监控工具,只查看事件查看器或系统日志。 - NeerPatel
1
您还需要确保正确设置 error_reportinglog_errors_max_len。例如,error_reporting=-1log_errors_max_len=0 - Pacerier
@NeerPatel,我们如何将其设置为服务器日志而不是syslog(事件查看器)?通过服务器日志,我指的是IIS当前设置的任何设置。 - Pacerier
@Pacerier - 你所说的服务器日志,是指文本文件吗?如果是这样,请执行以下操作: error_log = C:\ TEMP \ PHP.LOG - NeerPatel

20

对于 PHP v5.3,看这里:

C:\Windows\Temp\PHP53_errors.log

12

在我的 IIS 7.5 服务器上,我在 php.ini 文件的底部找到了这段代码。

[WebPIChanges]
error_log=C:\Windows\temp\php54_errors.log
upload_tmp_dir=C:\Windows\temp
session.save_path=C:\Windows\temp
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
fastcgi.logging=0
max_execution_time=300
date.timezone=Australia/Canberra
extension_dir="C:\Program Files (x86)\PHP\v5.4\ext\"

我不确定上面的所有代码是否都是必需的,因为我对php.ini文件不太熟悉,但我可以确认错误日志文件是可达和有效的。

如果有人想知道,这个修复仍然需要以下步骤。

log_errors = on
error_log = syslog

9

我曾遇到一个问题,即PHP解释器无法将错误日志写入。 我将IUSR用户添加到文件的安全权限中(右键单击文件,属性,安全选项卡),并授予读取、写入和修改权限,然后就能够在日志文件中看到PHP错误信息了。


我已经测试过它可以在Windows Server 2012上与II_IUSRS一起使用。由于某些原因,IUSR无法正常工作。 - Pacerier

4
在IIS的网站设置中应该有一个“日志记录”图标。如果您没有更改目录,则默认情况下它似乎指向%SystemDrive%\inetpub\logs\LogFiles。查看您的设置,我还建议在站点文件上方创建一个日志文件夹,以保持日志分开。

5
那些是访问日志,我正在寻找错误日志。不过还是谢谢你。 - capdragon
1
或者 systemroot\System32\LogFiles\HTTPERR - David d C e Freitas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接