我应该在 web root 上设置什么文件权限?

Jon*_*nas 62 nginx

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

当我访问默认站点时,http://localhost/我在页面上收到此消息403 Forbidden

我应该如何设置 www 根上的文件权限,以便我可以安全地访问网页?或者还有什么我必须改变的吗?

Pet*_*mit 71

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

例如:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory
Run Code Online (Sandbox Code Playgroud)

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

  • 新文件呢? (4认同)

Jac*_* M. 41

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

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

location / {
    index index.php;
}
Run Code Online (Sandbox Code Playgroud)

如果您想nginx为您生成该目录中的文件列表,只需打开目录索引,如下所示:

location  /  {
  autoindex  on;
}
Run Code Online (Sandbox Code Playgroud)