
magento 2
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.
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.
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.
Chamar array_filter sem callback descarta 0, '0' e false junto com os vazios. Veja o callback certo, o ARRAY_FILTER_USE_BOTH e…
O upload do tema ou do vídeo morre com 413 e o php.ini não resolve? Quem corta é o nginx:…
O cliente pediu exclusão pela LGPD mas a nota fiscal precisa ficar guardada. A saída é anonimizar o pedido, não…
504 no nginx quando a API de IA demora? Quem desiste primeiro é o nginx, não o PHP. Enfileire o…
O site caiu com erro crítico depois de atualizar um plugin e o e-mail de recuperação não chegou? Force um…
O number_format não põe o R$ nem escreve o valor por extenso. Veja como usar NumberFormatter com CURRENCY e SPELLOUT…