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.