PowerRC's Blog

Posted by:
PowerRC

码农,吃货,偶尔飙车和摄影,应该属于危险人物。

606

nginx运行php报错Primary script unknown的解决办法

其实类似的解决方法的文章,网上有很多,但是我觉得总结得不够全面,所以这里单独总结一下。
总而言之,引起这种错误,是由于nginx无法获取到php运行脚本文件。

原因有以下可能:

1、权限不对。比如nginx的运行用户是www,但是文件的拥有用户是root然后不可执行。

2、nginx配置错误。php分段下,默认的配置是

1
fastcgi_param  SCRIPT_FILENAME  /scripts/$fastcgi_script_name;

需要改成

1
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

至此,应该99%的人都已经解决这个问题,但是如果你还是没搞掂,请看第三种可能
3、nginx的运行配置里没有设置$document_root。这个是需要在sever分段下设置。

1
2
set $root_path '/opt/php/doc';
root $root_path;

另外,提供一个调试类似错误的方法。
在nginx配置的http分段下加入这行

1
log_format scripts '$document_root$fastcgi_script_name > $request';

然后在server分段下加入

1
access_log /var/log/nginx/scripts.log scripts;

这样,所有运行的脚本信息都会被记录在/var/log/nginx/scripts.log 这个文件下,打开看看有没有什么不对劲,就知道你出错在哪儿了。

版权申明

若文中未注明,则本文由 PowerRC 原创,转载请注明出处。

分享

发表评论

*

code

back up ↑