Você não pode executar nenhum comando remoto em seu
artisan
local . Qualquer coisa que você executar lá funcionará apenas localmente (mesmo se você definir o ENV
variável). Configurando o
ENV
variável é apenas dizer ao aplicativo para se comportar como se estivesse em aquele ambiente. Mas não diz ao artesão para usar o ambiente de produção remoto. Se você deseja executar comandos em seu servidor de produção, sugiro que consulte Envoy . É um projeto completamente autônomo (e não precisa ser usado apenas com projetos Laravel) e é específico para implantação.
É basicamente um wrapper fino em torno de SSHing em seu servidor remoto e, em seguida, executando comandos. Um exemplo
Envoy.blade.php
arquivo em meus sites pode ser assim:@servers(['web' => '[email protected]'])
@task('deploy')
cd ~/src
php artisan down
git pull origin master
composer install --no-dev --no-progress --prefer-dist
php artisan migrate --force --no-interaction
php artisan optimize
php artisan up
@endtask
Esse SSH entra, coloca o aplicativo no modo de manutenção, extrai o novo código, faz as várias configurações de 'novo código', como instalação do compositor, migração etc. e, em seguida, retira o aplicativo do modo de manutenção.