# Artisan und andere Befehle auf einer Site ausführen

> Führe einen einmaligen Befehl wie php artisan migrate im Live-Verzeichnis einer Site aus, als ihr Benutzer, mit ihrer PHP-Version und Ausgabe im Verlauf.

Die Seite **Befehle** einer Site führt einen einzelnen Befehl einmal im Live-Verzeichnis der Site aus, etwa `php artisan migrate --force`, `php artisan cache:clear` oder `composer dump-autoload`. Du brauchst kein Terminal und kein SSH: Du tippst den Befehl ein, klickst auf **Ausführen** und liest die Ausgabe, sobald er fertig ist.

Jeder Befehl, den du ausführst, bleibt mit Ausgabe und Status im **Verlauf**, damit du siehst, was wer ausgeführt hat, und ihn erneut ausführen kannst.

![Die Seite Befehle einer Site mit einem Eingabefeld und dem Verlauf früherer Befehle mit ihrem Status](https://ops.vimonto.com/docs-media/de/site-commands.webp?v=161e760d "Befehle auf einer Site ausführen")

## Einen Befehl ausführen

1. Öffne die Site und klicke in der Seitenleiste auf **Befehle**.
2. Tippe unter **Einen Befehl ausführen** den Befehl ein. Bei Laravel- und Statamic-Sites beginnt das Feld mit `php artisan `.
3. Klicke auf **Ausführen**.

Der Befehl läuft als Hintergrundaufgabe, und sein Eintrag öffnet sich darunter im **Verlauf**, mit der Ausgabe, sobald sie eintrifft. Du kannst die Seite verlassen: Der Befehl läuft auf dem Server weiter, und du kannst ihn auch auf der Seite [Aktivität](https://ops.vimonto.com/docs/de/organization/activity) verfolgen.

## Wo und wie läuft ein Befehl?

- **Im Live-Verzeichnis**: das Release, das gerade live ist, `current/` im Verzeichnis der Site, oder das Monorepo-Root darin, zum Beispiel `/home/vimonto/shop.example.com/current`. Die Seite zeigt den genauen Pfad unter dem Feld. Eine Site, die noch nie deployt wurde, hat noch kein Live-Verzeichnis; der Befehl schlägt dann mit einem entsprechenden Hinweis fehl.
- **Als Benutzer der Site**: der Systembenutzer des Servers oder der eigene Benutzer einer [isolierten Site](https://ops.vimonto.com/docs/de/sites/site-settings#website-isolation). Die Beschreibung der Seite nennt den Benutzer.
- **Mit der PHP-Version der Site**: Bei PHP-Sites verwenden `php` und `composer` die PHP-Version aus den **Einstellungen** der Site (die Seite zeigt, welche), sodass `php artisan` dasselbe PHP nutzt wie die Site selbst.
- **Eine Zeile**: Ein Befehl ist eine Zeile mit bis zu 2.000 Zeichen. Für mehrere verkette sie mit `&&`, etwa `php artisan down && php artisan migrate --force && php artisan up`.

Ein Befehl, der mit einem Fehler endet, markiert seinen Eintrag als fehlgeschlagen, mit dem Fehler über der Ausgabe.

Befehle sind nicht interaktiv: Während sie laufen, kann nichts eingegeben werden. Ein Befehl, der eine Frage stellt, etwa `php artisan migrate` in Produktion ohne `--force`, bleibt dort stehen. Füge die Option hinzu, die die Frage beantwortet, oder nutze für alles Interaktive das [Terminal](https://ops.vimonto.com/docs/de/servers/terminal).

## Die Ausgabe lesen und einen Befehl erneut ausführen

Der **Verlauf** zeigt die letzten 50 Befehle der Site, die neuesten zuerst, mit wer sie ausgeführt hat, wann und ihrem Status (**In der Warteschlange**, laufend, fertig oder fehlgeschlagen). Ältere Befehle und ihre Ausgabe werden entfernt.

- Klicke auf einen Befehl, um seine Ausgabe ein- oder auszublenden.
- Klicke auf **Erneut verwenden**, um den Befehl wieder ins Feld zu setzen. Prüfe oder ändere ihn und klicke auf **Ausführen**.

## Wer darf Befehle ausführen?

Jedes Mitglied kann den Verlauf und die Ausgabe sehen. Einen Befehl ausführen und **Erneut verwenden** erfordern die Berechtigung, Sites zu verwalten (Owner, Administrator, Manager und Developer), und Site und Server müssen aktiv sein. Siehe [Mitglieder und Rollen](https://ops.vimonto.com/docs/de/organization/members-and-roles).

Jeder ausgeführte Befehl wird im [Audit-Log](https://ops.vimonto.com/docs/de/organization/audit-log) festgehalten, mit der Person, die ihn ausgeführt hat.

Eine Site auf einem [Load Balancer](https://ops.vimonto.com/docs/de/sites/load-balancing) hat keine Seite **Befehle**: Sie hat keinen eigenen Code. Führe Befehle auf den Sites ihrer App-Server aus.

## Häufig gestellte Fragen

### Wie führe ich Migrationen nach einem Deploy aus?

Für jeden Deploy setzt du `$VIMONTO_PHP artisan migrate --force` ins [Deploy-Skript](https://ops.vimonto.com/docs/de/sites/deployments#das-deploy-skript-bearbeiten). Für eine einmalige Migration führst du hier `php artisan migrate --force` aus.

### Kann ich einen Befehl als root ausführen?

Nein. Befehle laufen als Benutzer der Site. Für Arbeit als root nutze das [Terminal](https://ops.vimonto.com/docs/de/servers/terminal) oder ein [Rezept](https://ops.vimonto.com/docs/de/more/recipes).

### Kann ich etwas ausführen, das weiterläuft, etwa einen Queue Worker?

Nicht hier: Ein Befehl soll fertig werden. Dauerhaft laufende Prozesse gehören unter [Queues und Scheduler](https://ops.vimonto.com/docs/de/sites/queues-and-scheduler), wo sie am Laufen gehalten und neu gestartet werden.
