Quiero acceder a mis hosts virtuales (sitios web) que configuré en mi VirtualBox -> Ubuntu-Server 18. Tengo apache2 instalado y todo está configurado.
La máquina host (macOS) actualmente puede obtener acceso al sitio web predeterminado de apache2 en el invitado (servidor Ubuntu) a través de una regla de reenvío de puertos que asigné en la configuración de red de VirtualBox:
127.0.0.1:8000 -> 10.0.2.15:80
Configuré un host virtual en mi máquina invitada con la siguiente configuración:
<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> El directorio DocumentRoot mencionado anteriormente existe y tiene los archivos necesarios para servir una página de inicio básica de "Hello World". También lo probé con mi apache instalado en mi máquina local. El sitio web no es el problema.
Pero cada vez que accedo a localhost:8000 desde la máquina local, recibo una página de saludos de Ubnutu-Apache. Mientras que cuando pruebo localhost:8000/dropn.taxi , obtengo una página 404 . He investigado bastante y lo más cerca que puedo llegar a una solución es lo que se sugiere en esta página: URL de host virtual local de Ubuntu Apache2 no encontrada
En pocas palabras: ¿Cómo puedo acceder a los hosts virtuales de la máquina invitada (VM) desde la máquina host?
Todavía no es específico para mi caso. Agradecería cualquier ayuda en este sentido.
localhost en el servidor apache2 está configurado para apuntar a /var/www/html de forma predeterminada. Para que los hosts virtuales funcionen correctamente, el nombre de dominio que accede a ellos debe ser el definido en el campo ServerName .
localhost:8000/dropn.taxi se traduciría a 127.0.0.1/dropn.taxi en el invitado de VM. Lo que significa que está intentando acceder a /var/www/html/dropn.taxi , que, en última instancia, no existe, de ahí el error 404 .
La solución a esto es agregar dropn.taxi al /etc/hosts tanto en la máquina host como en la VM. La línea se vería así: 127.0.0.1 localhost dropn.taxi
Al acceder desde la máquina host, usamos dropn.taxi:8000 en el navegador, mientras que el puerto :8000 no se usa en la máquina invitada. De esta manera, cada vez que acceda a los hosts virtuales, el nombre de dominio que accede a ellos coincide con el campo ServerName y ¡simplemente funciona!