Exemplo usando comandos CLI
Esse exemplo mostra como definir valores compartilhados, específicos do sistema e confidenciais no sistema de desenvolvimento e, em seguida, implantar esses valores no sistema de produção.
Isso é feito usando uma combinação de configurações compartilhadas, o arquivo config.php
e o comando da CLI do Commerce.
Este exemplo usa as seguintes definições de configuração:
-
Número Vat e Nome do Repositório para as definições de configuração compartilhadas.
Eles são encontrados em Lojas > Configurações > Configuração > Geral > Geral.
-
Enviar Emails para sobre o valor de configuração confidencial.
Isto é encontrado em Lojas > Configurações > Configuração > Geral > Contatos.
-
Domínio de email padrão para o valor de configuração específico do sistema.
Isso é encontrado em Lojas > Configurações > Configuração > Clientes > Configuração do Cliente > Criar Novas Opções de Conta.
Você pode usar o mesmo procedimento mostrado neste exemplo 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 dos campos Número VAT e Nome do Repositório.
-
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.
-
Na navegação à esquerda, em Geral, clique em Contatos.
-
No painel direito, expanda Opções de email.
-
Se necessário, 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.
-
Use a lista Exibição de Loja para selecionar a Configuração Padrão, conforme mostrado na figura a seguir.
-
No painel esquerdo, clique em Clientes > Configuração do Cliente.
-
No painel direito, expanda Criar Novas Opções de Conta.
-
Se necessário, 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 usando as seguintes etapas:
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
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 puxar essas alterações no sistema de compilação, compilar o código e gerar arquivos estáticos.
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ê seguir as instruções da Etapa 1, o escopo de Enviar Emails para será o site e o escopo de Domínio de Email Padrão será global (isto é, o escopo de Configuração Padrão).
Você precisa do código do site para definir o valor de configuração Enviar Emails para.
Para obter mais informações sobre como localizar este valor, consulte: Usar variáveis de ambiente para substituir as configurações.
-
Caminhos de configuração para as configurações usadas neste exemplo:
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
Para todos os caminhos de configuração sensíveis e específicos do sistema, consulte: Referência a caminhos de configuração sensíveis e específicos do sistema.
Defina as variáveis usando comandos CLI
Use os seguintes comandos da CLI para definir configurações específicas e confidenciais do sistema:
magento config:set
para configurações específicas do sistemamagento config:sensitive:set
para configurações confidenciais
Para definir a configuração específica do sistema Domínio de Email Padrão, que está no escopo padrão, use o seguinte comando:
bin/magento config:set customer/create_account/email_domain <email domain>
Você não precisa usar o escopo no comando porque ele é o escopo padrão.
No entanto, para definir valores para Enviar Emails para, você deve saber o tipo de escopo (website
) e o código do escopo, que provavelmente é diferente em cada site.
Exemplo:
bin/magento config:sensitive:set contact/email/recipient_email --scope=website --scope-code=<website code> <email address>
Atualizar as configurações compartilhadas
Esta seção discute como transferir todas as alterações feitas nos sistemas de desenvolvimento e criação para um ambiente de produção, que atualiza 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
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 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 a seguir.
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.