【问题标题】:Server returns blank page and 200 OK服务器返回空白页和 200 OK
【发布时间】:2014-11-26 00:03:57
【问题描述】:

我们的服务器在某些 POST 请求上返回一个空白页,状态码为 200。

没有 PHP 错误。即使我手动清除 $_POST 数组,问题仍然存在。

你是怎么想到的?

配置: nginx symfony 2.3.20 PHP 5.4.33-1~dotdeb.1 W也有varnish,但是varnish关闭后问题仍然存在。

使用选项 E_ALL 报告错误

【问题讨论】:

  • php_value error_reporting on or off?
  • 那有什么问题呢?我的意思是 200 表示 OK ;) 开个玩笑,您可能应该分享 哪些 POST 参数 使这种行为出现,并可能分享代码的相关部分。
  • 使用 E_ALL 选项开启错误报告。我认为这不是 $_POST 的问题,因为即使我清除它,它仍然存在
  • 也许你的代码中有exit;die;某处
  • @Mario 我已经检查过了,没有退出或死亡功能

标签: php symfony nginx varnish


【解决方案1】:

嗯,在 symfony2 中很容易像这样返回:

return new Response(null, 200);

wich 完全按照你说的做。您确定要从 symfony2 返回内容吗?

【讨论】:

    【解决方案2】:

    您使用的是哪个版本的 symfony?该场景看起来更像是由于函数参数不匹配或不存在的函数调用导致的 php 错误。 - 在您的 app_dev.php 中启用调试运行您的应用程序。 - 在检查错误类型的 ErrorHandler.php handleFatal() 函数中添加 E_RECOVERABLE_ERROR。通常,不匹配的函数参数会引发 E_RECOVERABLE_ERROR 类型的 php 错误,并且在 symfony 上没有正确处理。 完成后再次运行您的页面。希望错误会出现在您的页面上。 希望这会有所帮助

    【讨论】:

      【解决方案3】:

      回答我自己的问题。

      确实是一个 PHP 错误 - 内存限制耗尽。原来当我通过 strace 绑定到 php cgi 进程时。 Nginx 没有返回 500 状态码。它甚至没有查看和记录致命错误(尽管 error_reporting = On with E_ALL)。

      我不知道为什么。我会问另一个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-05
        • 2018-05-05
        • 1970-01-01
        • 1970-01-01
        • 2022-10-04
        • 1970-01-01
        • 2021-04-23
        • 1970-01-01
        相关资源
        最近更新 更多