Configurar virtual host en Laravel con apache

Author
By Darío Rivera
Posted on 2019-07-02 in 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 hostsdel 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 blog

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


Si te ha gustado este artículo puedes invitarme a tomar una taza de café

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

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