在Ubuntu 12.04上在Apache2中配置VirtualHost时出现问题

时间:2012-05-13 10:48:25

标签: apache ubuntu apache2 virtualhost

在阅读了各种教程[1]后,我仍然无法按照需要使我的VirtualHost设置正常工作。当我尝试将VirtualHost与我的用户目录下面的目录一起用作403 Forbidden时,我得到DocumentRoot

到目前为止我做了什么

  • 创建文件/etc/apache2/sites-available/workspace,内容如下:

    NameVirtualHost *:80
    <VirtualHost *:80>
        ServerName project-site
        DocumentRoot /home/user/Workspace/project/site
    </VirtualHost>
    
  • 编辑文件/etc/hosts现在正在产生:

    127.0.0.1   localhost
    127.0.1.1   my-machine
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    
    # VirtualHosts added by me
    127.0.0.1   project-site
    
  • 使用sudo a2ensite workspace

  • 启用虚拟主机
  • 使用sudo services apache2 restart
  • 重新启动Apache
  • 在我的网络浏览器中尝试打开http://project-sitehttp://project-site/test.htmltest.html中存在/home/user/Workspace/project/site/

会发生什么

  • 重新启动Apache我在命令行上收到以下消息:

    * Restarting web server apache2
    apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
    [Sun May 13 10:33:37 2012] [warn] NameVirtualHost *:80 has no VirtualHosts
    [ OK ]
    
  • 打开http://project-sitehttp://project-site/test.html一个“403 Forbidden”即可。

应该发生什么

当我浏览/home/user/Workspace/project/site时,我想要提供http://project-site的内容。

到目前为止我学到了什么

通过阅读本网站上的类似问题,我了解到这可能是一个许可问题[2]。 /home/user/Workspace/project/site可能无法读取www-data中的文件。但我怎么知道或纠正这个?

此外提到.htaccess个文件[3]位于

/home/.htaccess
/home/user/.htacces
[...]
/home/user/path/to/project/.htaccess

并且可能无法读取。我从来没有创造它们,我不想要它们,我需要它们吗?

另一个问题[4]的第二个答案让我使用NameVirtualHost负责重启Apache的警告。是否有必要以及如何正确使用它?

非常感谢任何帮助!告诉我,如果您需要了解其他任何内容以找到问题。


Ressources

  1. http://www.thegeekstuff.com/2011/07/apache-virtual-host/, http://httpd.apache.org/docs/2.2/vhosts/name-based.html, http://mintarticles.com/read/software-articles/multiple-virtual-hosts-in-xampplampp-in-ubuntu,977/, http://www.pgorecki.pl/content/virtual-host-na-localho%C5%9Bcie-apache-ubuntu, ...
  2. Apache VirtualHost 403 Forbidden
  3. Ubuntu, Apache, virtualhost and Access forbidden
  4. VirtualHost configuration

1 个答案:

答案 0 :(得分:1)

我找到了以下解决方案,不满足我,但解决了我的主要问题。实际上它是关于[1]中建议的权限。网络服务器无法访问我的/home/user目录。为了授予我使用的最小可能权限

chmod 701 /home/user

使其可访问。另外,我递归地将组{1}}的所有权归属于[2]中建议的虚拟主机的webroot,但我不确定,这是否是必要的。

www-data

我将在一个单独的问题中要求更优雅的解决方案。

关于提到的其他问题,除了其他资源外,我在[3]的帮助下发现了以下内容:

  • 如果虚拟主机描述中出现sudo chown -R user:www-data /home/user/Workspace/project/site sudo chmod -R g+s /home/user/Workspace/project/site ,则可能会导致错误,如果它出现在apache其他配置文件之一中。
  • 要让apache知道其NameVirtualHost *:80的完全限定域名,可以创建一个内容为localhost的文件/etc/apache2/conf.d/fqdn

  1. https://stackoverflow.com/a/7576526/948404
  2. https://stackoverflow.com/a/9133067/948404
  3. https://help.ubuntu.com/community/ApacheMySQLPHP