Du kan ikke køre nogen fjernkommandoer på din lokale artisan
. Alt, hvad du kører der, vil kun fungere lokalt (selvom du indstiller ENV
). variabel).
Indstilling af ENV
variabel er bare at fortælle applikationen at den skal opføre sig som om den er in det miljø. Men beder ikke håndværkeren om at bruge fjernproduktionsmiljøet.
Hvis du vil køre kommandoer på din produktionsserver, foreslår jeg, at du kigger på Envoy . Det er et fuldstændigt selvstændigt projekt (og skal ikke kun bruges med Laravel-projekter) og er specifikt til implementering.
Det er dybest set en tynd indpakning omkring SSHing ind i din fjernserver og derefter køre kommandoer. Et eksempel på Envoy.blade.php
fil på mine websteder kan se sådan ud:
@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
Denne SSH går ind, sætter applikationen i vedligeholdelsestilstand, trækker den nye kode, udfører de forskellige opsætninger af 'ny kode' som komponistinstallation, migrering osv. og trækker derefter applikationen ud af vedligeholdelsestilstand.