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:

  1. Faça logon no Administrador.

  2. Clique em Lojas > Configurações > Configuração > Geral > Geral.

  3. 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.

    Alternar sites

  4. No painel direito, expanda Armazenar Informações.

  5. Se necessário, desmarque a caixa de seleção Usar padrão ao lado do campo Número VAT.

  6. Insira um número no campo (por exemplo, 12345).

  7. No campo Nome do Repositório, insira um valor (como My Store).

  8. Clique em Salvar configuração.

  9. Use a lista Exibição de Loja para selecionar a Configuração Padrão, conforme mostrado na figura a seguir.

    Alternar para a configuração padrão

  10. Na navegação à esquerda, em Geral, clique em Contatos.

  11. Desmarque a caixa de seleção Usar padrão ao lado do campo Enviar emails para.

  12. Insira um endereço de email no campo.

  13. Clique em Salvar configuração.

  14. No painel esquerdo, clique em Clientes > Configuração do Cliente.

  15. No painel direito, expanda Criar Novas Opções de Conta.

  16. Desmarque a caixa de seleção Usar valor do sistema ao lado do campo Domínio de email padrão.

  17. Insira um nome de domínio no campo.

  18. Clique em Salvar configuração.

  19. 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:

  1. Faça logon no sistema de desenvolvimento como ou alterne para o proprietário do sistema de arquivos.

  2. 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
    
  3. 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 ou pub/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.
  4. 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:

  1. Faça logon no sistema de compilação como proprietário do sistema de arquivos.

  2. Altere para o diretório raiz do aplicativo.

    code language-bash
    cd <Magento root dir>
    
  3. Puxe as alterações para app/etc/config.php do controle do código-fonte.

    code language-bash
    git pull mconfig m2.2_deploy
    
  4. Código de compilação.

    code language-bash
    bin/magento setup:di:compile
    
  5. 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
    
  6. 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:

Nome
Caminho de configuração
Nome da variável
Enviar Emails Para
contact/email/recipient_email
CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL
Domínio de email padrão
customer/create_account/email_domain
CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN
INFO
A tabela anterior tem um código de site de exemplo, 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:

  1. Faça logon no sistema de produção como proprietário do sistema de arquivos ou alterne para ele.

  2. Abra <Commerce root dir>/pub/index.php em um editor de texto.

  3. 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';
    
  4. Salve as alterações em pub/index.php e saia do editor de texto.

  5. 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:

  1. Faça logon no sistema de produção como proprietário do sistema de arquivos.

  2. 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.

  3. Interrompa todos os trabalhos em execução definindo de cron_run a false em app/etc/env.php da seguinte maneira:

    code language-php?start_inline=1
    'cron_consumers_runner' => [
            'cron_run' => false
        ]
    
  4. Atualize a configuração.

    code language-bash
    bin/magento app:config:import
    
  5. 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
    
  6. Extrair código do controle de origem.

    code language-bash
    git pull mconfig m2.2_deploy
    
  7. Atualize a configuração.

    code language-bash
    bin/magento app:config:import
    
  8. Limpe o cache.

    code language-bash
    bin/magento cache:clean
    
  9. 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:

  1. Faça logon no Administrador do sistema de produção.

  2. Clique em Lojas > Configurações > Configuração > Geral > Geral.

  3. 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.

    Verificar configurações no sistema de produção

    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.
  4. Se ainda não tiver feito isso, alterne para o Escopo de configuração padrão.

  5. 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.

    Verificar configurações no sistema de produção

  6. No painel esquerdo, clique em Clientes > Configuração do Cliente.

  7. 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.

    Verificar configurações no sistema de produção

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c