[英]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.