我想访问我在VirtualBox中设置的虚拟主机(网站)-> Ubuntu-Server18。我安装了apache2,并且一切都已设置。
主机(macOS)目前可以通过我在VirtualBox网络设置中分配的端口转发规则来访问来宾(Ubuntu服务器)中apache2的默认网站:
127.0.0.1:8000 -> 10.0.2.15:80
我已经使用以下配置在来宾计算机中设置了虚拟主机:
<VirtualHost *:80>
ServerName dropn.taxi
ServerAdmin [email protected]
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)的虚拟主机?
仍不完全针对我的情况。希望在这方面有任何帮助。
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
字段匹配,并且可以正常工作!