13. Crear Virtualhost

En este capítulo, aprenderás cómo crear un Virtualhost para tu proyecto de Laravel 10. Un Virtualhost es un método para asociar un nombre de dominio personalizado con tu proyecto de Laravel para que puedas acceder a él más fácilmente desde un navegador web. Te enseñaremos cómo crear y configurar un Virtualhost para tu proyecto de Laravel 10 en Apache.


10 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 1 año Destacado

    Para crear un dominio local en tu servidor, puedes agregar una entrada en tu archivo hosts. Este archivo se encuentra en la mayoría de los sistemas operativos en la ruta "/etc/hosts" en Linux y MacOS, y en "C:\Windows\System32\drivers\etc\hosts" en Windows.

    Para agregar una entrada en el archivo hosts, abre el archivo con un editor de texto y agrega una línea con el siguiente formato:

    127.0.0.1 nombre-de-dominio.local
    Reemplaza "nombre-de-dominio" con el nombre que desees utilizar para tu dominio local. Guarda los cambios en el archivo hosts.

    Ahora que tienes un dominio local configurado, puedes crear un Virtualhost en Apache para ese dominio. Para hacerlo, sigue los siguientes pasos:

    • Paso 1: Crear un archivo de configuración para el Virtualhost

    Primero, debes crear un archivo de configuración para el Virtualhost en la carpeta de configuración de Apache. En la mayoría de las distribuciones de Linux, esta carpeta se encuentra en "/etc/apache2/sites-available". En Windows, por lo general, se encuentra en "C:\xampp\apache\conf\extra".

    Puedes crear el archivo de configuración para el Virtualhost utilizando el editor de texto que prefieras. Por ejemplo, en Linux, puedes usar el comando "sudo nano /etc/apache2/sites-available/nombre-de-dominio.local.conf". En Windows, puedes abrir el archivo httpd-vhosts.conf ubicado en la carpeta "C:\xampp\apache\conf\extra".

    • Paso 2: Agrega la configuración para el Virtualhost

    Una vez que tengas abierto el archivo de configuración del Virtualhost, debes agregar la configuración necesaria. Asegúrate de incluir los siguientes elementos:

    El nombre del servidor, que debe ser el mismo que el nombre de dominio que has configurado en el archivo hosts.
    La ruta de la raíz del servidor, que es la ubicación en el sistema de los archivos que se servirán a través del Virtualhost.
    Opcionalmente, la configuración de los registros de acceso y de errores, así como otras opciones de configuración.
    Aquí te dejo un ejemplo de cómo se vería la configuración para un Virtualhost básico:

    <VirtualHost *:80>
       ServerName nombre-de-dominio.local
       DocumentRoot /var/www/nombre-de-dominio.local/public_html
    </VirtualHost>
    • Paso 3: Habilita el Virtualhost

    Una vez que hayas creado el archivo de configuración del Virtualhost, debes habilitarlo en Apache. Para hacerlo, sigue los siguientes pasos:

    En Linux:

    Crea un enlace simbólico en la carpeta de sitios habilitados con el siguiente comando: "sudo ln -s /etc/apache2/sites-available/nombre-de-dominio.local.conf /etc/apache2/sites-enabled/"
    Reinicia Apache con el siguiente comando: "sudo service apache2 restart"
    En Windows:

    Abre el archivo httpd.conf en la carpeta "C:\xampp\apache\conf" y descomenta la línea "#Include conf/extra/httpd-vhosts.conf"
    Guarda los cambios y cierra el archivo.
    Reinicia Apache desde el panel de control de XAMPP.
     

    • Paso 4: Prueba el Virtualhost

    Una vez que hayas habilitado el Virtualhost, abre tu navegador web y escribe la dirección "nombre-de-dominio.local" en la barra de direcciones. Si todo ha sido configurado correctamente, deberías ver el contenido que se encuentra en la carpeta que especificaste como DocumentRoot en la configuración del Virtualhost.

    Si no puedes ver el contenido, asegúrate de que hayas seguido todos los pasos correctamente. Revisa la configuración del Virtualhost y verifica que el nombre del servidor y la ruta de la raíz del servidor sean correctas.

    También puedes revisar los registros de acceso y de errores del servidor para encontrar más información acerca de cualquier problema que pueda haber ocurrido. En Linux, los registros se encuentran en "/var/log/apache2/access.log" y "/var/log/apache2/error.log". En Windows, se encuentran en "C:\xampp\apache\logs\access.log" y "C:\xampp\apache\logs\error.log".

    En resumen, la creación de un Virtualhost en Apache te permite alojar varios sitios web en un solo servidor. Al seguir los pasos descritos anteriormente, podrás configurar fácilmente un Virtualhost para un dominio local en tu servidor.
     

  • Jorge Rodríguez Comesaña

    Jorge Rodríguez Comesaña hace 7 meses

    Hola Víctor, como no encuentro un lugar para dejarte una consulta te la dejo en este capitulo por que justamente esta relacionada con la estructura de Laravel. Estoy desarrollando un proyecto que incluye el uso de HTTP client, para interactuar con otro servidor completamente.

    Consultar, crear, actualizar, borrar, ósea todo. Y mi gran duda es la siguiente, he creado una carpeta dentro de app/classes para guardar todas las clases de los datos a intercambiar entre los servidores. Hasta aquí todos bien, pero la duda me surge donde crear el controlador para crear los métodos de get, post, put y delete del HTTP Client. No se si crearlo dentro de app/http/controllers, o crear una carpeta en app/actions y crear aquí el controlador del HTTP Client. No se si he sido claro, ya que todavía no domino bien los términos técnicos. Desde gracias.

  • Jorge Luna

    Jorge Luna hace 7 meses

    Hola Victor! Oye ya tengo algunos proyectos terminados pero ahora quiero hacerlo publico, tengo mi dominio y hosting con el proveedor “Hostgator” que tengo que hacer en mi Cpanel o cual seria el método? 

    • Victor Arana Flores hace 7 meses

      Hola Jorge, no se si te sirva mi respuesta en este punto, estuve con una semana muy cargada por lo que no pude responder hasta hoy. Pero por si te interesa, cuenta con un curso dedicado al despliegue de Laravel

  • Martzdev

    Martzdev hace 11 meses

    Está solución son para aquellos Devs que estan trabajando con Apache Lounge y/o tienen la configuración a su medida, es decir, estan configurando manualmente su entorno de desarrollo, como es mi caso.

    Si estan trabajando con el servidor de Apache Lounge, para poder utilizar los host virtuales, ademas de seguir el paso a paso de Victor en el video, deben seguir con estos pasos:

    1. habilitar el modulo mod_rewrite: este modulo se encuentra en el fichero httpd.conf, LoadModule rewrite_module modules/mod_rewrite.so

    2. habilitar el override de directivas htaccess: en el mismod fichero httpd.conf en el apartado de DocumentRoot "${SRVROOT}/htdocs"

    <Directory "${SRVROOT}/htdocs">

    dentro del cuerpo de <Directory "${SRVROOT}/htdocs"> en AllowOverride cambian de None a All

    3. habilitar los host virtuales: por ultimo, en el mismo fichero httpd.conf en el apartado de Virtual hosts, habilitan el Include conf/extra/httpd-vhosts.conf. Deben descomentar quitando el numeral “#” para habilitar los virtual hosts

    Nota 1: la ruta del document root es diferente, no seria xampp como en el video sino Apache24 que es la carpeta por defecto al utilizar apache lounge, por ejemplo:

    DocumentRoot "${SRVROOT}/htdocs"
    ServerName localhost.test

    lo anterior, es lo mismo si colocamos la ruta absoluta en ves de ${SRVROOT}

    DocumentRoot "C:/Apache24/htdocs"
    ServerName localhost.test

    Nota 2: Si estan utilizando Microsoft Edge (como es mi caso), no va a funcionar ya que por defecto este navegador no permite la lectura o navegacion a los host virtuales o cualquier dominio local, para que funcione se debe habilitar Allow invalid certificates for resources loaded from localhost. en edge:flag (funciones experimentales). A veces funciona otras veces no y pos al final opté por utilizar Google Chrome y listo

    • Victor Arana Flores hace 11 meses

      Hola, gracias por el aporte.

  • Pablo Edwin Cruz Huaman

    Pablo Edwin Cruz Huaman hace 1 año

    me pareció muy largo, aquí es donde es mejor el Laragon

  • Esteban Castillo

    Esteban Castillo hace 1 año

    Hola soy nuevo en esta tecnología, tengo un inconveniente he seguido los pasos para la creación del virtualhost, pero al escribirlo en el navegador me aparece este mensaje:

    Not Found

    The requested URL was not found on this server.

    Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.2.4 Server at facturador.test Port 80

    Si alguno tiene un sugerencia o guía sería de mucha ayuda.

    • Victor Arana Flores hace 1 año

      Hola Naun podrías publicar capturas.

    • Esteban Castillo hace 1 año

      ya se pudo resolverlo, muchas gracias por responder.

    • Victor Arana Flores hace 1 año

      Genial, si puedes pon la solución para que si otra persona tiene el mismo problema lo pueda solucionar.

    • Esteban Castillo hace 1 año

      hola, hasta ahora me doy cuenta del mensaje:
      En este caso lo que hice fue abrir un bloc de nota modo administrador y buscar un documento llamado hosts mediante esta ruta C:\Windows\System32\drivers\etc\hosts y cuando estaba generando el nombre en el se me fue un espacio de más y lo arreglé y reinicié el xampp y fue problema solucionado.

  • Juan Avelino Martins

    Juan Avelino Martins hace 1 año

    Hola ,consulta  la parte de la creación de virtualhost con laragon no esta en el tutorial. Como seria.?

    • Victor Arana Flores hace 1 año

      Hola Juan. Laragon lo crea automaticamente :D

  • Jheyner David Ibagon

    Jheyner David Ibagon hace 1 año

    Hola, utilizo wsl con docker desktop y lando en linux con distro ubuntu! me facilita la tarea de instalacion de laravel y su configuracion, espero seguir con el curso con esta instlacion.

    • Victor Arana Flores hace 1 año

      Claro, no habría ningun problema :D

  • Victor Roman Ortiz Abreu

    Victor Roman Ortiz Abreu hace 2 años

    Estoy conciente que la plataforma comun es windows, mas los programadores tambien usa mac y linux estoy intentado seguir el curso desde una mac y la verdad de complica un poco

    • Victor Arana Flores hace 1 año

      Hola Victor. Trataré de crear una maquina virtual en mac para poder explicar la instalación en mac.

      Por el momento te paso este video, donde enseñan a como trabajar con Laravel Valet en Mac. Este es un entorno para mac muy facil de instalar.
       

      Solo la instalación es un poco diferente entre los diferentes sistemas operativos. Luego el uso de Laravel es exactamente igual, no importa el sistema operativo que uses.

  • Jefferson Santillán

    Jefferson Santillán hace 2 años

    Hola, no se completo la instalación con Laragon.