¿Cómo publicar tu proyecto de Laravel en Inmotion?

Estoy por subir un proyecto que estoy trabajando a un servidor de Inmotion. Inmotion es un proveedor de alojamiento en el cual debo cargar los archivos de mi proyecto.

Lamentablemente cargar un proyecto ya no es tan sencillo como antes, el hecho de usar diferentes frameworks y librerías, desde mi punto de vista, ha complicado la manera en que publicamos los sitios porque ahora hay que usar composer y node.js para diferentes tareas.

Aquí te dejo los pasos que he seguido para publicar el proyecto.

Paso 1. Preparar

Luego de seguir todos los pasos en la sección de Deployment de Laravel cargué los archivos al servidor como normalmente lo haría con un WordPress, por ejemplo, pero eso no es suficiente cuando se trabaja con un framework.

💡 Tip 💡
Antes de empezar con los pasos de optimización recuerda actualizar tu archivo de configuración .env para que concuerde con tu entorno en producción.

Paso 2. .htaccess

Si entramos al enlace justo después de haber cargado los archivos del sitio, por ejemplo laviku.tech, encontraremos que se muestran todas las carpetas y archivos de la raíz.

Para poder ver la página correctamente debemos entrar a la carpeta public, entonces sería algo como https://laviku.tech/public/nombre-de-la-pagina y esto no se ve muy lindo y es por eso que hay que crear un archivo .htaccess que le indique a apache cuales archivos «servir».

Este es el código que me ha funcionado para que el sitio cargue sin tener que entrar la carpeta ‘public’:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTP:Authorization} ^(.+)$
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ ^$1 [N]
    
    RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
    RewriteRule ^(.*)$ public/$1
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ server.php
</IfModule>

https://stackoverflow.com/a/64914998/1860344

Paso 3. Sesiones

Hasta aquí todo bien. Pero hay un error relacionado a las sesiones (sessions):

Error al no encontrar el archivo de la sesión

Resulta que al momento de preparar los archivos se crea un archivo de configuración, sin embargo el valor apunta a una ubicación previa, es decir un archivo en local:

Configuración del caché apuntando a una ubicación local

Eliminar el archivo de configuración soluciona el problema. El archivo se encuentra en bootstrap/cache/config.php, puedes eliminarlo o renombrarlo.

https://stackoverflow.com/a/47712475/1860344

Paso 4. Finalizar

Por último realiza las pruebas necesarias para comprobar que el sitio funciona de manera correcta. En caso que realices cambios en tu sitio no es necesario que cargues todo nuevamente, solo actualiza los archivos que cambiaste y listo.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *