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

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

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

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

现在我得到了

Forbidden

You don't have permission to access / on this server.

Apache/2.2.22 (Ubuntu) Server at localhost Port 80

答案1

www-data,Apache 运行的组/用户无权读取您的主目录。

您可以使用常规权限来更改这一点,正如 gertvdijk 在其答案中所解释的那样。

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

为此,您需要安装 acl:

sudo apt-get install acl

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

要向 apache 添加权限:

sudo setfacl -m d:g:www-data:X,g:www-data:X /home/me
sudo setfacl -m d: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 和子目录中的目录的命令。

注意:大写字母X只对目录起作用,而小写字母则x对文件和目录都起作用(这样 apache 用户只能更改目录,而不能执行文件)。

答案2

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目录。

相关内容