
Como executar comandos (ex: setup:static-content:deploy) no Magento 2 sem o acesso via SSH / Terminal.
Em hospedagem compartilhadas você poderá encontrar dificuldade para ter o acesso SSH (terminal) em mãos, dessa forma a execução de alguns comandos no Magento 2 será inviabilizada.
Primeiro, crie um arquivo “cmd.php” na raiz de seu servidor aonde está a instalação do Magento 2.
Adicione o seguinte conteúdo:
use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';
$bootstrap = Bootstrap::create(BP, $_SERVER);
$obj = $bootstrap->getObjectManager();
$state = $obj->get('Magento\Framework\App\State');
$state->setAreaCode('frontend');
$k[0]='bin/magento';
$k[1]='setup:static-content:deploy';
$_SERVER['argv']=$k;
try {
$handler = new \Magento\Framework\App\ErrorHandler();
set_error_handler([$handler, 'handler']);
$application = new Magento\Framework\Console\Cli('Magento CLI');
$application->run();
} catch (\Exception $e) {
while ($e) {
echo $e->getMessage();
echo $e->getTraceAsString();
echo "\n\n";
$e = $e->getPrevious();
}
} Altere: $k[1]=’setup:static-content:deploy’;
O content:deploy é o comando desejado, faça a substituição pelo comando que você deseja executar.
Observação: o código não irá retornar nenhuma mensagem caso a execução do comando seja feita com sucesso!
Lista de comandos úteis
system('php bin/magento cache:status'); Altere o cache:status para o comando que você desejar.
Essa opção dificilmente irá funcionar em hospedagem compartilhadas, pois a função system() vem desativada.
Essa não é uma pratica aconselhada.
(alternativa super lenta) Você também pode baixar a loja para o ambiente local, execute os comandos / modificações e faça o upload dos diretórios pub/* e var/* de volta para o servidor. Esta opção é válida apenas para alguns tipos de comandos, no geral você terá que subir tudo novamente, banco e arquivos.
Negar /.env no nginx parece resolvido até alguém pedir /wp-content/uploads/.env ou backup.sql. As regras que testei e os furos que…
O Search Console marca suas páginas 2, 3 e 4 como alternativas da página 1? Ajuste a tag canônica do…
Um módulo de terceiro plantou um banner no topo da loja e você não quer desinstalar nada: tire o bloco…
Importou o banco de produção e o site pula para o domínio antigo? Rode o UPDATE em core_config_data, limpe o…
Seu catch trata pedido inexistente e banco fora do ar do mesmo jeito. Veja como criar exceção customizada em PHP…
O form do admin salva mas abre em branco na edição: veja o getData() indexado pelo id da entidade e…