【问题标题】:Configure PHP on IIS with FastCGI to show warnings but continue executiuon使用 FastCGI 在 IIS 上配置 PHP 以显示警告但继续执行
【发布时间】:2019-07-26 04:28:19
【问题描述】:

我在 IIS(Windows)上使用 PHP (7.3.7) Non-ThreadSafe 作为 FastCGI。

PHP 安装是全新的,只是将 php.ini-development 重命名为 php.ini 因此 error_reporting 设置为 E_ALL

运行以下脚本

<?php
echo "some text\n" ;
echo $aaaaaaa;
echo "another text\n" ;
?>

会产生输出

PHP Notice:  Undefined variable: aaaaaaa in ****\article.php on line 3

请注意,输出中缺少第一行和第三行。

使用相同的 php 安装,在 apache (2.4.39) 和 nginx (1.17.2)(也在 windows 系统上)显示以下输出

some text
PHP Notice:  Undefined variable: aaaaaaa in ****\article.php on line 3
another text

是否需要更改特定配置,以便 PHP 在 IIS 中也显示与 apache、nginx 相同的输出?
或者换句话说,如何配置我的设置以显示警告和通知以及脚本的输出。

我用 PHP(7.1.30、7.2.11、5.2.10.10)尝试了相同的脚本,但同样的问题在 IIS 上仍然存在,但在 apache 或 nginx 上没有。

编辑

  • 我知道如果我将error_reporting 设置为E_ALL,则会显示所有错误、警告和通知,当我将其更改为E_ALL &amp; ~E_NOTICE &amp; ~E_WARNING &amp; ~E_STRICT &amp; ~E_DEPRECATED 时,通知和警告将被禁用并且不会显示。

  • 我也知道 $aaaaaaa 没有定义,它的存在是为了说明问题。

编辑 2
这似乎与 IIS 上的 fast-cgi 配置有关。在同一台机器上使用apachenginx 进行相同的php 安装和配置,我可以准确地看到Phil 和sancoLgates 在他们的链接中显示的内容。我正在编辑我的问题以反映问题

【问题讨论】:

  • 无法重现您的观察结果~3v4l.org/coFKX
  • 它在我的机器上的工作方式和你想要的完全一样
  • 奇怪! imgur.com/r1rUkaD,php安装是一个新副本,我只是取消了一些我需要的扩展。
  • 这就是test.php 包含的所有代码吗?
  • 是的,imgur.com/UpvNERM,如果有帮助,我正在 Windows 和 PHP 7.2.11 上运行

标签: php php-7


【解决方案1】:

在你的代码变量$aaaaaaa 没有定义,所以先定义它。 要检查错误,请添加此代码

<?php

    error_reporting(E_ALL);
    ini_set("display_errors", 1);

    // and then add your code below 

    ?>

【讨论】:

  • 似乎您没有阅读该问题,或者其他不正确的答案。我故意没有定义导致通知出现的变量!
猜你喜欢
  • 2010-09-30
  • 1970-01-01
  • 2016-10-16
  • 2014-08-05
  • 2023-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多