nginx的403 Forbidden解决的办法(权限文件和文件不存在)

nginx配置好了,出现403 Forbidden主要有两种原因:1、nginx没有访问目录的权限;2、nginx的目录里面没有默认文档,并且没有列出目录的权限。

启动了nginx,访问网站,然后出现

403 Forbidden

1、权限问题

这个就是权限的问题,要保证,nginx对配置的目录有权限。
首先,我们去查看一下,配置的目录,下文中{nginx}表示你的nginx安装路径:

vi {nginx}/conf/nginx.conf

然后找到这一段:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/xxx/website/nginxweb;
            index  index.html index.htm;
        }
     }

其中的root /home/xxx/website/nginxweb;中的/home/xxx/website/nginxweb就是你的目录,index是你的默认文档。

我们去看看这个目录你是什么权限,这个我就不说了。

然后我们看看我们的nginx是什么权限:

nobody   31222 31159  0 22:52 ?        00:00:00 nginx: worker process

可以看到是nobody用户运行的,所以,我们要修改成,拥有权限的用户,或者修改目录的权限,我说一下修改nginx运行的用户。

在{nginx}/conf/nginx.conf 前面加上一句:

user xxx;

就可以了,其中,xxx就是运行nginx的用户。

2、目录里面没有

完成了上面的,访问还出现错误,很有可能是你的目录里没有文件,然后又没有列出目录的权限。
检查你的/home/xxx/website/nginxweb文件夹里面是否有配置的默认文件,默认文件在nginx.conf里面的index,上面已经介绍过了。

解决办法,在你的/home/xxx/website/nginxweb文件夹里面创建一个index.html的文件试试。

发布了26 篇原创文章 · 获赞 43 · 访问量 10万+
展开阅读全文

权限被拒绝Nginx Docker

06-10

<div class="post-text" itemprop="text"> <p>I'm using docker compose to boot up a development workspace, consisting of php, nginx and mysql. Everything boots, static html get's served, but when trying to start a laravel app, i get the following error:</p> <blockquote> <p>The stream or file "/home/html/storage/logs/laravel-2019-06-10.log" could not be opened: failed to open stream: Permission denied</p> </blockquote> <p>I searched around and it looked like a permissions issue? Do note, that the docker with just the database and the build in php server does seem to work.</p> <p>My docker-compose.yml</p> <pre><code>version: "3" services: db: image: mysql command: --default-authentication-plugin=mysql_native_password restart: always environment: MYSQL_ROOT_PASSWORD: "root" ports: - 3306:3306 php-fpm: image: php:7.3-fpm-alpine links: - db volumes: - "./:/home/html/" nginx: image: nginx:1-alpine ports: - "8080:80" links: - php-fpm volumes: - "./site.conf:/etc/nginx/conf.d/default.conf" - "./:/home/html/" </code></pre> <p>My nginx config:</p> <pre><code>server { index index.php index.html; listen 80 default_server; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; root /home/html/public; location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php-fpm:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } } </code></pre> <p>Kind regards :)</p> </div> 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览