gpt4 book ai didi

linux - Nginx 在 PHP 解析错误后发送状态 200

转载 作者:太空狗 更新时间:2023-10-29 12:21:29 25 4
gpt4 key购买 nike

我已经在 Ubuntu 上使用 php-fpm 配置了 nginx(并且一切正常)。

我遇到的一件事是,当发生 PHP 解析错误时,会发送 HTTP 状态代码 200。错误日志包含以下条目:

[error] 3205#0: *2854 FastCGI sent in stderr: "PHP Parse error: syntax error, unexpected T_REQUIRE_ONCE in /var/www/.../index.php on line 32" while reading response header from upstream, client: 1.2.3.4, server: example.com; request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "example.com"

我无法弄清楚,为什么不发送代码 50x。我没有配置任何 error_page 设置,我阅读了 documentation of error_page .我也试过它来设置状态代码(使用 error_page 500 =500/50x.html 等等)。但总是返回状态 200。

我可以从 PHP 发送状态 header (header('HTTP/1.1 404 Not Found')),这是可行的。但是,对于 PHP 解释器发出的错误(也是未捕获的异常),服务器的响应不会考虑错误的发生。

最佳答案

仅供引用,此问题现已在 PHP 5.4 及更高版本的 Xdebug (2.2) 中修复。遗憾的是,它需要对 PHP 进行更改才能使其正常工作,但无法向后移植到 5.3。

关于linux - Nginx 在 PHP 解析错误后发送状态 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5773417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com