Configuración del entorno
Grav tiene la capacidad de extender sus potentes capacidades de configuración para diferentes entornos, permitiendo soportar configuraciones distintas para escenarios de desarrollo, staging y producción.
Hasta Grav 1.6 los entornos se almacenaban en la carpeta user/
. Grav 1.7 mueve los entornos a user/env/
para facilitar su mantenimiento. Se recomienda encarecidamente que muevas todos los entornos a esta nueva ubicación en tus sitios existentes.
Configuración Automática de Entornos
Esto significa que puedes proporcionar tantos o tan pocos cambios de configuración por entorno como necesites. Un buen ejemplo de esto es la Barra de Depuración. Por defecto, la nueva Barra de Depuración está desactivada en el archivo principal system/config/system.yaml
, y también en el archivo de sobreescritura del usuario:
user/config/system.yaml
Si quisieras activarla, puedes hacerlo fácilmente en tu archivo user/config/system.yaml
, pero una mejor solución sería tenerla activada para tu entorno de desarrollo cuando se accede via localhost, pero desactivada en tu servidor de producción.
Esto puede lograrse fácilmente proporcionando una sobreescritura de esa configuración en el archivo:
user/env/localhost/config/system.yaml
donde localhost
es el nombre de host del entorno (esto es lo que introduces en tu navegador, ej. http://localhost/tu-sitio) y tu archivo de configuración contiene:
debugger:
enabled: true
De manera similar, puedes querer activar la canalización de recursos CSS, Link, JS y Módulos JS (combinación + minificación) solo para tu sitio de producción
([user/env/www.misitio.com/config/system.yaml
):
assets:
css_pipeline: true
js_pipeline: true
js_module_pipeline: true
Si tu servidor de producción fuera accesible via http://www.misitio.com
entonces podrías también proporcionar configuración específica para ese sitio de producción con un archivo ubicado en
user/env/www.misitio.com/config/system.yaml
.
Por supuesto, no estás limitado a cambios en system.yaml
, ¡puedes realmente proporcionar sobreescrituras para cualquier configuración de Grav en el site.yaml
o incluso en cualquier configuración de plugin!
Si estás usando el Planificador de Grav, ten en cuenta que usa el entorno localhost
y por lo tanto su configuración.
Sobreescrituras de Plugins
Para sobreescribir un archivo de configuración YAML de un plugin es simplemente el mismo proceso que sobreescribir un archivo regular. Si el archivo de configuración estándar está ubicado en:
user/config/plugins/email.yaml
Entonces puedes sobreescribirlo con una configuración que solo cambie las opciones específicas que quieres usar para pruebas locales:
[version=15,16]
user/localhost/config/plugins/email.yaml
[/version] [version=17]
user/env/localhost/config/plugins/email.yaml
[/version]
Con la configuración:
mailer:
engine: smtp
smtp:
server: smtp.mailtrap.io
port: 2525
encryption: none
user: '9a320798e65135'
password: 'a13e6e27bc7205'
Sobreescrituras de Temas
Puedes sobreescribir temas de manera similar:
user/config/themes/antimatter.yaml
Puede ser sobreescrito para cualquier entorno, digamos algún sitio de producción (http://www.misitio.com
):
user/env/www.misitio.com/config/themes/antimatter.yaml
Configuración de Entorno Basada en Servidor
A partir de Grav 1.7, es posible configurar el entorno usando la configuración del servidor. En este escenario, configuras variables de entorno desde el servidor o desde un script que se ejecute antes que Grav para seleccionar el entorno a usar.
La forma más simple de configurar el entorno es usando GRAV_ENVIRONMENT
. El valor de GRAV_ENVIRONMENT
debe ser un nombre de servidor válido con o sin dominio.
El siguiente ejemplo selecciona el entorno development para localhost:
<VirtualHost 127.0.0.1:80>
...
SetEnv GRAV_ENVIRONMENT development
</VirtualHost>
Rutas Personalizadas de Entorno
A partir de Grav 1.7, también puedes cambiar la ubicación de los entornos. Hay dos posibilidades: o configuras una ubicación común para todos los entornos o los defines uno por uno.
Ubicación personalizada para todos los entornos
Si por alguna razón no estás contento con la ubicación por defecto user/env
para tus entornos, puede cambiarse usando la variable de entorno GRAV_ENVIRONMENTS_PATH
.
El valor de GRAV_ENVIRONMENTS_PATH
debe ser una ruta existente bajo GRAV_ROOT
. No uses barra diagonal final.
En el siguiente ejemplo, todos los entornos estarán ubicados en user/sites/GRAV_ENVIRONMENT
, donde GRAV_ENVIRONMENT
es detectado automáticamente o configurado manualmente en la configuración del servidor:
<VirtualHost 127.0.0.1:80>
...
SetEnv GRAV_ENVIRONMENTS_PATH user://sites
</VirtualHost>
Ubicación personalizada para el entorno actual
A veces puede ser útil tener una ubicación personalizada para tu entorno.
El valor de GRAV_ENVIRONMENT_PATH
debe ser una ruta existente bajo GRAV_ROOT
. No uses barra diagonal final.
En el siguiente ejemplo, solo el entorno actual estará ubicado en user/development
:
<VirtualHost 127.0.0.1:80>
...
SetEnv GRAV_ENVIRONMENT_PATH user://development
</VirtualHost>
Nota que GRAV_ENVIRONMENT_PATH
es independiente de GRAV_ENVIRONMENT
, por lo que quizás también quieras configurar el nombre del entorno si no quieres que coincida automáticamente con el nombre de dominio actual.
Personalización Adicional
Los entornos pueden personalizarse mucho más allá de lo descrito en esta página.
Para más información, por favor continúa a la siguiente página: Configuración Multisitio.