Non puoi eseguire alcun comando remoto sul tuo artisan
locale . Tutto ciò che esegui lì funzionerà solo localmente (anche se imposti ENV
variabile).
Impostazione del ENV
variabile serve solo a dire all'applicazione di comportarsi come se fosse in quell'ambiente. Ma non dice all'artigiano di utilizzare l'ambiente di produzione remoto.
Se desideri eseguire comandi sul tuo server di produzione, ti suggerisco di esaminare Envoy . È un progetto completamente autonomo (e non deve essere utilizzato solo con i progetti Laravel) ed è specifico per la distribuzione.
È fondamentalmente un sottile involucro attorno all'SSH nel tuo server remoto e quindi all'esecuzione dei comandi. Un esempio Envoy.blade.php
il file sui miei siti potrebbe assomigliare a questo:
@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
Questo SSH viene inserito, mette l'applicazione in modalità di manutenzione, estrae il nuovo codice, esegue le varie impostazioni del "nuovo codice" come l'installazione del compositore, la migrazione, ecc. e quindi estrae l'applicazione dalla modalità di manutenzione.