Ativar ou desativar modo de manutenção
O guia a seguir se refere a uma página de modo de manutenção padrão. Se você precisar usar uma página de manutenção personalizada, consulte o tópico Criar a página de manutenção personalizada.
O Adobe Commerce usa o modo de manutenção para desabilitar a inicialização. Desativar a inicialização é útil enquanto você mantém, atualiza ou reconfigura o site.
O aplicativo detecta o modo de manutenção da seguinte maneira:
- Se
var/.maintenance.flagexistir, o modo de manutenção está ativado, e o aplicativo retornará uma página de manutenção 503. - Se
var/.maintenance.ipexistir e o IP do cliente corresponder a uma das entradas de endereço IP nesse arquivo, a página de manutenção será ignorada para a solicitação.
Instalar o aplicativo
Antes de usar este comando para habilitar ou desabilitar o modo de manutenção, você deve instalar o aplicativo.
Ativar ou desativar modo de manutenção
Use o comando da CLI magento maintenance para habilitar ou desabilitar o modo de manutenção.
Uso do comando:
bin/magento maintenance:enable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:disable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:status
A opção --ip=<ip address> é um endereço IP para isentar do modo de manutenção (por exemplo, desenvolvedores fazendo a manutenção). Para isentar mais de um endereço IP no mesmo comando, use a opção várias vezes.
--ip=<ip address> com magento maintenance:disable salva a lista de IPs para uso posterior. Para limpar a lista de IPs isentos, use magento maintenance:enable --ip=none ou consulte Manter a lista de endereços IP isentos.O comando bin/magento maintenance:status exibe o status do modo de manutenção.
Por exemplo, para ativar o modo de manutenção sem isenções de endereço IP:
bin/magento maintenance:enable
Para habilitar o modo de manutenção para todos os clientes, exceto 192.0.2.10 e 192.0.2.11:
bin/magento maintenance:enable --ip=192.0.2.10 --ip=192.0.2.11
Depois de colocar a aplicação no modo de manutenção, você deve interromper todos os processos do consumidor da fila de mensagens.
Uma maneira de encontrar esses processos é executar o comando ps -ef | grep queue:consumers:start e depois executar o comando kill <process_id> para cada consumidor. Em um ambiente com vários nós, repita essa tarefa em cada nó.
Manter a lista de endereços IP isentos
Para manter a lista de endereços IP isentos, você pode usar a opção [--ip=<ip list>] nos comandos anteriores ou usar o seguinte:
bin/magento maintenance:allow-ips <ip address> .. <ip address> [--none]
A sintaxe <ip address> .. <ip address> é uma lista opcional delimitada por espaços de endereços IP para isentar.
A opção --none limpa a lista.
Configurações de várias lojas
Se quiser configurar vários armazenamentos, cada um com um layout diferente e conteúdo localizado, passe o parâmetro $_GET['skin'] para o processador pretendido.
No exemplo a seguir, estamos usando um arquivo de modelo de erro do tipo 503, que requer conteúdo localizado.
O construtor da classe Error_Processor aceita um parâmetro GET skin para alterar o layout:
if (isset($_GET['skin'])) {
$this->_setSkin($_GET['skin']);
}
Isso também pode ser adicionado a uma regra de regravação no arquivo .htaccess que anexa um parâmetro skin à URL.
Parâmetro $_GET['skin']
Para usar o parâmetro skin:
-
Verifique se o
.maintenance.flagexiste. -
Observe o endereço do host, que se refere ao
HTTP_HOST, ou qualquer outra variável, como as variáveis ENV. -
Verifique se o parâmetro
skinexiste. -
Defina o parâmetro usando as regras de regravação abaixo.
Estes são alguns exemplos de regras de regravação:
- RewriteCond
%{DOCUMENT_ROOT}/var/.maintenance.flag -f - RewriteCond
%{HTTP_HOST} ^sub.example.com$ - RewriteCond
%{QUERY_STRING} !(^|&)skin=sub(&|$)[NC] - RewriteRule
^ %{REQUEST_URI}?skin=sub[L]
- RewriteCond
-
Copie os seguintes arquivos:
pub/errors/default/503.phtmlapub/errors/sub/503.phtmlpub/errors/default/css/styles.cssapub/errors/sub/styles.css
-
Edite esses arquivos para fornecer conteúdo localizado no arquivo
503.phtmle estilo personalizado no arquivostyles.css.Verifique se os caminhos apontam para o diretório
errors. O nome do diretório deve corresponder ao parâmetro de URL indicado emRewriteRule. No exemplo anterior, o diretóriosubé usado, que é especificado como um parâmetro emRewriteRule(skin=sub)