【问题标题】:Nginx stat() failed (13: Permission Denied)Nginx stat() 失败(13:权限被拒绝)
【发布时间】:2015-05-03 12:23:32
【问题描述】:

好的,以前有一些关于此的帖子,但没有解决方案可以解决我的问题。

我已经配置了网站,它只是直接的 HTML、CSS 和 JS,我正在尝试添加一个 wordpress 网站。我对 wordpress 网站的配置如下。

#######################

server {
listen 80;

root /usr/share/nginx/threadtheatre/wordpress;
index index.php;
server_name threadtheatre.co.uk;

access_log   /var/log/nginx/thread.access.log;
    error_log    /var/log/nginx/thread.error.log;

location / {

            # try_files $uri $uri/ =404;
            try_files $uri $uri/ /index.php?q=$uri&$args;
}
    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/html;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

}

这是我日志中的错误

"/usr/share/nginx/threadtheatre/wordpress/index.php" failed (13: Permission denied), client: 109.155.53.189, server: threadtheatre.co.uk, request: "GET / HTTP/1.1", host: "threadtheatre.co.uk"

nginx 使用 nginx 用户,同样用于 php-fpm。 nginx目录及其所有子目录具有以下权限。

drwxrwxr-x.  3 root nginx  4096 Feb  8 18:23 ..

如果我在网络上浏览 threadtheatre.co.uk,我会收到 404。

希望有人可以帮助解决这个问题。

李。

【问题讨论】:

  • 正在使用什么操作系统?

标签: php wordpress unix nginx


【解决方案1】:

你还有这个问题吗?这个解释对我有用: https://serverfault.com/a/170263/140684

基本上,nginx 需要对应用程序路径上的每个目录都具有执行权限。希望这会有所帮助。

【讨论】:

  • 这对我也有用。反直觉(我认为读取权限就足够了,但 nginx 需要 +x 用于目录)。
  • 那不是特定的 nginx,它是一个通用的 linux 东西(甚至对于 unix,不确定)。目录的权限与文件的权限有些不同。目录的x 位称为搜索位,需要能够进入目录并访问其中的文件和目录。您可以自己尝试创建一个目录,删除x 位(chmod a-x <dir>),然后尝试将cd 放入其中。
  • 这就是答案...nginx 需要对您的应用程序路径上的每个目录都具有执行权限...非常奇怪
【解决方案2】:

对我来说这是因为启用了 selinux,请检查

selinuxenabled && echo enabled || echo disabled

如果启用,请尝试禁用

nano /etc/sysconfig/selinux
SELINUX=disabled

然后

reboot

【讨论】:

    【解决方案3】:

    您是否使用 -R 授予权限?

    chown -R nginx /usr/share/nginx/threadtheatre/wordpress/
    chmod -R 644 /usr/share/nginx/threadtheatre/wordpress/
    

    【讨论】:

      【解决方案4】:

      如果 nginx 托管在 Fedora 或 RedHat 上,请更改 SELinux 政策并允许 nginx 从路径 /home/path/site

      chcon -R -t httpd_sys_content_t /home/path/site
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-03
        • 2014-11-04
        • 1970-01-01
        • 2021-04-02
        • 2022-01-23
        • 2017-07-23
        • 1970-01-01
        • 2012-06-17
        相关资源
        最近更新 更多