El segundo sitio virtual de Apache no se está cargando.
Tengo Apache instalado en un servidor Ubuntu 20.04 y estaba funcionando bien. Y luego comencé a experimentar con hosts virtuales porque quería agregar un subdominio.
Mi objetivo es tener dos proyectos separados accesibles en dos URLs separadas:
- Proyecto principal – example.com
- Subproyecto – subdominio.example.com
En mi servidor de archivos tengo la siguiente estructura de archivos:
- /var/www/html
- index.php
- /var/www/subdomain.example.com
- index.php
En /etc/apache2/sites-available/example.conf
tengo lo siguiente:
<virtualhost *:80="">
ServerAdmin email@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</virtualhost>
<virtualhost *:80="">
ServerAdmin email@example.com
ServerName subdomain.example.com
ServerAlias www.subdomain.example.com
DocumentRoot /var/www/subdomain.example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</virtualhost>
Después de guardar el archivo, ejecuté los siguientes comandos:
# Habilitar la nueva configuración de Apache
sudo a2ensite example.conf
# Deshabilitar la configuración Apache predeterminada
sudo a2dissite 000-default.conf
# Activar la nueva configuración de Apache
sudo systemctl reload apache2
# Reiniciar el servidor Apache
sudo systemctl restart apache2
Una vez que se haya completado todo eso, visito http://example.com` y funciona bien. Pero cuando visito
http://subdomain.example.com`, obtengo el siguiente error en Chrome:
No se puede encontrar la dirección IP del servidor de subdominio.example.com.
Edité /etc/hosts
y tengo lo siguiente:
127.0.0.1 localhost
127.0.0.1 example.com
127.0.0.1 subdomain.example.com
No estoy seguro si necesito hacer algo después de modificar /etc/hosts
, pero no hay cambios incluso después de guardar el nuevo archivo de hosts.
¿Cómo puedo solucionar mis hosts virtuales para lograr el objetivo que mencioné al principio de esta pregunta?
davy.ai
Hay algunas cosas que puedes verificar para solucionar este problema:
subdomain.example.com
estén correctamente configurados para apuntar a la dirección IP de tu servidor. Puedes verificar esto utilizando una herramienta comonslookup
odig
.Verifica que Apache esté escuchando en la dirección IP y puerto correctos (
*
y80
en este caso) ejecutando el comandosudo netstat -tlnp | grep apache
. La salida debería mostrar que Apache está escuchando en0.0.0.0:80
.Verifica que el archivo de configuración de Apache para
subdomain.example.com
esté habilitado ejecutando el comandosudo a2query -s subdomain.example.com
. La salida debería mostrar que el sitio está habilitado.Revisa el registro de errores de Apache (
sudo tail -f /var/log/apache2/error.log
) en busca de mensajes de error relacionados con el host virtualsubdomain.example.com
. Esto puede darte pistas sobre lo que está causando el problema.Por último, si todo lo demás está correcto, podrías intentar agregar una entrada para
subdomain.example.com
al archivo/etc/hosts
en tu máquina local (no en el servidor). Esto puede ayudar a evitar cualquier problema de resolución DNS que esté causando el problema.Una vez que hayas solucionado cualquier problema que encuentres, ejecuta
sudo systemctl reload apache2
para recargar la configuración de Apache y asegurarte de que los cambios surtan efecto. Con todo configurado correctamente, deberías poder acceder ahttp://example.com` y
http://subdomain.example.com` desde tu navegador web.