Dieses Tutorial zeigt, wie die Umgebungsvariablen verwendet werden, um XDEBUG in einer dockerisierten PHP 8.4 -Anwendung zu konfigurieren, die Flexibilität zu verbessern und hartcodierte INI -Einstellungen zu vermeiden. Die vorherigen Tutorial hartcodierte XDEBUG -Einstellungen und begrenzte Entwickleranpassung. Dieser Ansatz ermöglicht es jedem Entwickler, seine XDebug -Konfiguration zu verwalten, ohne das Docker -Image zu ändern.
Php 8.3 und spätere Versionen unterstützen Fallback -Werte in INI -Dateien mithilfe von Umgebungsvariablen und vereinfachen die Konfiguration. Zuvor sah die xdebug.ini
Datei wie folgt aus:
<code>; build/php/conf.d/xdebug.ini file [xdebug] xdebug.mode = debug xdebug.client_host = host.docker.internal ; Or use the host machine IP address: ; xdebug.client_host = 192.168.86.203 xdebug.start_with_request = yes</code>
Diese Methode erfordert manuelle INI -Dateiaktualisierungen für jeden Entwickler, der ineffizient ist. Ein überlegener Ansatz verwendet Umgebungsvariablen:
<code>services: app: # ... other configurations ... environment: XDEBUG_CONFIG: "client_host=0.0.0.0 start_with_request=yes" XDEBUG_MODE: "debug,develop"</code>
Speichern Sie diese Umgebungsvariablen in einer unversionierten .docker.env
-Datei ermöglicht eine Anpassung des Entwicklers. Alternativ können Sie Umgebungsvariablen direkt in der Datei xdebug.ini
direkt nutzen:
<code>; build/php/conf.d/xdebug.ini file [xdebug] xdebug.mode = ${PHP_XDEBUG_MODE:-debug,develop} xdebug.client_host = ${PHP_XDEBUG_CLIENT_HOST:-host.docker.internal} xdebug.start_with_request = ${PHP_XDEBUG_START_WITH_REQUEST:-trigger}</code>
Das Präfix PHP_
vermeidet die Benennung von Konflikten und identifiziert eindeutig INI -Umgebungsvariablen. XDEBUG_MODE
und XDEBUG_CONFIG
sind für die direkte xDebug -Konfiguration reserviert.
Um die Einstellungen zu überprüfen, fügen Sie phpinfo(); exit;
zu public/index.php
hinzu oder verwenden Sie die folgenden Befehle im Docker -Container:
$ docker compose up --build -d $ docker compose exec app bash $ php -i | grep xdebug\.start_with_request
Fügen Sie für die lokale Anpassung ein env_file
zu Ihrem docker-compose.yaml
:
services: app: # ... other configurations ... env_file: - .docker.env
erstellen .docker.env
(zu .gitignore
) und .docker.env.example
Dateien mit Standardeinstellungen hinzufügen:
<code>PHP_XDEBUG_MODE=debug PHP_XDEBUG_CLIENT_HOST=host.docker.internal # Or use your computer's local network IP # PHP_XDEBUG_CLIENT_HOST=192.168.86.250 PHP_XDEBUG_START_WITH_REQUEST=trigger</code>
den Container neu aufbauen, um die Änderungen zu sehen, die sich widerspiegeln. Die aktualisierten Einstellungen sind in phpinfo()
:
Diese Methode ermöglicht eine flexible XDebug -Konfiguration, ohne den Bildaufbauprozess zu ändern. Während Direkte -XDEBUG -Umgebungsvariablen Einfachheit bieten, bietet die INI -Methode eine umfassendere Kontrolle, da nicht alle Einstellungen über XDEBUG_CONFIG
konfigurierbar sind. Wählen Sie den Ansatz, der für Ihre Bedürfnisse am besten geeignet ist.
Das obige ist der detaillierte Inhalt vonFlexible Docker -Bilder mit PHP INI -Umgebungsvariablen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!