我在使用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
答案 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;
......令人惊讶的是,配置工作正常!
真是太棒了!
非常感谢!