我应该在 Web 根目录设置什么文件权限?

我应该在 Web 根目录设置什么文件权限?

我使用 Ubuntu Server 10.10,并安装了 Nginx 网络服务器apt-get install nginx。它在 处创建一个默认网页,/var/www/nginx-default/并且该目录具有权限drwxr-xr-x 2 root root

当我访问默认站点时,http://localhost/页面上会出现此消息403 Forbidden

我应该如何设置 www 根目录上的文件权限,以便可以安全地访问网页?还是我需要更改其他内容?

答案1

我建议将您的 webroot 的组更改为www-datanginx 和 php5-fpm 使用的用户。

例如:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory

其中 my-user 是您自己的帐户(这使您可以轻松地将文件放在您的 webroot 中,而无需 sudo)。

答案2

我通常坚持在我的 Web 根目录上使用755(或rwxr-xr-x),但我不认为这是您遇到的问题,因为您的目录已经设置为该目录。 nginx应该有权访问您的目录。然后问题就变成了您尝试访问的文件的权限(或存在性)。目录中的文件需要由nginx正在运行的用户读取。我通常将这些文件设置为755(与目录相同)。您可以通过执行 来更改整个目录sudo chmod -R 755 /var/www/nginx-default/

但是,如果目录中没有索引文件,您仍然会收到相同的错误。当您请求未启用目录列表的目录时,将使用索引文件。最常见的索引文件是index.html。但是,您可以在配置中编辑此默认值,使用以下命令:

location / {
    index index.php;
}

如果你想nginx为你生成该目录中的文件列表,只需打开目录索引,像这样:

location  /  {
  autoindex  on;
}

相关内容