configuration了与我的用户目录中的文件夹的sym-linkconfiguration的Apache虚拟主机失败,出现403 Forbidden

我确信有人问过或回答过,但我的search没有帮助我太多,所以…

我在我的Linux机器上安装了Eclipse IDE(LM13),工作空间文件夹位于@ /home/user/projects/workspace

我有Apache的安装和设置,与各种虚拟主机,所有这些文件夹下的Web根/var/www/...下的某个地方/var/www/...

我遇到的问题是,我为Eclipse Workspace中的项目configuration的虚拟主机无法被Apache访问,因此给了我“403 – 禁止 – 您没有权限访问/ on这个服务器“。

首先,我尝试了一个“正常”的vhostconfiguration,然后尝试使用链接到Eclipse工作区中的项目文件夹的web-root @ /var/www/freelance/project下的SymLink

我已经尝试了FollowSymLinksSymLinksIfOwnerMatch<directory ...>部分下的选项指令,但我仍然无法在浏览器中使用Apache访问它!

任何人都可以向我解释我怎样才能使这个设置工作? 我还没有尝试使用mod_userdir ,或者在我的/home文件夹上设置文件权限,以允许访问Apache,因为这两者似乎都不是有利的。 有另一种方法吗?

这是我的虚拟主机configuration:

 # Apache VHOST config for IAGD <VirtualHost my.iagd:80> NameVirtualHost my.iagd:80 ServerAlias *.my.iagd # ServerAdmin username@domain DocumentRoot /var/www/freelance/iagd <Directory /var/www/freelance/iagd/> Options FollowSymLinks SymLinksIfOwnerMatch AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.1 </Directory> # Define custom log level LogLevel warn # Set up custom log files ErrorLog ${APACHE_LOG_DIR}/iagd/error.log CustomLog ${APACHE_LOG_DIR}/iagd/access.log combined </VirtualHost> 

更新

ls -alFd ~/Projects/workspace/iagd : –

  drwxr-xr-- 6 user www-data 4096 Aug 22 14:12 IAGD/ 

/home/user上的输出相同: –

  drwx------ 74 user user 20480 Aug 23 07:30 /home/user/ 

您需要为您的主目录的子目录添加一个Directory指令。 当Apache访问符号链接时,符号链接指向的实际目录将被访问,而不是符号链接指针。

所以,你需要两件事情:

首先,操作系统权限。 您的目录需要Apache用户可读,这意味着上面的层次结构中的所有目录都需要为Apache用户设置执行位。

其次,Apache的configuration。 Apache需要被告知可以从该目录读取。 通常情况下,你需要限制Apache只允许读取有限的目录层次结构 – 否则,任何Web用户都可能例如查看你的密码文件,或浏览每个人的主目录。 所以当你想访问webroot层次结构之外的目录时,你需要添加一个告诉Apache的指令来允许它。 它看起来像这样:

 # Apache VHOST config for IAGD <VirtualHost my.iagd:80> NameVirtualHost my.iagd:80 ServerAlias *.my.iagd # ServerAdmin username@domain DocumentRoot /var/www/freelance/iagd <Directory /var/www/freelance/iagd/> Options FollowSymLinks SymLinksIfOwnerMatch AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.1 </Directory> <Directory /home/user/projects/workspace> AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.1 </Directory> # Define custom log level LogLevel warn # Set up custom log files ErrorLog ${APACHE_LOG_DIR}/iagd/error.log CustomLog ${APACHE_LOG_DIR}/iagd/access.log combined </VirtualHost>