403给出当改变Nginx根目录



使用Fedora 33,我试图指示nginx从/usr/share/nginx/html以外的不同目录提供内容。

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

恢复默认配置并在/etc/nginx/conf.d中创建localhost.conf也被证明是无效的。我如何能够指示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;
}

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

你可以用:

检查它是否启用getenforce(enforcement = turn on)

并使用:

打开和关闭setenforce 0(或1取决于你想要的)

如果它可以在Selinux关闭时工作,您可以使用:

来解决这个问题:sudo chcon -R -t httpd_sys_content_t /var/www/website.com

希望对大家有所帮助

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

最新更新