ubuntu – Nginx:stat()失败(13:权限被拒绝)

前端之家收集整理的这篇文章主要介绍了ubuntu – Nginx:stat()失败(13:权限被拒绝)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用默认配置,而添加特定目录与Nginx安装在我的ubuntu 12.04机器上。
server {
        #listen   80; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6

        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name localhost;

        location / {
                # First attempt to serve request as file,then
                # as directory,then fall back to index.html
                root /username/test/static;
                try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/Nginx/naxsi.rules
        }
...

...
}

我只想要一个简单的静态Nginx服务器来提供该目录中的文件。但是,检查error.log我看到

2014/09/10 16:55:16 [crit] 10808#0: *2 stat() "/username/test/static/index.html" Failed (13: Permission denied),client:,server: localhost,request: "GET /favicon.ico HTTP/1.1",host: "domain"
2014/09/10 16:55:16 [error] 10808#0: *2 rewrite or internal redirection cycle while internally redirecting to "/index.html

我已经做了chown -R www-data:www-data on / username / test / static,我把它们设置为chmod 755.我不知道还有什么需要设置。

Nginx在目录中操作,所以如果你不能从Nginx用户cd到那个目录,那么它会失败(和你的日志中的stat命令一样)。确保www-user可以一直cd到/ username / test / static。您可以通过运行来确认统计信息将失败或成功
sudo -u www-data stat /username/test/static

在你的情况下,可能/ username目录是这里的问题。通常www-data没有cd到其他用户主目录的权限。

在这种情况下最好的解决方案是添加www-data到用户名组:

gpasswd -a www-data username

并确保用户名组可以输入路径中的所有目录:

chmod g+x /username && chmod g+x /username/test && chmod g+x /username/test/static

要使更改生效,请重新启动Nginx

Nginx -s reload

猜你在找的Ubuntu相关文章