apache - 在 Ubuntu 12.04 上的 Apache2 中配置 VirtualHost 的问题

标签 apache ubuntu apache2 virtualhost

在阅读了各种教程 [1] 之后,我仍然无法让我的 VirtualHost 设置按预期工作。我收到了 403 Forbidden当我尝试将 VirtualHost 与我的用户目录下的目录一起用作其 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.html (其中 test.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 重启时的警告。是否有必要,如果,我该如何正确使用它?

    任何帮助深表感谢!告诉我,如果您需要知道任何其他信息来定位问题。

    资源
  • 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, ...
  • Apache VirtualHost 403 Forbidden
  • Ubuntu, Apache, virtualhost and Access forbidden
  • VirtualHost configuration
  • 最佳答案

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

    chmod 701 /home/user
    

    使其可访问。此外,我递归地将组所有权授予 www-data对于[2]中推荐的虚拟主机的webroot,但我不确定这是否有必要。
    sudo chown -R user:www-data /home/user/Workspace/project/site
    sudo chmod -R g+s /home/user/Workspace/project/site
    

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

    关于提到的其他问题,除了其他资源之外,我在 [3] 的帮助下发现了以下内容:
  • 这不是必需的,并且可能会导致错误 NameVirtualHost *:80在虚拟主机描述中,如果它出现在 apache 的其他配置文件之一中。
  • 让 apache 知道它的完全限定域名是 localhost一个人创建一个文件/etc/apache2/conf.d/fqdn有内容ServerName localhost .


  • https://stackoverflow.com/a/7576526/948404
  • https://stackoverflow.com/a/9133067/948404
  • https://help.ubuntu.com/community/ApacheMySQLPHP
  • 关于apache - 在 Ubuntu 12.04 上的 Apache2 中配置 VirtualHost 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10571123/

    相关文章:

    java - Apache 希罗 : Using isAuthenticated() || isRemembered() for an app without high security requirements

    c++ - 如何从.cpp文件和makefile编译程序

    linux - Apache2 000-请求不会选择默认 VHost

    php - 带 Nodejs 的 Apache 上的 SSL

    php - 通过 PHP 进行动态 Apache 身份验证

    git - 无法更新 RVM - "fatal: Unable to find remote helper for ' http'”

    linux - 如何在 apache 2.4.6 上安装 apxs 模块

    django - 如何在ubuntu上为django restful服务配置apache2

    php - Linux Mint 18 PHP5.6 不工作

    ubuntu - 如何在 Ubuntu 上设置具有密码保护的 Elite HTTP Squid 代理?