如何调试“FastCGI发送在stderr中:从上游读取响应标头时主脚本未知”并找到实际的错误消息?要回答您的问题:要解决“主脚本未知”问题,请执行以下操作:
SO有很多文章提到这个错误代码:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream...
这可能意味着此错误消息或多或少是无用的。
该消息告诉我们,FastCGI处理程序由于某种原因不喜欢它发送的任何内容。问题是,有时我们不知道原因是什么。
所以我重述了这个问题 - 我们如何调试这个错误代码?
考虑一下我们有一个非常简单的网站的情况,只有phpinfo.php文件。此外,还有一个非常简单的nginx配置,如下所示:
server {
server_name testsite.local;
root /var/local/mysite/;
location / {
index index.html index.htm index.php;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass fastcgi_backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
我们如何准确地看到输出/记录fastcgi_params发送到脚本的内容?
我们如何查看实际的错误消息?在我的情况下,我使用的是php-fpm。日志中没有关于此错误的信息。日志不会为此错误追加任何行。php-fpm 有详细模式吗?
/var/log/php-fpm/error.log
/var/log/php-fpm/www-error.log
我试图在php-fpm.conf文件中设置它
log_level = notice
和这个在php-fpm.d/www.conf文件中:
catch_workers_output = yes