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:
-
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. -
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 -
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