Zum Hauptinhalt springen

PHP-Anwendungen lokal mit DDEV ausführen

Voraussetzungen​

Benötigte Werkzeuge​

Bevor du loslegen kannst, stelle sicher, dass du die erforderlichen Tools auf deinem lokalen Rechner installiert hast:

  • DDEV: DDEV ist eine lokale Entwicklungsumgebung, die das Einrichten und Verwalten von PHP-Anwendungen auf deinem Computer vereinfacht.
  • Docker: Docker ist eine Plattform zum Entwickeln, Deployment und Ausführen von Anwendungen in Containern.

Wir empfehlen außerdem, die mittwald CLI für die Einrichtung zu verwenden -- obwohl es auch ohne geht.

SSH-Konnektivität herstellen​

Um die Befehle ddev pull und ddev push verwenden zu können, musst du eine SSH-Verbindung zwischen deinem lokalen Rechner und deiner mittwald-App ermöglichen. Folge dazu dem Abschnitt "SSH-Authentifizierung" der mittwald CLI-Dokumentation.

Weiterhin ist für die korrekte Funktion der DDEV-Integration mit mittwald eine SSH-Konnektivität von innerhalb des DDEV-Webcontainers erforderlich. Normalerweise werden alle deine SSH-Schlüssel in den DDEV-Container über einen SSH-Agenten übergeben, wenn du ddev auth ssh ausführst. Wenn du jedoch Probleme wie too many authentication failures hast, musst du möglicherweise deine SSH-Schlüssel manuell im DDEV-Container konfigurieren. Siehe den Abschnitt "Häufige Probleme" für weitere Informationen.

Einrichten einer neuen DDEV-Umgebung für ein mittwald-Projekt​

Die folgenden Anweisungen führen dich durch die Einrichtung einer DDEV-Umgebung für deine mittwald-App. Du kannst zwischen der Verwendung der mittwald CLI oder der manuellen Konfiguration deiner DDEV-Umgebung wählen.

Diese Anweisungen funktionieren sowohl für die Einrichtung einer neuen DDEV-Umgebung als auch für das Verbinden einer mittwald-App mit einer vorhandenen DDEV-Umgebung.

Dir steht es auch frei, ob du ein leeres Projekt initialisieren und Code und Datenbank von einer bereits installierten App auf dem Server abrufen möchtest, oder ob du eine DDEV-Umgebung für eine bereits vorhandene Codebasis auf deinem lokalen Rechner einrichten möchtest.

Mit der mittwald CLI​

Wenn du die mittwald CLI bereits installiert hast, kannst du mit einem einzigen Befehl ein DDEV-Projekt für deine mittwald-App einrichten.

Um die Einrichtung zu starten, führe den folgenden Befehl in deinem Terminal aus und ersetze <app-id> durch deine App-ID (üblicherweise im Format a-xxxxx) und <project-name> durch einen geeigneten Namen für dein Projekt:

$ # Projektverzeichnis erstellen und betreten; alternativ kann dies auch ein
vorhandenes Projekt sein, z. B. geklont aus einem Git-Repository
$ mkdir project-dir && cd project-dir

$ # DDEV-Umgebung initialisieren
$ mw ddev init <app-id> --project-name <project-name>

$ # Optional: Code und Datenbank vom Server abrufen
$ ddev pull mittwald

Dieser Befehl konfiguriert automatisch eine DDEV-Umgebung, die deiner vorhandenen mittwald-App weitgehend entspricht, einschließlich PHP- und MySQL-Versionen sowie des Document Roots. Darüber hinaus installiert und konfiguriert er das mittwald DDEV-Addon, das nahtlos mit DDEV integriert ist.

Manuelle Einrichtung​

Wenn du das mittwald CLI nicht installiert hast oder eine manuelle Herangehensweise bevorzugst, kannst du dennoch eine DDEV-Umgebung für deine PHP-Anwendung einrichten. So geht's:

$ ddev config \
--project-type <type> \
--php-version <php-version> \
--database mysql:<mysql-version>
$ ddev add-on get mittwald/ddev-mittwald

Ersetze <type>, <php-version> und <mysql-version> durch die entsprechenden Werte für dein Projekt. Nach Ausführung dieser Befehle wird deine DDEV-Umgebung konfiguriert, und das mittwald DDEV-Addon wird installiert.

Während dieser Einrichtung wirst du nach einem mittwald API-Token und der App-ID deiner mittwald-App (üblicherweise im Format a-xxxxx) gefragt.

Funktionen​

Code und Datenbank abrufen und übertragen​

DDEV vereinfacht den Prozess der Synchronisierung von Code und Datenbanken zwischen deiner lokalen Umgebung und deiner mittwald-App.

Um den Code und die Datenbank von deiner mittwald-App in deine lokale DDEV-Umgebung zu laden, verwende den folgenden Befehl:

$ ddev pull mittwald

Umgekehrt, um lokale Code- und Datenbankänderungen auf deine mittwald-App hochzuladen, führe den folgenden Befehl aus:

$ ddev push mittwald

Verwendung des mittwald CLI​

Das mittwald DDEV-Addon ermöglicht es dir, das mittwald CLI direkt in deinem DDEV-Webcontainer auszuführen. Diese Integration ermöglicht es dir, verschiedene mittwald CLI-Befehle nahtlos auszuführen.

Um das mittwald CLI in deiner DDEV-Umgebung zu nutzen, verwende die folgende Syntax:

$ ddev mw <command>

Ersetze <command> durch einen unterstützten Befehl des mittwald CLI.

Häufige Probleme​

SSH-Verbindungen schlagen mit too many authentication failures fehl​

Dieser Fehler kann auftreten, wenn du viele SSH-Schlüsselpaare auf deinem lokalen Rechner konfiguriert hast und der Remote-Server die Verbindung nach zu vielen fehlgeschlagenen Authentifizierungsversuchen ablehnt.

Um dieses Problem zu umgehen, kannst du deine SSH-Schlüssel manuell im DDEV-Webcontainer konfigurieren. Führe dazu folgende Schritte aus:

  1. Finde das SSH-Schlüsselpaar, das du für die Verbindung verwenden möchtest, und stelle sicher, dass der öffentliche Schlüssel zu deinem mStudio-Benutzerprofil hinzugefügt ist. Für die folgenden Schritte gehen wir davon aus, dass der SSH-Schlüssel mstudio heißt und der private Schlüssel in ~/.ssh/mstudio gespeichert ist.

  2. Füge den erforderlichen SSH-Schlüssel direkt zum DDEV-Webcontainer hinzu, indem du ihn in .ddev/homeadditions verlinkst:

    $ mkdir -p .ddev/homeadditions/.ssh
    $ ln -s ~/.ssh/mstudio ~/.ddev/homeadditions/.ssh/mstudio
  3. Setze die Umgebungsvariable MITTWALD_SSH_IDENTITY_FILE so, dass sie auf den verlinkten SSH-Schlüssel zeigt:

    $ ddev config --web-environment-add MITTWALD_SSH_IDENTITY_FILE=~/.ssh/mstudio