最近在Linux上搭建nginx环境成功,php-fpm,nginx启动后,访问html文件正常,访问php文件出现了file not fund。
原因如下:
1.配置错误:
关键部分的的配置如下所示。
location / {
root /data; #nginx的路径
index index.html index.htm index.php;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /data; # fasctcgi 寻找php的路径
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #指定路径
include fastcgi_params;
}
root指令放在location中,只针对当前location有用,对其他的location无用,所以,location / {}和location ~\.php{}的root都要改。
$document_root指的是location定义的root路径。
2.权限错误:
这个很容易忽略。
要看路径中的每个文件的其他用户属性是否有r,x权限,没有请执行 chmod 755 file