Du kan inte köra några fjärrkommandon på din lokala artisan
. Allt du kör där kommer bara att fungera lokalt (även om du ställer in ENV
). variabel).
Ställa in ENV
variabel är bara för att tala om för applikationen att bete sig som om den är i den miljön. Men säger inte åt artisan att använda fjärrproduktionsmiljön.
Om du vill köra kommandon på din produktionsserver föreslår jag att du tittar på Envoy . Det är ett helt fristående projekt (och behöver inte endast användas med Laravel-projekt) och är specifikt för distribution.
Det är i princip ett tunt omslag runt SSHing till din fjärrserver och sedan köra kommandon. Ett exempel på Envoy.blade.php
fil på mina webbplatser kan se ut så här:
@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
Denna SSH sätts in, sätter applikationen i underhållsläge, drar den nya koden, gör de olika "nya koden"-inställningar som kompositörinstallation, migrering, etc. och drar sedan applikationen ur underhållsläge.