将LAMP WWW目录更改为Dropbox,现在获得403 Forbidden

我想使用我的Dropbox / Web目录作为LAMP的服务器目录。 我cahnged /etc/apache2/sites-available/default

 DocumentRoot /home/me/Dropbox/Web #changed from /etc/www  Options FollowSymLinks AllowOverride None   #changed from /etc/www Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all  

现在我明白了

 Forbidden You don't have permission to access / on this server. Apache/2.2.22 (Ubuntu) Server at localhost Port 80 

www-data ,不允许在主目录中读取Apache运行的组/用户。

您可以使用常规权限来更改,如gertvdijk在其答案中所述。

我会考虑使用acl而不是常规权限,允许添加apache的权限,而不是替换主目录中的组或使目录可读。

为此,您需要安装acl:

 sudo apt-get install acl 

您可以使用man setfacl获取更多信息。

要为apache添加权限:

 sudo setfacl -md:g:www-data:X,g:www-data:X /home/me sudo setfacl -md:g:www-data:X,g:www-data:X /home/me/Dropbox sudo setfacl -Rm d:g:www-data:rX,g:www-data:rX /home/me/Dropbox/Web 

第一个和第二个命令将允许Apache(www-data)仅通过您家中的路径(不允许其他子目录)更改目录。 如果您使用默认配置但可能不需要它们,但如果您已经更改了权限(或将来会更改)以禁止other users在您的家中阅读,则需要它们。

第三个是允许Apache读取和更改Dropbox / web和子目录中的目录的命令。

Obs:大写X将仅对目录而不是小写x起作用,这些目录将作用于文件和目录(这样apache用户只能更改目录,而不能执行文件)。

Apache可能无法从您的Dropbox目录中读取。 在Ubuntu中,Apache配置为以用户www-data运行。 确保在文件系统上设置权限以允许Apache读取整个路径。

要测试这是否真的是您的问题,请尝试使用终端

 sudo su -l www-data -s /bin/bash 

然后逐步cd到您的Dropbox文件夹:

 cd /home cd me cd Dropbox cd Web 

修复权限,例如

  • 目录上的chmod o+rx和文件上的chmod o+r
  • 更改文件/目录chgrp www-data组,只允许www-data组读取/访问: chmod g+r表示文件, chmod g+rx表示目录。