Administración de configuración de tienda
Las configuraciones predeterminadas para su tienda se almacenan en un config.xml
para el módulo correspondiente. Cuando cambia la configuración en el administrador de Commerce o en el comando bin/magento config:set
de CLI, los cambios se reflejan en la base de datos principal, específicamente en la tabla core_config_data
. Esta configuración sobrescribe las configuraciones predeterminadas almacenadas en el archivo config.xml
.
La configuración del almacén, que hace referencia a las configuraciones de la sección Administración Almacenes > Configuración > Configuración, se almacena en los archivos de configuración de implementación en función del tipo de configuración:
app/etc/config.php
: ajustes de configuración para tiendas, sitios web, módulos o extensiones, optimización de archivos estáticos y valores del sistema relacionados con la implementación de contenido estático. Consulte la referencia de config.php en la Guía de configuración.app/etc/env.php
: valores para invalidaciones específicas del sistema y configuración confidencial que deberían NO almacenarse en el control de código fuente. Consulte la referencia env.php en la Guía de configuración.
La administración de la configuración proporciona una forma de implementar configuraciones de tienda coherentes en todos los entornos con un tiempo de inactividad mínimo mediante la implementación de canalización. El proyecto de infraestructura de Adobe Commerce en la nube incluye el servidor de compilación, los scripts de compilación e implementación y los entornos de implementación diseñados teniendo en cuenta la estrategia de implementación de canalización.
Esquema de anulación de configuración
Todas las configuraciones del sistema se establecen durante las fases de generación e implementación según el siguiente esquema de invalidación:
- Si existe una variable de entorno, utilice la configuración personalizada e ignore la configuración predeterminada.
- Si no existe una variable de entorno, use la configuración de un par nombre-valor
MAGENTO_CLOUD_RELATIONSHIPS
en el archivo.magento.app.yaml
. Omitir la configuración predeterminada. - Si no existe una variable de entorno y
MAGENTO_CLOUD_RELATIONSHIPS
no contiene un par nombre-valor, quite toda la configuración personalizada y use los valores de la configuración predeterminada.
En resumen, las variables de entorno anulan todos los demás valores.
Si la misma configuración se configura en varios lugares, la aplicación depende de la siguiente jerarquía de configuración para determinar qué valor se aplicará al entorno
variables de entorno
.magento.app.yaml
variables
del archivo .magento.app.yaml
. Especifique valores aquí para garantizar una configuración coherente en todos los entornos. No especifique valores confidenciales en el archivo .magento.app.yaml
. Ver configuración de la aplicación.app/etc/env.php
app:config:dump
. Establezca los valores confidenciales y específicos del sistema utilizando variables de entorno o la CLI. Ver datos confidenciales. El archivo env.php
es no incluido en el control de código fuente.app/etc/config.php
app:config:dump
. Los valores de configuración compartidos se agregaron a config.php
. Establezca la configuración compartida desde el administrador o utilizando la CLI. El archivo config.php
se incluye en el control de código fuente.config.xml
config.xml
de un módulo. Si Adobe Commerce no encuentra ningún valor establecido por ninguno de los métodos anteriores, vuelve al valor predeterminado, si está establecido.Volcado de configuración
Puede usar el siguiente comando ece-tools
para generar un archivo config.php
que contenga todas las configuraciones de almacén actuales:
./vendor/bin/ece-tools config:dump
Los datos "descargados" en el archivo app/etc/config.php
se convierten en bloqueados, lo que significa que el campo correspondiente en el administrador de Commerce se convierte en de solo lectura. El archivo config.php
incluye únicamente la configuración que usted haya configurado. No bloquea los valores predeterminados. Bloquear solo los valores que actualice también garantiza que todas las extensiones utilizadas en los entornos de ensayo y producción no se rompan debido a configuraciones de solo lectura, especialmente Fastly.
ece-tools config:dump
no recupera configuraciones detalladas para módulos, como B2B. Si necesita un volcado de configuración completo, utilice el comando app:config:dump
, pero este comando bloquea los valores de configuración en un estado de solo lectura.Datos confidenciales
Cualquier configuración confidencial se exporta al archivo app/etc/env.php
cuando se usa el comando bin/magento app:config:dump
. Puede establecer valores confidenciales mediante el comando CLI: bin/magento config:sensitive:set
. Consulte Configuración confidencial y específica del entorno en la guía de Extensiones de Commerce PHP para obtener información sobre cómo designar las opciones de configuración como confidenciales o específicas del sistema.
Vea una lista de configuraciones confidenciales o específicas del sistema en la Guía de configuración.
Rendimiento de SCD
Según el tamaño del almacén, puede tener un gran número de archivos de contenido estático para implementar. Normalmente, el contenido estático se implementa durante la fase de implementación cuando la aplicación está en modo de mantenimiento. La configuración más óptima es generar contenido estático durante la fase de compilación. Consulte Elegir una estrategia de implementación.
Si ha habilitado la administración de la configuración después de volcar las configuraciones, debe mover las variables SCD_* de la fase de implementación a la fase de compilación para habilitar correctamente la generación de contenido estático durante la fase de compilación. Consulte Variables de entorno.
Antes de la administración de la configuración:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
SCD_STRATEGY: compact
SCD_MATRIX:
...
REDIS_USE_SLAVE_CONNECTION: 1
Después de habilitar la administración de configuración:
Mueva las variables SCD_* a la fase de compilación:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
REDIS_USE_SLAVE_CONNECTION: 1
build:
SCD_STRATEGY: compact
SCD_MATRIX:
...
Procedimiento para administrar la configuración
A continuación se ofrece una descripción general de alto nivel de este proceso:
Para configurar su tienda y generar un archivo de configuración:
-
Complete todas las configuraciones de sus tiendas en Admin para uno de los entornos:
- Starter: una rama de desarrollo activa
- Pro: rama activa en el entorno de integración
Estas configuraciones no incluyen los productos reales a menos que piense en descargar la base de datos de este entorno a los entornos de ensayo y producción. Normalmente, las bases de datos de desarrollo no incluyen todos los datos del almacén.
-
En la estación de trabajo local, cambie al directorio del proyecto.
-
Cree un volcado local de la base de datos remota.
code language-bash magento-cloud db:dump
-
Agregue, confirme y envíe cambios en el código para actualizar un entorno remoto.
code language-bash git add app/etc/config.php
code language-bash git commit -m "Add system-specific configuration"
code language-bash git push origin <branch-name>
Una vez completada la implementación, inicie sesión en el administrador del entorno actualizado para comprobar la configuración. Continúe combinando las configuraciones adicionales en los entornos de ensayo y producción, según sea necesario.
Actualizar configuraciones
Cuando modifique el entorno mediante el Administrador y ejecute de nuevo el comando, las nuevas configuraciones se anexarán al código del archivo config.php
.
config.php
en los entornos de ensayo y producción, no se recomienda. El archivo ayuda a mantener la coherencia de todas las configuraciones en todos los entornos. Nunca elimine el archivo config.php
para volver a crearlo. Al eliminar el archivo, se pueden quitar configuraciones y valores específicos necesarios para los procesos de generación e implementación.Restaurar archivos de configuración
Se crearon copias de los archivos originales app/etc/env.php
y app/etc/config.php
durante el proceso de implementación y se almacenaron en la misma carpeta. A continuación se muestra el BAK (archivos de copia de seguridad) y PHP (archivos originales) en la misma carpeta app/etc
:
...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...
Configuraciones anteriores usaron el archivo app/etc/config.local.php
. Ver Migrar configuraciones anteriores.
Para restaurar los archivos de configuración:
-
En la estación de trabajo local, utilice SSH para iniciar sesión en el proyecto y entorno remotos.
code language-bash magento-cloud ssh
-
Compruebe la ubicación y disponibilidad de los archivos de copia de seguridad.
code language-bash ./vendor/bin/ece-tools backup:list
Respuesta de ejemplo:
code language-none The list of backup files: app/etc/env.php app/etc/config.php
-
Restaurar archivos de copia de seguridad.
code language-bash ./vendor/bin/ece-tools backup:restore
Migración de configuraciones antiguas
Si actualiza a Adobe Commerce en la infraestructura en la nube 2.2 o posterior, puede que desee migrar la configuración del archivo config.local.php
al nuevo archivo config.php
. Si las opciones de configuración del administrador coinciden con el contenido del archivo, siga las instrucciones para generar y agregar el archivo config.php
.
Si difieren, puede anexar contenido del archivo config.local.php
al nuevo archivo config.php
:
-
Siga las instrucciones para generar el archivo
config.php
. -
Abra el archivo
config.php
y elimine la última línea. -
Abra el archivo
config.local.php
y copie el contenido. -
Pegue el contenido en el archivo
config.php
, guárdelo y complete su adición a Git. -
Implemente en todos sus entornos.
Solo puede completar esta migración una vez. Después de la migración, use el archivo config.php
.
Cambiar configuraciones regionales
Puede cambiar las configuraciones regionales de su tienda sin seguir un complejo proceso de importación y exportación de la configuración, si tiene SCD_ON_DEMAND habilitado. Puede actualizar las configuraciones regionales mediante el Administrador.
Puede agregar otra configuración regional al entorno de ensayo o producción habilitando SCD_ON_DEMAND
en una rama de integración, generar un archivo config.php
actualizado con la nueva información de configuración regional y copiar el archivo de configuración en el entorno de destino.
-
En el entorno de integración, habilite la variable
SCD_ON_DEMAND
mediante el archivo.magento.env.yaml
. -
Añada las configuraciones regionales necesarias con su administrador.
-
Use SSH para iniciar sesión en el entorno remoto y generar el archivo
/app/etc/config.php
que contiene todas las configuraciones regionales.code language-bash ssh <SSH-URL> "./vendor/bin/ece-tools config:dump"
-
Copie el nuevo archivo de configuración del entorno de integración remota al directorio de entorno local.
code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Agregue, confirme y envíe cambios en el código para actualizar un entorno remoto.