更改 Nginx 根目录时给出 403

问题描述 投票:0回答:2

使用 Fedora 33,我尝试指示 nginx 从

/usr/share/nginx/html
以外的不同目录提供内容。

root /usr/share/nginx/html
更改为
root /home/william/Documents/testserve
会导致 HTTP 403。许多网站认为权限是一个问题,但在将文件夹及其内容的模式更改为 777 并将所有权更改为 nginx 后 - 我相当确定这不是问题。我还暂时禁用了 selinux,看看 selinux 政策是否是一个问题。

恢复默认配置并在

localhost.conf
中创建
/etc/nginx/conf.d
也被证明是无效的。我如何指示 nginx 提供来自不同目录的内容?

# /etc/nginx/nginx.conf
server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

# /etc/nginx/conf.d/localhost.conf
server {
        listen 80;
        server_name localhost;
        root /home/william/Documents/testserve;
        index index.php index.html;
}
nginx fedora
2个回答
2
投票

我也遇到了同样的问题,我花了10多个小时才解决。我不知道这是否是您在这种情况下问题的解决方案,但对于任何在 Fedora 上遇到 403 问题的人来说,有一种称为 SeLinux (安全强制执行)的东西,它可能会阻止访问文件,即使权限正确。

您可以通过以下方式检查其是否已启用:

getenforce
(强制=开启)

并使用以下命令打开和关闭它:

setenforce 0
(或 1,具体取决于您想要的)

如果它在 Selinux 关闭的情况下工作,您可以通过以下方式解决问题:

sudo chcon -R -t httpd_sys_content_t /var/www/website.com

希望对大家有帮助


0
投票

检查所有目录是否都是 root 用户,对我来说这就是工作!!

© www.soinside.com 2019 - 2024. All rights reserved.