我在Debian 7的笔记本电脑上遇到了一个403禁止的错误
文件权限是775:chmod 775 -R / var / www
nginx错误日志显示:
2013/07/05 16:27:06 [error] 7351#0:* 12禁止“/ var / www / install /”的目录索引,客户端:127.0.0.1,server:localhost,请求:“GET / install / HTTP / 1.1“,主机:”localhost“
phpinfo工作正常
在此我的configuration:
1,/etc/nginx/nginx.conf
用户www-data;
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
位置〜^ /(后台|安装| api(/ \ d。\ d)?(/ client)?)。*。php $ {#backend / install / api是现有的dirs,但是都应该通过前面的try_files $ uri $ uri / /index.php?args; }
位置〜^(。+。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压缩(在这种情况下,版本6 SV1之前的MS Internet Explorer)。 gzip_http_version 1.1; gzip_vary在; #设置响应头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
你的问题是, http://localhost/install
按照$uri/
的try_files
的第二条规则传递,所以它试图访问install
作为一个文件夹,但是你没有启用autoindex
,所以它会失败并带有禁止的错误。
try_files $uri $uri/ /index.php?$args;
我建议删除$uri/
part。
try_files $uri /index.php?$args;
我在一个VPS上设置了运行在nginx上的WordPress,并不断得到一个403禁止的错误。 权限都设置正确,一切看起来不错,但仍然保持403。
出于某种原因,每个人都建议使用这一行:
try_files $uri $uri/ /index.php?$args;
当我按照上面的MASHARD建议,并删除了$uri/
,所以在我的服务器块中看起来像这样:
try_files $uri /index.php?$args;
…令人惊讶的是,配置工作!
真的很棒!
非常感谢!