# Lancer Artisan et d'autres commandes sur un site

> Lancez une commande ponctuelle comme php artisan migrate dans le répertoire live d'un site, avec son utilisateur et sa version de PHP, et gardez la sortie.

La page **Commandes** d'un site exécute une seule commande, une fois, dans le répertoire live du site, comme `php artisan migrate --force`, `php artisan cache:clear` ou `composer dump-autoload`. Pas besoin de terminal ni de SSH : vous tapez la commande, cliquez sur **Exécuter** et lisez la sortie une fois qu'elle est terminée.

Chaque commande lancée reste dans l'**Historique** avec sa sortie et son statut, pour voir ce qui a été lancé, par qui, et la relancer.

![La page Commandes d'un site avec un champ de saisie et l'historique des commandes précédentes avec leur statut](https://ops.vimonto.com/docs-media/fr/site-commands.webp?v=161e760d "Lancer des commandes sur un site")

## Lancer une commande

1. Ouvrez le site et cliquez sur **Commandes** dans sa barre latérale.
2. Sous **Lancer une commande**, tapez la commande. Pour les sites Laravel et Statamic, le champ commence par `php artisan `.
3. Cliquez sur **Exécuter**.

La commande tourne comme tâche en arrière-plan, et son entrée s'ouvre dans l'**Historique** en dessous, avec la sortie au fur et à mesure. Vous pouvez quitter la page : la commande continue sur le serveur, et vous pouvez aussi la suivre sur la page [activité](https://ops.vimonto.com/docs/fr/organization/activity).

## Où et comment une commande s'exécute-t-elle ?

- **Dans le répertoire live** : la release en ligne, `current/` dans le répertoire du site, ou la racine de monorepo à l'intérieur, par exemple `/home/vimonto/shop.example.com/current`. La page affiche le chemin exact sous le champ. Un site jamais déployé n'a pas encore de répertoire live ; la commande échoue alors avec un message qui le dit.
- **Avec l'utilisateur du site** : l'utilisateur système du serveur, ou l'utilisateur propre d'un [site isolé](https://ops.vimonto.com/docs/fr/sites/site-settings#isolation-des-sites). La description de la page nomme l'utilisateur.
- **Avec la version de PHP du site** : pour les sites PHP, `php` et `composer` utilisent la version de PHP réglée dans les **Paramètres** du site (la page indique laquelle), donc `php artisan` utilise le même PHP que le site lui-même.
- **Une ligne** : une commande tient sur une ligne de 2 000 caractères au plus. Pour en lancer plusieurs, enchaînez-les avec `&&`, par exemple `php artisan down && php artisan migrate --force && php artisan up`.

Une commande qui se termine par une erreur marque son entrée comme échouée, avec l'erreur au-dessus de la sortie.

Les commandes ne sont pas interactives : rien ne peut être saisi pendant qu'elles tournent. Une commande qui pose une question, comme `php artisan migrate` en production sans `--force`, reste bloquée là. Ajoutez l'option qui y répond, ou utilisez le [terminal](https://ops.vimonto.com/docs/fr/servers/terminal) pour tout ce qui est interactif.

## Lire la sortie et relancer une commande

L'**Historique** liste les 50 dernières commandes du site, les plus récentes en premier, avec qui les a lancées, quand, et leur statut (**En file d'attente**, en cours, terminée ou échouée). Les commandes plus anciennes et leur sortie sont supprimées.

- Cliquez sur une commande pour afficher ou masquer sa sortie.
- Cliquez sur **Réutiliser** pour remettre la commande dans le champ. Vérifiez-la ou modifiez-la, puis cliquez sur **Exécuter**.

## Qui peut lancer des commandes ?

Chaque membre peut voir l'historique et la sortie. Lancer une commande et **Réutiliser** nécessitent la permission de gérer les sites (propriétaire, administrateur, manager et développeur), et le site et son serveur doivent être actifs. Consultez [membres et rôles](https://ops.vimonto.com/docs/fr/organization/members-and-roles).

Chaque commande lancée est enregistrée dans le [journal d'audit](https://ops.vimonto.com/docs/fr/organization/audit-log), avec qui l'a lancée.

Un site sur un [load balancer](https://ops.vimonto.com/docs/fr/sites/load-balancing) n'a pas de page **Commandes** : il n'a pas de code propre. Lancez les commandes sur les sites de ses serveurs d'application.

## Questions fréquentes

### Comment lancer les migrations après un déploiement ?

Pour chaque déploiement, mettez `$VIMONTO_PHP artisan migrate --force` dans le [script de déploiement](https://ops.vimonto.com/docs/fr/sites/deployments#modifier-le-script-de-déploiement). Pour une migration ponctuelle, lancez `php artisan migrate --force` ici.

### Puis-je lancer une commande en root ?

Non. Les commandes tournent avec l'utilisateur du site. Pour travailler en root, utilisez le [terminal](https://ops.vimonto.com/docs/fr/servers/terminal) ou une [recette](https://ops.vimonto.com/docs/fr/more/recipes).

### Puis-je lancer quelque chose qui continue de tourner, comme un worker de file d'attente ?

Pas ici : une commande doit se terminer. Les processus qui tournent en continu se gèrent sous [files d'attente et planificateur](https://ops.vimonto.com/docs/fr/sites/queues-and-scheduler), où ils sont maintenus en marche et redémarrés.
