在阅读了各种教程 [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-site
和 http://project-site/test.html
(其中 test.html
存在于 /home/user/Workspace/project/site/
中)在我的网络浏览器 怎么了
* 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-site
或 http://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, ...
最佳答案
我找到了以下解决方案,不满足我,但解决了我的主要问题。实际上,它与 [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 的其他配置文件之一中。 localhost
一个人创建一个文件/etc/apache2/conf.d/fqdn
有内容ServerName localhost
. 关于apache - 在 Ubuntu 12.04 上的 Apache2 中配置 VirtualHost 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10571123/