Ejemplo con variables de entorno
Este ejemplo muestra cómo establecer valores compartidos, específicos del sistema y confidenciales en el sistema de desarrollo y, a continuación, establecer todos los valores en el sistema de producción mediante una combinación de las variables de entorno shared configuration, config.php
y PHP.
Estos ajustes de configuración se pueden compartir entre los sistemas de desarrollo y producción:
Número de IVA y nombre de tienda de Tiendas > Configuración > Configuración > General > General
Estas opciones de configuración son específicas del sistema o confidenciales, como se indica a continuación:
- Enviar correos electrónicos a (confidencial) desde Tiendas > Configuración > Configuración > General > Contactos
- Dominio de correo electrónico predeterminado (específico del sistema) de Tiendas > Configuración > Configuración > Clientes > Configuración del cliente > Crear nuevas opciones de cuenta
Puede utilizar el mismo procedimiento para configurar cualquier configuración en las siguientes referencias:
Antes de empezar
Antes de empezar, configure los permisos y la propiedad del sistema de archivos como se describe en Requisito previo para los sistemas de desarrollo, compilación y producción.
Suposiciones
En este tema se proporciona un ejemplo de cómo modificar la configuración del sistema de producción. Si lo desea, puede elegir diferentes opciones de configuración.
Para los fines de este ejemplo, suponemos lo siguiente:
- Utilice el control de código fuente Git
- El sistema de desarrollo está disponible en un repositorio remoto Git denominado
mconfig
- Su rama de trabajo de Git se llama
m2.2_deploy
Paso 1: Establezca la configuración en el sistema de desarrollo
Para establecer la configuración regional y las unidades de peso predeterminadas en el sistema de desarrollo:
-
Inicie sesión en Admin.
-
Haga clic en Tiendas > Configuración > Configuración > General > General.
-
Si tiene más de un sitio web disponible, use la lista Vista de tienda en la esquina superior izquierda para cambiar a otro sitio web, como se muestra en la siguiente ilustración.
-
En el panel derecho, expanda Información de almacén.
-
Si es necesario, borre la casilla de verificación Usar predeterminado junto al campo Número de IVA.
-
Escriba un número en el campo (por ejemplo,
12345
). -
En el campo Nombre de tienda, escriba un valor (como
My Store
). -
Haga clic en Guardar configuración.
-
Use la lista Vista de tienda para seleccionar la configuración predeterminada, como se muestra en la siguiente ilustración.
-
En el panel de navegación izquierdo, debajo de General, haga clic en Contactos.
-
Desactive la casilla de verificación Usar predeterminado junto al campo Enviar correos electrónicos a.
-
Introduzca una dirección de correo electrónico en el campo.
-
Haga clic en Guardar configuración.
-
En el panel izquierdo, haga clic en Clientes > Configuración del cliente.
-
En el panel derecho, expanda Crear nuevas opciones de cuenta.
-
Desactive la casilla de verificación Usar valor del sistema junto al campo Dominio de correo electrónico predeterminado.
-
Introduzca un nombre de dominio en el campo.
-
Haga clic en Guardar configuración.
-
Si se le solicita, vacíe la caché.
Paso 2: Actualizar la configuración
Ahora que ha cambiado la configuración en el Administrador, escriba la configuración compartida en un archivo como se describe en esta sección.
Para actualizar la configuración:
-
Inicie sesión en el sistema de desarrollo como propietario del sistema de archivos o cambie a.
-
Cambie a la raíz de la aplicación y ejecute el comando dump.
code language-bash cd <Magento root dir> php bin/magento app:config:dump
Por ejemplo, si Commerce está instalado en
/var/www/html/magento2
, escriba:code language-bash cd /var/www/html/magento2 php bin/magento app:config:dump
-
Confirme que
app/etc/config.php
se ha actualizado.code language-bash git status
Respuesta de ejemplo:
code language-none On branch m2.2_deploy Changed but not updated: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: app/etc/config.php
note warning WARNING no envía cambios a los directorios generated
,pub/media
opub/static
al control de código fuente. Estos archivos se generan en el sistema de compilación. Es probable que el sistema de desarrollo tenga código, temas, etc., que no estén listos para usarlos en el sistema de producción. -
Proteja sus cambios en
app/etc/config.php
solo para el control de código fuente.code language-bash git add app/etc/config.php && git commit -m "Updated shared configuration" && git push mconfig m2.2_deploy
Tenga en cuenta que aunque app/etc/env.php
(la configuración específica del sistema) se actualizó, no la proteja en el control de código fuente. Creará las mismas opciones de configuración en el sistema de producción más adelante en este procedimiento.
Paso 3: Actualizar el sistema de compilación y generar archivos
Ahora que ha confirmado los cambios en la configuración compartida en el control de código fuente, puede extraer esos cambios en el sistema de generación, compilar código y generar archivos estáticos. El último paso es extraer esos cambios en el sistema de producción.
Para actualizar el sistema de compilación:
-
Inicie sesión en el sistema de generación como propietario del sistema de archivos.
-
Cambie al directorio raíz de la aplicación.
code language-bash cd <Magento root dir>
-
Extraer los cambios de
app/etc/config.php
del control de código fuente.code language-bash git pull mconfig m2.2_deploy
-
Compile el código.
code language-bash bin/magento setup:di:compile
-
Una vez compilado el código, genere archivos de vista estática.
code language-bash bin/magento setup:static-content:deploy -f
-
Comprobar los cambios en el control de código fuente.
code language-bash git add -A && git commit -m "Updated files on build system" && git push mconfig m2.2_deploy
Paso 4: Actualizar el sistema de producción
El último paso del proceso es actualizar el sistema de producción. Debe hacerlo en dos partes:
- Actualice la configuración confidencial y específica del sistema
- Actualizar la configuración compartida
Actualice la configuración confidencial y específica del sistema
Para establecer la configuración confidencial y específica del sistema mediante variables de entorno, debe saber lo siguiente:
-
Ámbito de cada configuración
Si ha seguido las instrucciones del paso 1, el ámbito de Envío de correos electrónicos a es global (es decir, el ámbito de Configuración predeterminada) y el ámbito de Dominio de correo electrónico predeterminado es sitio web.
Debe conocer el código del sitio web para establecer el valor de configuración Predeterminado del dominio de correo electrónico. Consulte Usar variables de entorno para anular las opciones de configuración para obtener más información sobre cómo encontrarlas.
-
Ruta de configuración para cada configuración
Las rutas de configuración utilizadas en este ejemplo son las siguientes:
table 0-row-2 1-row-2 2-row-2 Nombre de configuración Ruta de configuración Envío de correos electrónicos a contact/email/recipient_email
Dominio de correo electrónico predeterminado customer/create_account/email_domain
Puede encontrar todas las rutas de configuración confidenciales y específicas del sistema en Referencia de rutas de configuración confidenciales y específicas del sistema.
Convertir rutas de configuración en nombres de variables
Como se describe en Usar variables de entorno para anular las opciones de configuración, el formato de las variables es:
<SCOPE>__<SYSTEM__VARIABLE__NAME>
El valor de <SCOPE>
es CONFIG__DEFAULT__
para el ámbito global o CONFIG__WEBSITES__<WEBSITE CODE>
para el ámbito del sitio web.
Para encontrar el valor de <SYSTEM__VARIABLE__NAME>
, reemplace cada carácter /
en la ruta de configuración con dos guiones bajos.
Los nombres de las variables son:
contact/email/recipient_email
CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL
customer/create_account/email_domain
CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN
BASE
, para la configuración predeterminada del dominio de correo electrónico. Reemplace BASE
por el código de sitio web apropiado para su tienda.Configurar las variables mediante variables de entorno
Puede establecer los valores de las variables en index.php
con el siguiente formato:
$_ENV['VARIABLE'] = 'value';
Para establecer valores de variables:
-
Inicie sesión en el sistema de producción como propietario del sistema de archivos o cambie a.
-
Abra
<Commerce root dir>/pub/index.php
en un editor de texto. -
En cualquier lugar de
index.php
, establezca valores para las variables similares a los siguientes:code language-php $_ENV['CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL'] = 'myname@example.com'; $_ENV['CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN'] = 'magento.com';
-
Guarde los cambios en
pub/index.php
y salga del editor de texto. -
Continúe con la siguiente sección.
Actualizar la configuración compartida
En esta sección se explica cómo extraer todos los cambios realizados en los sistemas de desarrollo y compilación, lo que actualiza la configuración compartida (nombre del almacén y número de IVA).
Para actualizar el sistema de producción:
-
Inicie sesión en el sistema de producción como propietario del sistema de archivos.
-
Cambie a la raíz de la aplicación y habilite el modo de mantenimiento.
code language-bash cd <Magento root dir>
code language-bash bin/magento maintenance:enable
Para obtener opciones adicionales, como la posibilidad de establecer una lista blanca de direcciones IP, vea
magento maintenance:enable
. -
Detenga los trabajadores de cola en ejecución estableciendo
cron_run
enfalse
enapp/etc/env.php
de la siguiente manera:code language-php?start_inline=1 'cron_consumers_runner' => [ 'cron_run' => false ]
-
Actualice la configuración.
code language-bash bin/magento app:config:import
-
Finalmente,
kill
cualquier proceso de consumidor activo.code language-bash kill <PID>
Donde
PID
es el ID de proceso que se va a eliminar, por ejemplo:code language-bash kill 1234
-
Extraer código del control de código fuente.
code language-bash git pull mconfig m2.2_deploy
-
Actualice la configuración.
code language-bash bin/magento app:config:import
-
Limpie la caché.
code language-bash bin/magento cache:clean
-
Finalizar modo de mantenimiento.
code language-bash bin/magento maintenance:disable
Compruebe los ajustes de configuración en el Administrador
En esta sección se explica cómo puede comprobar los ajustes de configuración en el administrador del sistema de producción.
Para comprobar las opciones de configuración:
-
Inicie sesión en el administrador del sistema de producción.
-
Haga clic en Tiendas > Configuración > Configuración > General > General.
-
Use la lista Vista de tienda en la esquina superior izquierda para cambiar a otro sitio web.
Las opciones de configuración compartida establecidas en el sistema de desarrollo se muestran de forma similar a la siguiente.
note info INFO El campo Store Name se puede editar en el ámbito del sitio web, pero si cambia al ámbito de configuración predeterminado, no se puede editar. Este es el resultado de cómo se establecen las opciones en el sistema de desarrollo. El valor de Número de IVA no se puede editar en el ámbito del sitio web. -
Si aún no lo ha hecho, cambie al ámbito de configuración predeterminada.
-
En el panel de navegación izquierdo, debajo de General, haga clic en Contactos.
El campo Enviar correos electrónicos a no se puede editar, como se muestra en la siguiente ilustración. Esta es una configuración confidencial.
-
En el panel izquierdo, haga clic en Clientes > Configuración del cliente.
-
En el panel derecho, expanda Crear nuevas opciones de cuenta.
El valor del campo Dominio de correo electrónico predeterminado se muestra de la siguiente manera. Esta es una configuración específica del sistema.