Je kunt geen commando's op afstand uitvoeren op je lokale artisan
. Alles wat u daar uitvoert, werkt alleen lokaal (zelfs als u de ENV
. instelt variabele).
De ENV
instellen variabele is gewoon om de applicatie te vertellen dat het zich moet gedragen alsof het in is die omgeving. Maar vertelt ambachtslieden niet om de externe productieomgeving te gebruiken.
Als u opdrachten op uw productieserver wilt uitvoeren, raad ik u aan naar Envoy te kijken . Het is een volledig op zichzelf staand project (en hoeft niet alleen met Laravel-projecten te worden gebruikt) en is specifiek bedoeld voor implementatie.
Het is in feite een dunne wikkel rond SSHing naar uw externe server en voert vervolgens opdrachten uit. Een voorbeeld Envoy.blade.php
bestand op mijn sites kan er als volgt uitzien:
@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
Deze SSH wordt ingevoerd, zet de applicatie in de onderhoudsmodus, haalt de nieuwe code op, voert de verschillende 'nieuwe code'-instellingen uit, zoals de installatie van de componist, migreert, enz. en haalt de applicatie vervolgens uit de onderhoudsmodus.