尽管使用了 serverfault 的所有答案,Nginx 仍会抛出 403 Forbidden nginx/1.11.8 错误

尽管使用了 serverfault 的所有答案,Nginx 仍会抛出 403 Forbidden nginx/1.11.8 错误

我有CentOs 7.3Nginx 1.11.8PHP-FPM 7.0

这是一个全新安装,如果我将 nginx 目录的根目录从 更改为任何内容,每次都会出现上述错误页面/usr/share/nginx/html

这次我将其改为/var/www/html。

现在我收到了错误。

我已经给出了 html 目录chmod 775,但777无济于事。
我还做了chown -R nginx:nginx html/

这些都不起作用。但是,如果我禁用 SELinux,setenforce 0一切就都正常了。

由于这个问题,我不想完全禁用 selinux,但它让我抓狂。

使用 www-data 进行 chmoding 会出现此错误。

[simon@localhost www]$ chown -R www-data:www-data html
chown: invalid user: âwww-data:www-dataâ

我认为这很公平,因为我没有名为 www-data 的用户。Nginx 在 nginx 用户下运行。

tail /var/log/nginx/error.log给了我这个:

2017/01/07 22:37:03 [error] 3336#3336: *1 open() "/var/www/html/nginx.html" failed (13: Permission denied), client: 10.0.2.2, server: localhost, request: "GET /nginx.html HTTP/1.1", host: "localhost"
2017/01/07 22:37:06 [error] 3336#3336: *1 "/var/www/html/index.php" is forbidden (13: Permission denied), client: 10.0.2.2, server: localhost, request: "GET / HTTP/1.1", host: "localhost"

所以,这仍然是一个权限问题,可能与 SELinux VLC 有关。我不确定。

这是我的 ls -lZ 输出。

[simon@localhost html]$ ls -lZ
-rwxrwxrwx. root root system_u:object_r:vmblock_t:s0   index.php
-rwxrwxrwx. root root system_u:object_r:vmblock_t:s0   nginx.html

答案1

你究竟是怎么得到这些奇怪的 SELinux 上下文的?这些不是默认上下文。

无论如何,您应使用restorecon它将 SELinux 上下文改回默认值,适用于您的所有 Web 内容。例如:

restorecon -r -v /var/www/html

你还应该绝不chmod 777 任何内容,甚至不用于“测试”。

相关内容