繁体   English   中英

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

[英]Problems configuring VirtualHost in Apache2 on Ubuntu 12.04

在阅读了各种教程[1]之后,我仍然无法使VirtualHost设置按需工作。 当我尝试使用VirtualHost并将其用户目录下的目录用作其DocumentRoot时,出现“ 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 sudo services apache2 restart
  • 尝试在我的网络浏览器中打开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”。

应该发生什么

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

到目前为止我学到了什么

通过阅读该站点上的类似问题,我了解到这可能是权限问题[2]。 www-data可能无法读取/home/user/Workspace/project/site 但是我怎么知道或纠正这个呢?

此外,提到.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
  3. 禁止Ubuntu,Apache,virtualhost和Access
  4. VirtualHost配置

我找到了以下解决方案,虽然不满意,但解决了我的主要问题。 确实,它与[1]中建议的权限有关。 Web服务器无法访问我的/home/user目录。 为了授予尽可能小的权限,我使用了

chmod 701 /home/user

使它易于访问。 另外,我按照[2]中的建议,将组所有权递归给了虚拟主机的webroot的www-data ,但是我不确定这是否必要。

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知道其完全限定的域名为localhost可以创建一个文件/etc/apache2/conf.d/fqdn ,其内容为ServerName localhost

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM