我有一台运行 VirtualBox(v4.122)的 Windows 7 主机和一台运行 Apache2 的 Kubuntu 12.04 客户虚拟机。
我可以从主机访问 Apache 服务器,但它只会加载默认的 Apache 欢迎页面并忽略我的所有虚拟主机。
有关配置的更多详细信息:
- Kubuntu VM 有多个虚拟主机,通过 VM 内部的 Web 浏览器访问时均能正常工作。
- 我正在使用 VirtualBox 中的端口转发将主机上的端口 8080 发送到客户机上的端口 80。
- Kubuntu 中的 /etc/hosts 和 C:\Windows\System32\drivers\etc\hosts 都具有本地域的条目,并设置为解析为 127.0.0.1
- 在 Kubuntu 机器上访问 'localhost' 将解析为默认 vhost (/var/www/) 中设置的目录,但访问 localhost:8080 服务器将打开该服务器的默认网页(即“它有效......”)
已更新以添加来自 apache2ctl -S 的输出:
VirtualHost configuration:127.0.1.1:80 is a NameVirtualHost
default server dghportal.local (/etc/apache2/sites-enabled/dghportal.local:1)
port 80 namevhost dghportal.local (/etc/apache2/sites-enabled/dghportal.local:1)
port 80 namevhost local.classtoolkit.org (/etc/apache2/sites-enabled /local.classtoolkit.org:1)
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server itechsrv-kuvm1 (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost itechsrv-kuvm1 (/etc/apache2/sites-enabled/000-default:1)
Syntax OK
答案1
看起来您的自定义<VirtualHost>
块配置为<VirtualHost 127.0.1.1:80>
- 这将永远不会捕获来自不同主机的请求。
来自其他设备的请求被定义的虚拟主机捕获/etc/apache2/sites-enabled/000-default:1
- 这就是导致欢迎页面出现的原因。
将您的 vhost 定义从 更改为<VirtualHost 127.0.1.1:80>
,<VirtualHost *:80>
一切就绪!您可能还需要a2dissite default
,以便您的网站(而不是欢迎网站)可以捕获与已配置的主机名不匹配的主机名的请求。