将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
表示目录。