nginx访问不存在的php页面,“Primary script unknown”

/ 0评 / 0

最近看到nginx的error日志里总有这样的错误:

2016/07/15 17:17:42 [error] 27690#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 96.126.103.244, server: www.lvjindong.cn, request: "GET /heihei.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.lvjindong.cn"

原因是按照我先前的nginx配置,nginx总是将.php文件的访问一股脑交给php-fpm,当php-fpm访问不存在的例如这个heihei.php文件时候,就会返回404 file not found页面,并返回错误给nginx。

最好的解决方法,就是在 location ~ \.php$ {} 中添加一句 try_files $uri =404;

location ~ \.php$ {
root /www/hawu;
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

表示让nginx在处理.php文件时候,找到的文件就交给php-fpm处理,找不到的文件就直接返回404。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注