【问题标题】:How to access Virtual Hosts setup on the VM from the Host Machine?如何从主机访问虚拟机上的虚拟主机设置?
【发布时间】:2020-07-17 17:55:14
【问题描述】:

我想访问我在 VirtualBox -> Ubuntu-Server 18 中设置的虚拟主机(网站)。我安装了 apache2,一切都已设置完毕。

主机 (macOS) 目前可以通过我在 VirtualBox 网络设置中分配的端口转发规则访问来宾 (Ubuntu-server) 中 apache2 的默认网站:

127.0.0.1:8000 -> 10.0.2.15:80

我已经在我的访客机器中设置了一个虚拟主机,配置如下:

<VirtualHost *:80>

    ServerName dropn.taxi
    ServerAdmin admin@dropn.taxi
    DocumentRoot /var/www/dropn.taxi/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

上面提到的DocumentRoot 目录已经存在,并且具有提供基本“Hello World”主页所需的文件。我也用安装在本地机器上的 apache 对其进行了测试。网站不是问题。

但是每次我从本地机器访问localhost:8000 时,都会看到一个 Ubnutu-Apache 问候页面。而当我尝试localhost:8000/dropn.taxi 时,我得到一个404 页面。我已经研究了很多,最接近解决方案的是此页面中的建议: Ubuntu Apache2 local virtual hosts url not found

简单地说:如何从主机访问来宾机器(VM)的虚拟主机?

仍然不是针对我的情况。非常感谢您在这方面的任何帮助。

【问题讨论】:

    标签: apache virtualbox ubuntu-18.04 ubuntu-server


    【解决方案1】:

    apache2 服务器中的localhost 默认设置为指向/var/www/html。为了使虚拟主机正常工作,访问它们的域名必须是ServerName 字段中定义的域名。

    localhost:8000/dropn.taxi 将在 VM 来宾中转换为 127.0.0.1/dropn.taxi。这意味着,它正在尝试访问最终不存在的/var/www/html/dropn.taxi,因此出现404 错误。

    解决方案是将dropn.taxi 添加到主机和VM 中的/etc/hosts 文件中。该行看起来像: 127.0.0.1 localhost dropn.taxi

    从主机访问时,我们在浏览器中使用dropn.taxi:8000,而在客户机中不使用端口:8000。这样,无论何时访问虚拟主机,访问它们的域名都与ServerName 字段匹配,它就可以正常工作!

    【讨论】:

      猜你喜欢
      • 2016-07-23
      • 2012-09-05
      • 2018-07-04
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      • 2013-03-15
      相关资源
      最近更新 更多