php-fpm 向 nginx 返回空响应

php-fpm 向 nginx 返回空响应

/etc/nginx/fastcgi_paramsnginx 正在通过 fastcgi 连接到 php-fpm,使用位置块中的标准。

当从命令行连接到 /.status (php-fpm.ini::ping.path) 时cgi-fcgi -bind,结果将按预期返回(X-Powered-By 设置、响应主体等)。

当使用 nginx 发出请求时,结果返回空(设置了 X-Powered-By,没有正文长度或内容)。nginx 返回 200,因为它收到了“有效”响应。

通过监视 tcpdump,我已经将对奇偶校验的请求隔离在其 FCGI 标头中(减去仍由 shell 设置的用户相关的环境变量。)

答案1

标准factcgi_params文件不包含 的关键行SCRIPT_FILENAME

location ~ \.php$ {
                include fastcgi_params;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}

添加并重启nginx。

答案2

嗯,你的问题有点模糊。所谓的“死机白屏”(WSOD)可能由无数的事情触发。但如果我遇到这种情况,我会采取以下措施:

  • 在您的 中激活以下内容php.ini

    display_errors = 1
    display_startup_errors = 1
    error_log = /path/to/file
    error_reporting = -1 ; (the -1 activates absolutely everything)
    log_errors = 1
    
  • 在您的 中激活php-fpm.conf

    error_log = /path/to/file
    
  • 为每个 php-fpm 池配置激活:

    catch_workers_output = 1
    
  • 重复您的请求并检查所有日志(包括 nginx 错误日志)
  • 增加日志记录级别(例如在 nginx 上调试)

如果以上内容无法帮助您确定问题所在,请发布完整的系统信息和配置。否则,没人能给您准确的答案。

相关内容