/etc/nginx/fastcgi_params
nginx 正在通过 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 上调试)
如果以上内容无法帮助您确定问题所在,请发布完整的系统信息和配置。否则,没人能给您准确的答案。