Ubuntu 11.04上的Apache VirtualHost

我试图在全新安装的Ubuntu 11.04上为本地开发设置一个Apache虚拟主机。 这里是我的虚拟主机configuration里面/ sites-available:

<VirtualHost *:80> ServerName morpho.local ServerAlias www.morpho.local ServerAdmin webmaster@localhost DocumentRoot /home/james/projects/morpho # Log file CustomLog /var/log/apache2/morpho.local-access.log combined </VirtualHost> 

我已经在/ sites-enabled并重新启动Apache中添加了符号链接。 文档根目录包含一个虚拟的“Hello World”index.html,没有别的。 www-data用户是目录和index.html的所有者。

当我浏览到morpho.local时,我得到了一个403 Forbidden,并且这行被写入(两次)到Apache错误日志:

 (13)Permission denied: /home/james/projects/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable 

这对我来说似乎很奇怪,因为它正在从文档根目录中寻找一个.htaccess文件的一个目录。 为了看看会发生什么,我在那个目录中创build了一个.htaccess,并给了它777的权限,并将所有者和组设置为www-data。 日志中的相同错误。

我的猜测是我错过了一些我需要做的权限,但是它正在寻找一个.htaccess的目录。

再一次,这是一个新鲜的Ubuntu / Apache安装,除了这个单一的虚拟主机,我还没有configuration任何东西。


编辑:我通过设置我的开发文件夹,/ home / james / projects的x权限工作。 这使得www-data Apache用户可以在目录内看到。 我会从答案中尝试ghm1014的设置,因为这似乎是一个更好的解决scheme。 虽然它似乎仍然需要x权限才能使www-data遵循这个符号链接,所以我不知道它是否需要设置或不设置。

感谢您的答复,无论如何。

您必须授予权限才能访问configuration中的文档根目录。 把这样的东西放在VirtualHost条目里面。

 <Directory /> Order allow,deny Allow from all </Directory> 

主目录不是放置www-doc文件的好目录。 由于/ home /目录没有x权限(导航)给其他用户。 添加此权限意味着任何用户将能够看到您的个人信息。 我会推荐这个:

  • 在apache可以读取的地方创build一个目录:

    mkdir / var / www / html /

  • 然后创build一个符号链接到你的真实目录:

    ls -s / home / james / projects / morpho / var / www / html /

  • 更改DocumentRoot并添加跟随符号链接选项

    DocumentRoot / home / james / projects / morpho

    选项FollowSymLinks