Exemplo usando variáveis de ambiente

Esse 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 da configuração compartilhada, config.php, e variáveis de ambiente PHP.

Essas configurações podem ser compartilhadas entre os sistemas de desenvolvimento e produção:

Número IVA e Nome da Loja 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 de 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 o 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, limpe a Usar padrão ao lado da caixa de seleção Número IVA campo.

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

  7. No Nome do armazenamento insira um valor (como My Store).

  8. Clique em Salvar configuração.

  9. Use o Exibição da loja para selecionar o Configuração padrão como mostra a figura a seguir.

    Alternar para a configuração padrão

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

  11. Limpe a Usar padrão ao lado da caixa de seleção Enviar Emails Para campo.

  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. Limpe a Usar valor do sistema ao lado da caixa de seleção Domínio de email padrão campo.

  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 no /var/www/html/magento2, insira:

    code language-bash
    cd /var/www/html/magento2
    php bin/magento app:config:dump
    
  3. Confirme que app/etc/config.php foi atualizado.

    code language-bash
    git status
    

    Exemplo de resposta:

    code language-terminal
    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
    Fazer não enviar alterações para o generated, pub/mediaou pub/static diretórios para controle de origem. 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 para controle de origem.

    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) foi atualizada, não faça 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. Transfira as alterações para app/etc/config.php do controle de origem.

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

  • 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 confidenciais e específicos do sistema em 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 escopo global ou CONFIG__WEBSITES__<WEBSITE CODE> para escopo de site.

Para encontrar o valor de <SYSTEM__VARIABLE__NAME>, substitua cada / caractere no caminho de configuração com 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. Substituir BASE com o código de site apropriado para sua loja.

Definir as variáveis usando variáveis de ambiente

É possível definir os valores da variável nas 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. Abertura <Commerce root dir>/pub/index.php em um editor de texto.

  3. Em qualquer lugar no 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. Salvar 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. Interromper todos os trabalhadores em execução configurando cron_run para false in app/etc/env.php do seguinte modo:

    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. Por último, kill quaisquer processos ativos do consumidor.

    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 definições de configuração:

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

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

  3. Use o Exibição da 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
    A variável Nome do armazenamento O campo é editável no escopo do site, mas se você alternar para o escopo 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 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.

    A variável 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 de 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