Saltar al contenido principal

Introducción

Todos los archivos de configuración del framework Laravel se encuentran en el directorio config/. Cada opción incluye un comentario, así que abre los archivos para ver las opciones disponibles. En los archivos de configuración se gestionan valores clave como la conexión a base de datos, el servidor de correo, la URL de la aplicación o la clave de cifrado.

Comando about

Con el comando Artisan about puedes ver un resumen de la configuración, drivers y entorno de la aplicación.
php artisan about
Para consultar solo una sección concreta, usa la opción --only.
php artisan about --only=environment
Para revisar en detalle los valores de un archivo de configuración concreto, el comando config:show resulta muy útil.
php artisan config:show database

Configuración por entorno (.env)

A menudo querrás cambiar valores de configuración según el entorno de ejecución. Por ejemplo, usar drivers de caché distintos en local y en producción. Para facilitarlo, Laravel usa la librería PHP DotEnv. En una instalación nueva, la raíz del proyecto incluye un archivo .env.example con las variables de entorno habituales, que se copia automáticamente a .env durante la instalación.
Si trabajas en equipo, es útil mantener actualizado .env.example e incluirlo en el repositorio. Poner valores placeholder deja claro qué variables necesita cada desarrollador.

Seguridad del archivo de entorno

No confirmes .env en el control de versiones. Cada desarrollador o servidor necesita configuraciones distintas, e incluirlo en el repositorio implicaría fugas de información sensible ante incidentes.
Aun así, Laravel incorpora una funcionalidad para cifrar archivos de entorno, permitiendo guardarlos de forma segura en el control de versiones cuando están cifrados.

Archivos de entorno adicionales

Al arrancar la aplicación, Laravel comprueba si están definidas la variable APP_ENV o la opción --env de la CLI. Si es así, carga el archivo .env.[APP_ENV] si existe. En caso contrario, se usa el .env por defecto.

Tipos de las variables de entorno

Todas las variables de .env se interpretan como cadenas, pero para que env() pueda devolver un rango más amplio de tipos existen estos valores especiales:
Valor en .envRetorno de env()
true(bool) true
(true)(bool) true
false(bool) false
(false)(bool) false
empty(string) ''
(empty)(string) ''
null(null) null
(null)(null) null
Para definir un valor con espacios, encierralo entre comillas dobles.
APP_NAME="My Application"

Obtener variables de entorno

Todas las variables de .env se cargan en la superglobal $_ENV de PHP al recibir la solicitud. Dentro de los archivos de configuración obtén los valores con la función env().
'debug' => (bool) env('APP_DEBUG', false),
El segundo argumento es el valor por defecto, que se devuelve si la variable de entorno no existe.

Consultar el entorno actual

El entorno actual se determina con la variable APP_ENV de .env. Se obtiene con el método environment de la fachada App.
use Illuminate\Support\Facades\App;

$environment = App::environment();
También puedes pasar argumentos para comprobar si estás en un entorno determinado.
if (App::environment('local')) {
    // Entorno local
}

if (App::environment(['local', 'staging'])) {
    // Local o staging
}

Cifrado del archivo de entorno

Los archivos de entorno sin cifrar no deben guardarse en el control de versiones, pero Laravel dispone de una función para cifrarlos.
php artisan env:encrypt
Al ejecutarlo, .env se cifra y su contenido cifrado se guarda en .env.encrypted. La clave de descifrado aparece en la salida del comando; guárdala en un gestor de contraseñas seguro. Para descifrarlo usa env:decrypt.
php artisan env:decrypt

Acceso a los valores de configuración

Puedes acceder a los valores de configuración desde cualquier parte de la aplicación con la fachada Config o la función global config(). Se usa la “notación de puntos” combinando el nombre del archivo y el de la opción.
use Illuminate\Support\Facades\Config;

$value = Config::get('app.timezone');

// También con la función global
$value = config('app.timezone');

// Con valor por defecto si no existe
$value = config('app.timezone', 'Asia/Tokyo');
Para modificar un valor en tiempo de ejecución, usa Config::set() o pasa un array a config().
Config::set('app.timezone', 'America/Chicago');

config(['app.timezone' => 'America/Chicago']);
También existen métodos tipados de obtención que lanzan una excepción si el tipo no coincide.
Config::string('config-key');
Config::integer('config-key');
Config::float('config-key');
Config::boolean('config-key');
Config::array('config-key');
Config::collection('config-key');

Caché de configuración

Para mejorar el rendimiento, cachea todos los archivos de configuración en uno solo.
php artisan config:cache
Este comando combina todas las opciones de configuración en un único archivo que el framework puede cargar rápidamente.
Ejecuta config:cache como parte del proceso de despliegue en producción. Durante el desarrollo local, cuando la configuración cambia con frecuencia, no se recomienda.
Una vez creada la caché, el archivo .env deja de leerse durante las solicitudes o los comandos Artisan. Por eso, env() devolverá solo variables de entorno del sistema.
Por esta razón, llama a env() únicamente desde los archivos de configuración del directorio config/. En cualquier otro lugar de la aplicación, usa config() para obtener los valores.
Para limpiar la caché, usa config:clear.
php artisan config:clear

Publicar archivos de configuración

Muchos de los archivos de configuración de Laravel ya están publicados en el directorio config/, pero algunos como cors.php o view.php no lo están por defecto. Para publicar archivos no publicados, usa el comando config:publish.
php artisan config:publish

php artisan config:publish --all

Modo debug

La opción debug de config/app.php determina cuánta información de error se muestra al usuario. Por defecto sigue el valor de la variable APP_DEBUG del archivo .env.
En producción, APP_DEBUG debe ser siempre false. Si lo dejas en true, hay riesgo de exponer valores de configuración sensibles al usuario final.
# Desarrollo local
APP_DEBUG=true

# Producción
APP_DEBUG=false

Modo mantenimiento

Cuando la aplicación está en modo mantenimiento, todas las solicitudes reciben una vista personalizada. Así puedes “desactivar” temporalmente la aplicación durante actualizaciones o tareas de mantenimiento.

Activar el modo mantenimiento

php artisan down
Con la opción --refresh, el navegador recargará automáticamente después del número de segundos indicado.
php artisan down --refresh=15
La opción --retry se usa como valor del encabezado HTTP Retry-After.
php artisan down --retry=60

Bypass del modo mantenimiento

Para permitir el acceso solo a ciertos usuarios mediante un token secreto, usa --secret.
php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"
Con --with-secret, Laravel genera el token automáticamente.
php artisan down --with-secret

Modo mantenimiento en múltiples servidores

Por defecto, Laravel gestiona el modo mantenimiento con archivos. En configuraciones de varios servidores, resulta útil el método basado en caché.
APP_MAINTENANCE_DRIVER=cache
APP_MAINTENANCE_STORE=database

Prerrenderizar la vista de mantenimiento

Al ejecutar php artisan down durante un despliegue, los usuarios que accedan mientras se actualizan las dependencias podrían ver un error. Para evitarlo, prerrenderiza la vista con --render.
php artisan down --render="errors::503"
También puedes redirigir todas las solicitudes a una URL durante el mantenimiento.
php artisan down --redirect=/

Desactivar el modo mantenimiento

php artisan up
La plantilla por defecto del modo mantenimiento puede personalizarse creando resources/views/errors/503.blade.php.
Si quieres eliminar por completo el tiempo de inactividad, considera plataformas totalmente gestionadas como Laravel Cloud.

Próximos pasos

Enrutamiento

Aprende los fundamentos del enrutamiento, que conecta las URLs con los controladores.
Última modificación el 13 de julio de 2026