所以有很多文章提到这个错误代码:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream...
这可能意味着这个错误信息或多或less是无用的。
该消息告诉我们FastCGI处理程序不喜欢因为某种原因而发送的任何内容。 问题是有时我们不知道原因是什么。
所以我重申了这个问题 – 我们如何debugging这个错误代码?
考虑一下我们有一个非常简单的网站,只有phpinfo.php文件的情况。 另外,还有一个非常简单的nginxconfiguration,如下所示:
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的FMP?
/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
设置access.log条目:
access.log = /var/log/$pool.access.log
重新启动php-fpm服务。
尝试访问你的页面
cat /var/log/www.access.log,你会看到如下的访问日志:
- - 10/Nov/2016:19:02:11 +0000 "GET /app.php" 404 - - 10/Nov/2016:19:02:37 +0000 "GET /app.php" 404
如果你看到“GET /”没有一个正确的PHP文件名。 那么这是你的nginx conf问题。
如果您看到“GET /app.php”为404,意味着nginx正确传递了脚本文件名,但是php-fpm无法访问此文件(用户“php-fpm:php-fpm”无法访问您的文件,被困我3个小时)
希望我的回答有帮助。