【问题标题】:php.ini misconfigurationphp.ini 配置错误
【发布时间】:2009-08-31 20:09:38
【问题描述】:

我已经缩小了我的问题范围。 当我从命令行运行"error_log('hey');" 时,它会转储到STDOUT。但是,如果我从我的 Web 界面 (Apache) 运行相同的代码,它会将错误放入错误日志中。 我检查了两个 ini 文件,一个 Apache 正在使用,一个在 /private/etc 中(我在运行 MAMP 的 Mac 上)。两个 error_log 变量都指向完全相同的位置。 当我跑步时

echo ini_get('error_log');

命令行中的值与浏览器中的值相同。 什么 ini 设置在这里配置错误?这很烦人,因为不仅仅是错误记录被破坏了。它也影响了我的包含路径:/

【问题讨论】:

    标签: php configuration ini


    【解决方案1】:

    你想完成什么?在 apache 中,stderr 进入 error_log... error_log() function documentation 声明默认情况下它会记录到服务器的错误日志中。如果您想登录到其他目的地,请使用message_typedestination 参数。

    【讨论】:

      【解决方案2】:

      您可能需要编辑以下配置文件:

      /Applications/MAMP/conf/php5/php.ini
      

      MAMP 使用它自己的 Apache 服务器,默认情况下在端口 8080 上运行。您可能希望在系统偏好设置 -> 共享中关闭 Apache 服务器。

      另外,请尝试运行包含以下内容的 PHP 文件:

      <?php phpinfo(); ?>
      

      这将告诉您 Apache 实际正在读取哪个 php.ini。

      【讨论】:

        【解决方案3】:

        error_log 显示在控制台而不是日志文件中的原因可能是权限问题——我不太了解 MacOS,但由于它是基于 UNIX 的,我猜想:

        • Apache 使用的日志文件属于特定用户
        • 从控制台运行脚本时,您不是该用户,并且您没有日志文件的写入权限

        如果它无法记录到日志文件,我认为error_log正在写入错误的标准输出(stderr),通常是控制台。


        手册页面上的This comment 似乎表明这可能是您的问题的原因(引用):

        如果 PHP 记录到 stderr 无法写入日志文件。命令 行 PHP 回退到 stderr 因为 日志文件(通常)只是 可由网络服务器写入。


        此外,请确保在 CLI 中使用的 php.ini 文件中正确配置了 log_errorsdisplay_errors

        log_errors 布尔值

        判断脚本是否有错误信息 应该记录到服务器的错误 日志或错误日志。因此,此选项 服务器特定的。

        还有:

        display_errors 字符串

        这决定了错误是否应该 打印到屏幕上作为 输出或者是否应该隐藏它们 来自用户。

        值“stderr”将错误发送到 标准错误而不是标准输出。

        【讨论】:

          【解决方案4】:

          这里相关的ini设置是display_errors

          在命令行中,On 的值会将错误转储到STDOUTstderr 会将它们转移到 STDERR,Off 将抑制它们。仅对于 Apache,OnOff 才有意义。

          很可能 Apache 的 ini 文件有 display_errors = Off 而 /private/etc 中的文件有 display_errors = On

          error_log 指令告诉 PHP 将错误记录到哪里,但它也需要将 log_errors 设置为 On,否则无效。 (同样,/private/etc 中的 ini 文件很可能有 log_errors = Off。)

          【讨论】:

            猜你喜欢
            • 2014-07-25
            • 2018-09-20
            • 1970-01-01
            • 1970-01-01
            • 2012-04-16
            • 2015-12-20
            • 2022-01-16
            • 2015-09-12
            • 2015-04-01
            相关资源
            最近更新 更多