张晨的个人博客

nginx报403 forbidden或Permission denied错误解决办法

张晨的个人博客2018-08-23综合技术 5054 0A+A-

 nginx的nginx.conf配置如下

user  www;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       80 ;
        server_name  127.0.0.1;
        root         /data/test;
        location / {
            index index.html index.htm;
        }       
    }
}

一个简单的配置,使用www账号运行nginx,项目放在/data/test中。

此时本机访问http://127.0.0.1 提示:403 forbidden

这一般是由三种情况导致的:

一、权限问题

    配置中的www账号无权访问/data/test/index.html文件,这个时候查看nginx的error.log日志(默认在nginx根目录/logs/error.log),可以看到以下报错信息:

"/data/test/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "127.0.0.1"

 初级解决办法为:

chmod -R 755 /data/test

  如果还是不行,那应该是www账号无权限访问/data或者/data/test目录所致的,建议使用www账号登录linux系统,然后去看下是否有权限访问/data/test目录包括/data目录,解决方案为:

把data目录的所有用户和所有组修改为www,这样就有权限访问了

chown -R www:www /data

或者把test项目上传到www的工作目录上如/home/www/中

注意进行chmod或chown后,需要重启nginx,方可生效

二、缺少索引文件

    即在/data/test/目录下缺少nginx配置的index.html或index.htm

三、关闭SELINUX

网上还有种说法是关闭SELINUX,如果上面两个情况都不存在的话,可以看看系统SELINUX是否是开启的,如果开启了关闭操作为:

vim /etc/selinux/config
#将SELINUX=enforcing改为SELINUX=disabled
#保存退出
reboot#重启系统



文章关键词
nginx
发表评论