Vous ne pouvez exécuter aucune commande à distance sur votre artisan
local . Tout ce que vous y exécutez ne fonctionnera que localement (même si vous définissez le ENV
variable).
Réglage de l'ENV
variable est juste pour dire à l'application de se comporter comme si elle était dans cet environnement. Mais ne dit pas à l'artisan d'utiliser l'environnement de production à distance.
Si vous souhaitez exécuter des commandes sur votre serveur de production, je vous suggère de consulter Envoy . Il s'agit d'un projet complètement autonome (et ne doit pas être utilisé uniquement avec des projets Laravel) et est spécifiquement destiné au déploiement.
Il s'agit essentiellement d'un mince wrapper autour de SSH sur votre serveur distant, puis d'exécuter des commandes. Un exemple Envoy.blade.php
fichier sur mes sites pourrait ressembler à ceci :
@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
Ce SSH entre, met l'application en mode maintenance, extrait le nouveau code, effectue les différentes configurations du "nouveau code" comme l'installation du compositeur, la migration, etc., puis sort l'application du mode maintenance.