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:
-
Faça logon no Administrador.
-
Clique em Lojas > Configurações > Configuração > Geral > Geral.
-
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.
-
No painel direito, expanda Armazenar informações.
-
Se necessário, limpe a Usar padrão ao lado da caixa de seleção Número IVA campo.
-
Insira um número no campo (por exemplo,
12345
). -
No Nome do armazenamento insira um valor (como
My Store
). -
Clique em Salvar configuração.
-
Use o Exibição da loja para selecionar o Configuração padrão como mostra a figura a seguir.
-
Na navegação à esquerda, em Geral, clique em Contatos.
-
Limpe a Usar padrão ao lado da caixa de seleção Enviar Emails Para campo.
-
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.
-
Limpe a Usar valor do sistema ao lado da caixa de seleção Domínio de email padrão campo.
-
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 no
/var/www/html/magento2
, insira:code language-bash cd /var/www/html/magento2 php bin/magento app:config:dump
-
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/media
oupub/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. -
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:
-
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>
-
Transfira as alterações para
app/etc/config.php
do controle de origem.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á-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:
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. 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:
-
Faça logon no sistema de produção como proprietário do sistema de arquivos ou alterne para ele.
-
Abertura
<Commerce root dir>/pub/index.php
em um editor de texto. -
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';
-
Salvar 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
. -
Interromper todos os trabalhadores em execução configurando
cron_run
parafalse
inapp/etc/env.php
do seguinte modo:code language-php?start_inline=1 'cron_consumers_runner' => [ 'cron_run' => false ]
-
Atualize a configuração.
code language-bash bin/magento app:config:import
-
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
-
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 definições de configuração:
-
Faça logon no Administrador do sistema de produção.
-
Clique em Lojas > Configurações > Configuração > Geral > Geral.
-
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.
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. -
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.
A variável 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 de Domínio de email padrão é exibido da seguinte maneira: Esta é uma configuração específica do sistema.