如何从主机访问VM上的虚拟主机设置?

时间:2020-04-05 18:57:56

标签: apache virtualbox ubuntu-18.04 ubuntu-server

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

通过我在VirtualBox网络设置中分配的端口转发规则,主机(macOS)目前可以访问来宾(Ubuntu服务器)中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)的虚拟主机?

仍然不是我的情况特定的。希望在这方面有帮助。

1 个答案:

答案 0 :(得分:0)

apache2服务器中的

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

localhost:8000/dropn.taxi将在VM guest虚拟机中转换为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字段匹配,并且可以正常工作!

相关问题