Configurar virtual host en Laravel con apache
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!.