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

Lee*_*ams 3 php unix wordpress nginx

好的,所以以前发过一些这个但没有解决方案可以解决我的问题.

我有网站配置,只是直接的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;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我日志中的错误

"/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"
Run Code Online (Sandbox Code Playgroud)

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

drwxrwxr-x.  3 root nginx  4096 Feb  8 18:23 ..
Run Code Online (Sandbox Code Playgroud)

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

希望有人能帮忙解决这个问题.

李.

Grz*_*orz 8

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

基本上nginx需要在应用程序路径上的每个目录上拥有执行权限.希望这可以帮助.

  • 这不是特定的nginx,它是一个通用的linux东西(甚至对于unix,不确定).目录的权限与文件的行为略有不同.目录的`x`位称为搜索位,需要能够进入目录并访问其中的文件和目录.您可以通过创建目录来尝试自己,删除`x`位(`chmod ax <dir>`)然后尝试`cd`进入它. (3认同)

uin*_*tea 6

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

selinuxenabled && echo enabled || echo disabled
Run Code Online (Sandbox Code Playgroud)

如果启用尝试禁用

nano /etc/sysconfig/selinux
SELINUX=disabled
Run Code Online (Sandbox Code Playgroud)

然后

reboot
Run Code Online (Sandbox Code Playgroud)