Nuestro proyecto a producción¶
Cuando estés listo para desplegar tu aplicación Laravel en producción, hay algunas cosas importantes que puedes hacer para asegurarte de que tu aplicación se ejecuta de la manera más eficiente posible. Ten en mente que no es un simple "copiar y pegar ficheros", si no que tienes que tener en cuenta una serie de configuraciones para su funcionamiento.
Requisitos del server¶
El framework Laravel tiene algunos requisitos de sistema. Debes asegurarte tiene un entorno idéntico al tuyo de desarrollo:
- PHP >= 8.3
- Ctype PHP Extension
- cURL PHP Extension
- DOM PHP Extension
- Fileinfo PHP Extension
- Filter PHP Extension
- Hash PHP Extension
- Mbstring PHP Extension
- OpenSSL PHP Extension
- PCRE PHP Extension
- PDO PHP Extension
- Session PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
Aunque parezcan muchas, todos son comunes en la mayoría de los proveedores de hosting.
Configuración del servidor: Nginx¶
Si estás desplegando su aplicación en un servidor que ejecuta Nginx, puedes utilizar el siguiente archivo de configuración como punto de partida para configurar tu servidor web. Lo más probable es que este archivo tenga que ser personalizado dependiendo de la configuración de tu servidor.
server {
listen 80;
listen [::]:80;
server_name example.com;
root /srv/example.com/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Optimización¶
Optimización del autoloader¶
Al desplegar en producción, asegúrate de que está optimizando el mapa de autocarga de clases de Composer para que Composer pueda encontrar rápidamente el archivo adecuado para cargar una clase determinada:
composer install --optimize-autoloader --no-dev
Info
Además de optimizar el autoloader, siempre debes asegurarte de incluir un archivo composer.lock
en el repositorio de control de código fuente de tu proyecto. Las dependencias de su proyecto se pueden instalar mucho más rápido cuando un archivo composer.lock
está presente.
Optimización de la carga de configuraciones¶
Cuando despliegues tu aplicación a producción, debes asegurarte de ejecutar el comando Artisan config:cache
durante tu proceso de despliegue:
php artisan config:cache
Info
Si ejecutas el comando config:cache
durante tu proceso de despliegue, debes asegurarte de que sólo estás llamando a la función env
desde dentro de tus ficheros de configuración. Una vez que la configuración se ha almacenado en caché, el archivo .env
no se cargará y todas las llamadas a la función env para variables .env
devolverán null.
Optimización de la carga de rutas¶
Si estás construyendo una aplicación grande con muchas rutas, debes asegurarte de que estás ejecutando el comando Artisan route:cache
durante tu proceso de despliegue:
php artisan route:cache
Optimización de la carga de vistas¶
Cuando despliegues tu aplicación a producción, debes asegurarte de ejecutar el comando Artisan view:cache
durante tu proceso de despliegue:
php artisan view:cache
Modo debug¶
La opción de depuración en su archivo de configuración config/app.php
determina cuánta información sobre un error se muestra realmente al usuario. Por defecto, esta opción está configurada para respetar el valor de la variable de entorno APP_DEBUG
, que se almacena en el archivo .env
de su aplicación.
En su entorno de producción, este valor debe ser siempre false
. Si la variable APP_DEBUG
se establece en true
en producción, corres el riesgo de exponer valores de configuración sensibles a los usuarios finales de tu aplicación.
Actividad¶
-
RE 912. (RA9 / CE9a CE9b CE9c CE9d CE9e CE9f CE9h / IC2 / 10p) Esta fase corresponde al bloque central del Reto 05, en la que se completa el desarrollo funcional de la aplicación web reactiva.
Durante esta fase deben tenerse en cuenta los siguientes aspectos:
- Desarrollar las vistas principales de la aplicación:
- Listado de publicaciones.
- Formulario de creación y edición.
- Implementar la autenticación de usuarios mediante Laravel Breeze, con protección de rutas.
- Configurar correctamente el uso de tokens de autenticación en las peticiones.
- Añadir manejo de errores: mostrar mensajes claros y coherentes para el usuario.
- Simular el despliegue del proyecto (como mínimo con servidor local documentado).
Esta fase representa el desarrollo completo de la lógica del cliente, así como la consolidación del flujo de trabajo con servicios REST, y debe culminar con una versión funcional y presentable del proyecto.