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 get mittwald/ddev

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