php-fpm向nginx返回空响应


9

nginx使用/etc/nginx/fastcgi_paramslocation块中的标准通过fastcgi连接到php-fpm 。

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

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

监视tcpdump,我在其FCGI标头中隔离了对奇偶校验的请求(减去仍由Shell设置的与用户相关的env变量)。


尝试更改为用户nginx的运行身份,然后重新运行cgi-fcgi -bind测试。
一些Linux Nerd

我总是通过以root用户身份对其进行测试来搞砸NRPE部署……以为您可能也做过同样的事情。
一些Linux Nerd

Answers:


11

标准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。


4

好吧,你的问题有点含糊。数量众多的事件可能会触发所谓的“死亡白屏”(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上进行调试)

如果这不能帮助您解决问题,请发布完整的系统信息和配置。没有那个,谁也无法给您一个准确的答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.