我想访问我在VirtualBox中设置的虚拟主机(网站)-
主机(macOS)目前可以通过我在VirtualBox网络设置中分配的端口转发规则访问来宾(Ubuntu-server)中apache2的默认网站:
127.0.0.1:8000 -
我已使用以下配置在来宾计算机中设置了虚拟主机:
<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本地虚拟主机url未找到
简而言之:如何从主机访问来宾机器(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/host
文件中。该行如下所示:127.0.0.1localhostdropn.taxi
当从主机访问时,我们在浏览器中使用dropn.taxi:8000
,而在来宾机器中不使用端口: 8000
。这样,每当访问虚拟主机时,访问它们的域名与ServerName
字段匹配,它就可以工作了!