我应该在Web根目录上设置哪些文件权限?

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

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

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

我通常在我的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; } 

我建议将你的webroot组更改为www-data ,nginx使用的用户以及php5-fpm。

例如:

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

其中my-user是您自己的帐户(这使您可以在没有sudo的情况下将文件放在webroot中)。