虚拟机中的 Apache2 虚拟主机,无法从主机访问

虚拟机中的 Apache2 虚拟主机,无法从主机访问

我在 VirtualBox(最新版)中安装了全新的 TurnKey LAMP VM(Ubuntu、Apache2、PHP 5.2,通常如此)。我配置了网络,使其192.168.1.111在桥接网络上具有 IP。然后我从主机登录到 Webmin http://192.168.1.111/--worked 正常。在 Webmin 中,我使用 设置了一个 Apache2 虚拟主机,ServerName foo.local并在配置的目录中设置了一个 PHP 应用程序。然后我将行添加127.0.1.1 foo.local/etc/hosts

现在回到我的主机--Windows 7--我编辑了我的C:/windows/system32/drivers/etc/hosts文件并添加了行192.168.1.111 foo.local。现在,从Windows我可以正常工作,当我从VM时,它可以完美地加载虚拟主机的主页,并且应用程序可以完美运行。ssh [email protected]lynx http://foo.local/

但是当我在 Windows 主机上打开浏览器并导航到时,http://foo.local/我得到了意想不到的结果:在 IE8 中(记录显示,这不是我选择的浏览器),当我点击时,http://foo.local/它会将我带到 VM 的 Webmin 主页,就像我http://192.168.1.111/在主机上访问一样。然而,在 Chrome 中,我只是被重定向到http://localhost/--ie Windows 的本地主机,它没有配置 Web 服务器,因此出现错误。

有人能帮我解决这个问题吗?我尝试了主机和虚拟机上我能想到的所有配置组合,但这让我很抓狂。提前谢谢了。

答案1

您是否尝试过重新启动 chrome 以确保它已获取修改后的 hosts 文件?

另一个选择是:

  • 转到扳手图标
  • 选项
  • 引擎盖下
  • 清除浏览数据
  • 关闭除清空缓存之外的所有复选框。
  • 点击清除浏览数据

答案2

确保NameVirtualHost *:80您的 Apache 配置文件中有它,我知道 CentOS/RHEL 默认将其注释掉。

答案3

我终于以某种方式解决了这个问题。就像我说的,我尝试了所有我能想到的配置,但最终它还是<VirtualHost foo.local:80>变成foo.local.conf<VirtualHost *:80>

我仍然不知道为什么 Chrome 会出现问题 - 可能是某种缓存问题 - 但它至少在主机上的一个浏览器中运行正常,所以我很高兴。

相关内容