Configurações do Magento 2

Campo bloqueado no admin do Magento 2: config travada pelo env.php

Stores, Configuration, o campo que precisa mudar está bem ali — cinza, sem cursor, com um aviso de que o valor vem de um arquivo de configuração. Não é permissão do seu usuário nem cache velho: alguém gravou a chave dentro do array system do app/etc/env.php, e valor de arquivo sempre ganha do banco.

Descubra o caminho exato da chave

Cada campo do painel vira um caminho de três níveis, tipo web/unsecure/base_url. Confirme o valor e vasculhe os dois arquivos que podem estar travando:

bin/magento config:show web/unsecure/base_url
grep -n "base_url" app/etc/env.php app/etc/config.php

'system' => [
    'default' => [
        'web' => [
            'unsecure' => [
                'base_url' => 'https://loja.com.br/',
            ],
        ],
    ],
],

Duas coisas colocam valor ali. O bin/magento config:set --lock-env caminho/da/chave valor escreve no env.php de propósito, uma chave por vez. Já o bin/magento app:config:dump despeja a configuração inteira nos arquivos e trava dezenas de campos numa tacada só: o que é compartilhado vai pro app/etc/config.php e o sensível pro env.php. É o susto clássico depois que alguém roda o dump pra montar pipeline de deploy e some com metade do painel.

Devolvendo o campo pro painel

Não existe um config:unlock no Open Source. Você tira a chave do array na mão, deixando o resto do arquivo intacto — copie o env.php antes, porque uma vírgula fora do lugar derruba a loja inteira. Depois limpa o cache de configuração e regrava o valor no banco:

cp app/etc/env.php app/etc/env.php.bak
bin/magento cache:clean config
bin/magento config:set web/unsecure/base_url https://loja.com.br/
bin/magento config:show web/unsecure/base_url

Enquanto a chave continuar no arquivo, o config:set sem --lock-env se recusa a gravar e avisa que o valor já está bloqueado. Escopo também conta: o mesmo caminho pode estar preso no default e livre em website, então rode o config:show com --scope=websites --scope-code=base antes de concluir que resolveu. E quando a chave for base_url de produção ou credencial de pagamento, deixar travada em arquivo é proposital — aí versione o env.php do ambiente em vez de liberar o campo pra quem tem acesso ao painel.

Post Recentes

array_filter no PHP apaga o 0 junto: como filtrar só o que é vazio

Chamar array_filter sem callback descarta 0, '0' e false junto com os vazios. Veja o callback certo, o ARRAY_FILTER_USE_BOTH e…

1 dia atrás

413 Request Entity Too Large no WordPress: ajuste nginx e PHP-FPM juntos

O upload do tema ou do vídeo morre com 413 e o php.ini não resolve? Quem corta é o nginx:…

1 dia atrás

Apagar dados do cliente no WooCommerce sem perder o histórico do pedido

O cliente pediu exclusão pela LGPD mas a nota fiscal precisa ficar guardada. A saída é anonimizar o pedido, não…

2 dias atrás

Timeout do PHP-FPM na chamada de IA: tire do request e jogue no CLI

504 no nginx quando a API de IA demora? Quem desiste primeiro é o nginx, não o PHP. Enfileire o…

3 dias atrás

Erro crítico neste site: usar o modo de recuperação do WordPress 6.9

O site caiu com erro crítico depois de atualizar um plugin e o e-mail de recuperação não chegou? Force um…

3 dias atrás

NumberFormatter no PHP: R$ formatado e valor por extenso em pt-BR

O number_format não põe o R$ nem escreve o valor por extenso. Veja como usar NumberFormatter com CURRENCY e SPELLOUT…

4 dias atrás