Nie możesz uruchamiać żadnych zdalnych poleceń na lokalnym artisan
. Wszystko, co tam uruchomisz, będzie działać tylko lokalnie (nawet jeśli ustawisz ENV
zmienna).
Ustawianie ENV
zmienna ma po prostu powiedzieć aplikacji, aby zachowywała się tak, jakby była w to środowisko. Ale nie mówi rzemieślnikowi, aby używał zdalnego środowiska produkcyjnego.
Jeśli chcesz uruchamiać polecenia na swoim serwerze produkcyjnym, proponuję zajrzeć do Wysłanie . Jest to całkowicie samodzielny projekt (i nie musi być używany tylko z projektami Laravel) i jest przeznaczony specjalnie do wdrażania.
Jest to w zasadzie cienkie opakowanie wokół SSH do zdalnego serwera, a następnie uruchamianie poleceń. Przykład Envoy.blade.php
plik w moich witrynach może wyglądać tak:
@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
Ten SSH uruchamia się, przełącza aplikację w tryb konserwacji, ściąga nowy kod, wykonuje różne konfiguracje „nowego kodu”, takie jak instalacja kompozytora, migracja itp., a następnie wyciąga aplikację z trybu konserwacji.