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.
Magento 2 sem o acesso via SSH
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
- setup:upgrade
- cache:clean
- cache:flush
- cache:status
- cache:enable [cache_type]
- cache:disable [cache_type]
- setup:static-content:deploy
- indexer:reindex
- indexer:info
- indexer:status
- indexer:show-mode
- module:enable Namespace_Module
- module:disable Namespace_Module
- module:uninstall Namespace_Module
- deploy:mode:show
- deploy:mode:set developer
- deploy:mode:set production
- setup:di:compile
Utilizando a função system()
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.
Observações
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.