繁体   English   中英

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

[英]How to access Virtual Hosts setup on the VM from the Host Machine?

我想访问我在 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 本地虚拟主机 Z572D4E421E5E6B9BC11D815E8A027112

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

仍然不是针对我的情况。 将不胜感激在这方面的任何帮助。

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字段匹配,它就可以正常工作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM