3

我在使用 Debian 7 的笔记本电脑上遇到 403 禁止错误

文件权限为 775:chmod 775 -R /var/www

nginx错误日志显示:

2013/07/05 16:27:06 [错误] 7351#0: *12 目录索引“/var/www/install/”被禁止,客户端:127.0.0.1,服务器:localhost,请求:“GET /install /HTTP/1.1”,主机:“localhost”

phpinfo 工作正常

特此我的配置:

1、/etc/nginx/nginx.conf

用户 www 数据;

worker_processes 1;

pid /var/run/nginx.pid;

事件 {worker_connections 768; # multi_accept on; }

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*; }

2、/etc/nginx/sites-enabled/default

服务器{听80;## 监听 ipv4; 此行是默认和隐含的 #listen [::]:80 default_server ipv6only=on; ##监听ipv6

#root /usr/share/nginx/www;
root /var/www;
index index.html index.php;

# Make site accessible from http://localhost/
server_name localhost;
server_name_in_redirect off;

location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        # try_files $uri $uri/ /index.html;
        try_files $uri $uri/ /index.php?$args;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
}

location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        allow ::1;
        deny all;
}

# Rewrite for Fork CMS  

location ~ ^/(backend|install|api(/\d.\d)?(/client)?).*.php$ { # backend/install/api 是现有的目录,但都应该通过前面的 try_files $ uri $uri/ /index.php?$args; }

位置 ~ ^(.+.php)(.*)$ { 包括 fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php;}

# gzip  

gzip打开;
gzip_disable "MSIE [1-6].(?!.*SV1)"; # 为不支持它的浏览器禁用 gzip 压缩(在这种情况下,MS Internet Explorer 版本 6 SV1 之前)。gzip_http_version 1.1;gzip_vary on;# 这会设置响应头 Vary: Accept-Encoding。一些代理有一个错误,即它们向不支持它的浏览器提供压缩内容。通过设置 Vary: Accept-Encoding 标头,您可以指示代理存储内容的压缩和未压缩版本。gzip_comp_level 6;gzip_proxied 任何;gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js ; gzip_buffers 16 8k;

# client caching  location ~   \.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|woff|wri|xla|xls|xlsx|xlt|xlw|zip)$
{ expires 31d; add_header Pragma "public"; add_header Cache-Control
"public, must-revalidate, proxy-revalidate"; }

# End of Fork
4

2 回答 2

2

您的问题是http://localhost/install通过了第二条规则,try_files因此$uri/它尝试install作为文件夹访问,但您没有autoindex打开,因此它失败并出现禁止错误。

try_files $uri $uri/ /index.php?$args;

我建议删除该$uri/部分。

try_files $uri /index.php?$args;
于 2013-07-06T13:09:06.227 回答
0

我在 VPS 上的 nginx 上设置 WordPress,并且不断收到 403 禁止错误。权限设置正确,一切看起来都很好,但仍然得到 403。

出于某种原因,每个人都建议使用这一行:

try_files $uri $uri/ /index.php?$args;

当我按照上面 MAShady 的建议进行操作并删除了$uri/, 所以它在我的服务器块中看起来像这样:

try_files $uri /index.php?$args;

...令人惊讶的是,配置成功了!

真的很棒!

非常感谢!

于 2013-11-23T03:00:38.457 回答