Dropbox为什么会在Ubuntu上导致apache2虚拟主机path的path+权限问题?

我正在试图在我的64位12.04 Ubuntu机器上创build一个开发环境,而且我正在最糟糕的时候让虚拟主机工作。 我终于明白了问题所在,但是我真的不明白。

我将我的虚拟主机的文档根目录设置在我的主目录中,即:

/家庭/罗伯特/ Dropbox的/ WWW / personville

当我在浏览器中访问www.personvillepress2.com时,我得到了

禁止您无权访问/在此服务器上。 Apache / 2.2.22(Ubuntu)服务器在www.personvillepress2.com端口80

在日志中,我明白了

[星期六六月十六日09:55:25] [暴击] [客户端127.0.0.1](13)权限被拒绝:/home/robert/Dropbox/.htaccess pcfg_openfile:无法检查htaccess文件,确保它是可读的

我将文档根目录移到/ home / robert / www / personville

相应地修改虚拟主机设置,重新加载,然后突然一切正常! 这是不好的,因为我想保留我的所有来源在我的Dropbox文件夹进行备份。

我的保pipe箱文件夹的权限似乎很正常:

robert@kundera-linux:~/Dropbox$ ls -al total 1036 drwx------ 29 robert robert 4096 Jun 15 09:11 . drwxr-xr-x 60 robert robert 4096 Jun 15 21:15 .. -rw-rw-r-- 1 robert robert 29 Jun 15 09:11 .dropbox drwxrwxr-x 2 robert robert 262144 Jun 13 05:22 .dropbox.cache drwxrwxr-x 5 robert robert 4096 Jun 9 00:00 www 

没有符号链接或exception严格的权限。 此外,我没有看到任何.htaccess问题,可能会给出任何问题(以及为什么apache2会关心文档根目录上的.htaccess权限问题?)

我非常感谢有关如何解决此问题的方法,让我可以将源文件保留在Dropbox中。

不工作的虚拟主机文件如下:

 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName personvillepress2.com ServerAlias www.personvillepress2.com # DocumentRoot /var/www DocumentRoot /home/robert/Dropbox/www/personville <Directory /home/robert/Dropbox/www/personville> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/personvillepress2error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 

更新:我看到其他人之前遇到过这个问题。 https://stackoverflow.com/questions/9460052/how-can-i-use-a-dropbox-directory-as-a-virtual-host-document-root-in-osx

我并不担心这里的安全 – 这是一个开发箱; 我主要担心从其他机器备份和访问。 我正在考虑使用git部署到一个活的网站,所以我想要的是我的本地数据备份的一种方式。 任何人都可以提出解决scheme 谢谢。

它看起来像一个简单的权限问题。 在Ubuntu上,Apache以用户www-datawww-data 。 从目录列表中可以看到,你的~/Dropbox目录(通过. )的权限是drwx------700 。 因此Apache作为www-data:www-data被拒绝访问。

 chmod 755 ~/Dropbox 

可能会解决眼前的问题。 一般来说,你需要在目录上提供o:rx权限,在文件上提供o:rx权限才能允许Apache访问这些文件。