Exemplo usando variáveis de ambiente
Este exemplo mostra como definir valores compartilhados, específicos do sistema e confidenciais no sistema de desenvolvimento e, em seguida, definir todos os valores no sistema de produção usando uma combinação das variáveis de ambiente de configuração compartilhada, config.php
e PHP.
Essas configurações podem ser compartilhadas entre os sistemas de desenvolvimento e produção:
Número VAT e Nome do Repositório de Lojas > Configurações > Configuração > Geral > Geral
Essas configurações são específicas do sistema ou confidenciais, conforme indicado:
- Enviar Emails para (confidencial) de Lojas > Configurações > Configuração > Geral > Contatos
- Domínio de email padrão (específico do sistema) de Lojas > Configurações > Configuração > Clientes > Configuração do cliente > Criar novas opções de conta
Você pode usar o mesmo procedimento para definir qualquer configuração nas seguintes referências:
Antes de começar
Antes de começar, configure as permissões e a propriedade do sistema de arquivos conforme discutido em Pré-requisito para sistemas de desenvolvimento, compilação e produção.
Suposições
Este tópico fornece um exemplo de modificação da configuração do sistema de produção. Se desejar, você poderá escolher diferentes opções de configuração.
Para os fins deste exemplo, pressupomos o seguinte:
- Você usa o controle de origem do Git
- O sistema de desenvolvimento está disponível em um repositório remoto Git chamado
mconfig
- Sua ramificação de trabalho Git é chamada
m2.2_deploy
Etapa 1: definir a configuração no sistema de desenvolvimento
Para definir o local padrão e as unidades de peso no sistema de desenvolvimento:
-
Faça logon no Administrador.
-
Clique em Lojas > Configurações > Configuração > Geral > Geral.
-
Se você tiver mais de um site disponível, use a lista Exibição da Loja no canto superior esquerdo para alternar para um site diferente, como mostra a figura a seguir.
-
No painel direito, expanda Armazenar Informações.
-
Se necessário, desmarque a caixa de seleção Usar padrão ao lado do campo Número VAT.
-
Insira um número no campo (por exemplo,
12345
). -
No campo Nome do Repositório, insira um valor (como
My Store
). -
Clique em Salvar configuração.
-
Use a lista Exibição de Loja para selecionar a Configuração Padrão, conforme mostrado na figura a seguir.
-
Na navegação à esquerda, em Geral, clique em Contatos.
-
Desmarque a caixa de seleção Usar padrão ao lado do campo Enviar emails para.
-
Insira um endereço de email no campo.
-
Clique em Salvar configuração.
-
No painel esquerdo, clique em Clientes > Configuração do Cliente.
-
No painel direito, expanda Criar Novas Opções de Conta.
-
Desmarque a caixa de seleção Usar valor do sistema ao lado do campo Domínio de email padrão.
-
Insira um nome de domínio no campo.
-
Clique em Salvar configuração.
-
Se solicitado, limpe o cache.
Etapa 2: atualizar a configuração
Agora que você alterou a configuração no Admin, grave a configuração compartilhada em um arquivo, conforme discutido nesta seção.
Para atualizar a configuração:
-
Faça logon no sistema de desenvolvimento como ou alterne para o proprietário do sistema de arquivos.
-
Altere para a raiz do aplicativo e execute o comando dump.
code language-bash cd <Magento root dir> php bin/magento app:config:dump
Por exemplo, se o Commerce estiver instalado em
/var/www/html/magento2
, digite:code language-bash cd /var/www/html/magento2 php bin/magento app:config:dump
-
Confirme se
app/etc/config.php
foi atualizado.code language-bash git status
Exemplo de resposta:
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 não enviar alterações para os diretórios generated
,pub/media
oupub/static
para o controle do código-fonte. Você gera esses arquivos no sistema de build. O sistema de desenvolvimento deve ter código, temas e assim por diante que não estão prontos para uso no sistema de produção. -
Fazer check-in das alterações em
app/etc/config.php
somente no controle do código-fonte.code language-bash git add app/etc/config.php && git commit -m "Updated shared configuration" && git push mconfig m2.2_deploy
Observe que mesmo que app/etc/env.php
(a configuração específica do sistema) tenha sido atualizada, não faça o check-in dela no controle de origem. Você criará as mesmas configurações no sistema de produção posteriormente neste procedimento.
Etapa 3: atualizar o sistema de compilação e gerar arquivos
Agora que você confirmou as alterações na configuração compartilhada para o controle de origem, é possível obter essas alterações no sistema de compilação, compilar o código e gerar arquivos estáticos. A última etapa é transferir essas alterações para o sistema de produção.
Para atualizar o sistema de compilação:
-
Faça logon no sistema de compilação como proprietário do sistema de arquivos.
-
Altere para o diretório raiz do aplicativo.
code language-bash cd <Magento root dir>
-
Puxe as alterações para
app/etc/config.php
do controle do código-fonte.code language-bash git pull mconfig m2.2_deploy
-
Código de compilação.
code language-bash bin/magento setup:di:compile
-
Depois que o código tiver sido compilado, gere arquivos de visualização estáticos.
code language-bash bin/magento setup:static-content:deploy -f
-
Verifique as alterações no controle de origem.
code language-bash git add -A && git commit -m "Updated files on build system" && git push mconfig m2.2_deploy
Etapa 4: atualizar o sistema de produção
A última etapa do processo é atualizar o sistema de produção. Você deve fazer isso em duas partes:
- Atualizar as configurações confidenciais e específicas do sistema
- Atualizar as configurações compartilhadas
Atualizar as configurações confidenciais e específicas do sistema
Para definir as configurações confidenciais e específicas do sistema usando variáveis de ambiente, você deve saber o seguinte:
-
Escopo para cada configuração
Se você seguiu as instruções na Etapa 1, o escopo para Enviar emails para é global (ou seja, o escopo Configuração padrão) e o escopo para Domínio de email padrão é site.
Você deve saber o código do site para definir o valor de configuração do Domínio de email padrão. Consulte Usar variáveis de ambiente para substituir as definições de configuração para obter mais informações sobre como encontrá-las.
-
Caminho de configuração para cada configuração
Os caminhos de configuração usados neste exemplo seguem:
table 0-row-2 1-row-2 2-row-2 Nome da configuração Caminho de configuração Enviar Emails Para contact/email/recipient_email
Domínio de email padrão customer/create_account/email_domain
Você pode encontrar todos os caminhos de configuração sensíveis e específicos do sistema na Referência de caminhos de configuração sensíveis e específicos do sistema.
Converter caminhos de configuração em nomes de variáveis
Conforme discutido em Usar variáveis de ambiente para substituir as definições de configuração, o formato das variáveis é:
<SCOPE>__<SYSTEM__VARIABLE__NAME>
O valor de <SCOPE>
é CONFIG__DEFAULT__
para o escopo global ou CONFIG__WEBSITES__<WEBSITE CODE>
para o escopo de site.
Para encontrar o valor de <SYSTEM__VARIABLE__NAME>
, substitua cada /
caractere no caminho de configuração por dois sublinhados.
Os nomes das variáveis são os seguintes:
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 a definição de configuração Domínio de Email Padrão. Substitua BASE
pelo código de site apropriado para sua loja.Definir as variáveis usando variáveis de ambiente
Você pode definir os valores da variável no index.php
usando o seguinte formato:
$_ENV['VARIABLE'] = 'value';
Para definir valores de variáveis:
-
Faça logon no sistema de produção como proprietário do sistema de arquivos ou alterne para ele.
-
Abra
<Commerce root dir>/pub/index.php
em um editor de texto. -
Em qualquer lugar em
index.php
, defina valores para as variáveis semelhantes ao seguinte:code language-php $_ENV['CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL'] = 'myname@example.com'; $_ENV['CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN'] = 'magento.com';
-
Salve as alterações em
pub/index.php
e saia do editor de texto. -
Prossiga para a próxima seção.
Atualizar as configurações compartilhadas
Esta seção discute como obter todas as alterações feitas nos sistemas de desenvolvimento e criação, que atualizam as configurações compartilhadas (nome da loja e número IVA).
Para atualizar o sistema de produção:
-
Faça logon no sistema de produção como proprietário do sistema de arquivos.
-
Altere para a raiz do aplicativo e habilite o modo de manutenção.
code language-bash cd <Magento root dir>
code language-bash bin/magento maintenance:enable
Para obter opções adicionais, como a capacidade de definir uma lista de permissões de endereço IP, consulte
magento maintenance:enable
. -
Interrompa todos os trabalhos em execução definindo de
cron_run
afalse
emapp/etc/env.php
da seguinte maneira:code language-php?start_inline=1 'cron_consumers_runner' => [ 'cron_run' => false ]
-
Atualize a configuração.
code language-bash bin/magento app:config:import
-
Finalmente,
kill
qualquer processo de consumidor ativo.code language-bash kill <PID>
Onde
PID
é a ID do processo a ser eliminada, por exemplo:code language-bash kill 1234
-
Extrair código do controle de origem.
code language-bash git pull mconfig m2.2_deploy
-
Atualize a configuração.
code language-bash bin/magento app:config:import
-
Limpe o cache.
code language-bash bin/magento cache:clean
-
Encerrar modo de manutenção.
code language-bash bin/magento maintenance:disable
Verifique as configurações no Administrador
Esta seção discute como você pode verificar as configurações no Administrador do sistema de produção.
Para verificar as configurações:
-
Faça logon no Administrador do sistema de produção.
-
Clique em Lojas > Configurações > Configuração > Geral > Geral.
-
Use a lista Exibição de Loja no canto superior esquerdo para alternar para um site diferente.
As opções de configuração compartilhada definidas no sistema de desenvolvimento são exibidas de forma semelhante às seguintes.
note info INFO O campo Nome da Loja é editável no escopo do site, mas se você alternar para o escopo de Configuração Padrão, ele não será editável. Esse é o resultado de como você define as opções no sistema de desenvolvimento. O valor de Número de IVA não é editável no escopo do site. -
Se ainda não tiver feito isso, alterne para o Escopo de configuração padrão.
-
Na navegação à esquerda, em Geral, clique em Contatos.
O campo Enviar Emails para não é editável, como mostra a figura a seguir. Essa é uma configuração delicada.
-
No painel esquerdo, clique em Clientes > Configuração do Cliente.
-
No painel direito, expanda Criar Novas Opções de Conta.
O valor do campo Domínio de email padrão é exibido da seguinte maneira: Esta é uma configuração específica do sistema.