【问题标题】:PHP Individual Application Level Error LoggingPHP 个人应用程序级错误记录
【发布时间】:2021-01-22 06:00:06
【问题描述】:

使用 IIS 8.8 和 PHP

如何将应用程序错误记录到 IIS 中的文件中?我让它在我的本地 XAMPP 环境中工作,但当我迁移到我没有经验的 IIS 服务器时似乎不起作用。

在我的应用程序中,我有一个文件 config.php,它包含在我的应用程序的每个页面中,并且包含以下内容;

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'Off');
ini_set('log_errors', 1);
ini_set('error_log', 'C:\inetpub\wwwroot\my_app\logs\err_log'); 
ini_set('date.timezone', 'Europe/London');
?>

但是,err_log 中没有记录任何内容 - 我是否必须更改 IIS 设置中的其他内容?

我将在此服务器上拥有多个应用程序,并希望为每个应用程序配置单独的应用程序日志文件,例如

  • C:\inetpub\wwwroot\my_app\logs\err_log
  • C:\inetpub\wwwroot\another_app\logs\err_log
  • C:\inetpub\wwwroot\yet_another_app\logs\err_log

【问题讨论】:

    标签: php apache logging iis


    【解决方案1】:

    当您将应用程序部署到 Windows 服务器上的 IIS 时,IIS 可以记录与 http 请求响应相关的错误,例如错误状态代码和详细的错误消息。您的php应用程序内部的错误(应用程序运行时的错误)需要您通过php代码或配置文件进行配置,让应用程序将错误信息输出到指定文件,IIS无法记录应用程序的内部错误。

    所以如果你使用config.php 文件来配置用来记录http 错误的日志文件,它是行不通的,因为只有web.config 文件才能配置IIS。如果只是用来记录应用程序中的错误,需要查看php代码或者到php相关论坛寻求帮助。

    在 IIS 中有两种记录错误的方法。

    1. Logging模块中,可以配置日志文件夹、日志记录格式、日志事件目的地、日志文件翻转。最终的日志文件会记录收到请求的时间、请求的ip、请求的url、状态码和状态子码等。
    2. fail request tracing模块中,可以详细记录request和response的整个过程。request进入iis时,进入了哪个模块,模块是如何处理request的,处理结果会被记录下来。对故障排除有很大帮助

    【讨论】:

    • 感谢您的详细回答。所以基本上不可能使用我当前的配置。我发现在 IIS 中没有记录 PHP 错误的方法令人惊讶,我想我应该研究一下并改用 Apache,下次我会知道的!
    猜你喜欢
    • 1970-01-01
    • 2012-02-11
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    相关资源
    最近更新 更多