我正在SSD系统驱动器(/ dev / sda5,ext4)的Nginx 1.14.0(Ubuntu 18.04,php-fpm 7.1.25)上运行Web服务器,并且一切正常。
然后,我尝试将Web服务器目录移动到计算机中的另一个HDD(/ dev / sdb1,ext4),以释放SSD上的一些空间。因此,我将/ var / www / html目录复制到/ media / myhdd / newhtml,并保留了原始目录的所有者和权限。全部复制成功。
当我尝试从新目录(/ media / myhdd / newhtml)打开Web服务器时,出现403 Forbidden(nginx错误日志:13:权限被拒绝)错误。
我检查了新目录的权限,并已重启nginx一百次。权限与我的/ var / www / html目录相同,并且递归设置为755。
chown -R myusername:www-data / media / myhdd / newhtml chmod -R 755 / media / myhdd / newhtml
我什至试图简化内容并输出目录列表。
这可以正常工作并输出目录列表,如预期的那样:
server {
listen 80;
listen [::]:80;
root /var/www/html;
autoindex on;
server_name localhost;
charset UTF-8;
}
这不起作用,并给出了FORBIDDEN 403错误:
server {
listen 80;
listen [::]:80;
root /media/myhdd/newhtml;
autoindex on;
server_name localhost;
charset UTF-8;
}
由于两个目录的权限都相同,所以我希望nginx会像/ var / www / html一样列出/ media / myhdd / newhtml中的目录。
请与您分享可能导致此意外结果的想法? 谢谢。
答案 0 :(得分:0)
我知道了。我更改了HDD 装载目录的组,在我的情况下为/ media / myhdd。它设置为 myusername 。然后我将其更改为 www-data ,并且可以正常工作! 有趣的是,我没有触摸文件内部。
因此,子目录可能以某种方式取决于父级的最高权限,并以某种方式继承它们。即使已经适当设置了对父级内部目标目录的权限。
希望它也可以帮助别人!
谢谢大家!