nginx 403在Debian 7下被禁止

时间:2013-07-06 10:16:57

标签: nginx debian

我在使用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-data;

     

worker_processes 1;

     

pid /var/run/nginx.pid;

     

活动{       worker_connections 768;       #ulti_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是现有的dirs,但是都应该通过前面的try_files $ uri $ uri / /index.php?$args; }

     

location〜^(。+。php)(。*)$ {include fastcgi_params; fastcgi_pass   127.0.0.1:9000; fastcgi_index index.php; }

# gzip  
     

gzip on;
     gzip_disable“MSIE [1-6]。(?!。* SV1)”; #禁用不支持它的浏览器的gzip压缩(在本例中为MS   版本6 SV1之前的Internet Explorer)。 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

2 个答案:

答案 0 :(得分:1)

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

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

我建议删除$uri/部分。

try_files $uri /index.php?$args;

答案 1 :(得分:0)

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

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

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

当我按上面提到的MAShady建议时,删除了$uri/,所以它在我的服务器块中看起来像这样:

try_files $uri /index.php?$args;

......令人惊讶的是,配置工作正常!

真是太棒了!

非常感谢!