当我访问 index.php 时,它工作正常。但在 localhost/pset7 上,它给出 403。
这是权限日志,
-rw-r--r--. 1 root root 51 Jul 31 14:21 index.html
-rw-r--r--. 1 root root 51 Jul 31 14:15 index.php
drwxrwxr-x. 5 my_user my_user 4096 Jul 31 15:13 pset7
我需要在网络服务器上运行它,所以请告诉我如何设置正确的权限并解决这个问题。
在 CentOS 上使用 LEMP。
如果您需要任何其他信息/日志,请直接询问。
Edit1,nginx 配置-http://pastebin.com/K3fcWgec
谢谢。
答案1
发生这种情况的原因是 nginx 默认不允许列出目录内容。
index
因此,如果 nginx 无法在目录中找到用该指令指定的文件,它将返回 403 错误代码。
如果您想允许目录列表,您可以autoindex
在配置块中使用指令:
location /pset7 {
autoindex on;
}
您还应该将root
和index
指令从location /
块移动到级别server
,以便您的配置看起来像这样:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.html index.htm index.php;
location /pset7 {
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
答案2
您看到此问题的原因是“pset7”未添加到 Nginx 配置中。您需要做的就是将以下内容添加到您的 Nginx 配置中
location /pset7 {
root /var/www/html; # Put this somewhere else, probably in the beginning of your config instead of here, if possible.
index index.html index.htm index.php;
}