Configurar virtual host en Laravel con apache

Author
Por Darío Rivera
Publicado el en Apache
Tags   Apache 2

Una de las primeras preguntas que surgen después de instalar Laravel es cómo se configura un virtual host si no se desea iniciar el server con el comando php artisan serve. Suponiendo que tienes instalado un servidor apache, una aplicación laravel en la ruta /var/www/html/your-domain.com y que tu dominio o subdominio es your-domain.com, debes realizar la siguiente configuración en el archivo httpd.conf / httpd-vhost.conf o en un archivo creado exclusivamente para el manejo de tu aplicación.


<VirtualHost *:80>
    ServerName   your-domain.com
    DocumentRoot "/var/www/html/your-domain.com/public/"
    ErrorLog     "/var/www/html/your-domain.com/error.log"
    CustomLog    "/var/www/html/your-domain.com/access.log" combined

    <Directory "/var/www/html/your-domain.com/public">
        Options +Indexes +FollowSymLinks
        DirectoryIndex index.php
        AllowOverride None
        Require all granted

        <IfModule mod_rewrite.c>
            <IfModule mod_negotiation.c>
                Options -MultiViews
            </IfModule>

            RewriteEngine On

            # Handle Front Controller...
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^ index.php [L]

            # Handle Authorization Header
            RewriteCond %{HTTP:Authorization} .
            RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
        </IfModule>
    </Directory>

</VirtualHost>

Como cualquier virtual host configurado en la máquina, no olvides agregar el dominio o subdominio al archivo hosts del sistema operativo. Recomiendo ampliamente realizar esta configuración en un archivo creado exclusivamente para el sitio en cuál podría ser your-domain.com.conf en el directorio /etc/apache2/sites-available. Una vez hecho desto, deberás crear un enlace simbólico en los sites-enabled de la siguiente manera

export SITES_AV=/etc/apache2/sites-available
export SITES_EN=/etc/apache2/sites-enabled
ln -s $SITES-AV/your-domain.com.conf $SITES_EN/

O bien, utilizar el comando de apache para levantar el sitio así

a2ensite your-domain.com

Finalmente, deberás reiniciar apache para que el nuevo virtual host quede funcional. Hasta pronto!.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.