本教程演示瞭如何使用環境變量在Dockerized PHP 8.4應用程序中配置Xdebug,從而增強了靈活性並避免了硬編碼INI設置。 以前的教程硬編碼Xdebug設置,限制開發人員自定義。這種方法允許每個開發人員在不更改docker映像的情況下管理其XDEBUG配置。
使用環境變量簡化配置,使用環境變量支持INI文件中的後備值。 以前,>文件看起來像這樣:xdebug.ini
<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>此方法需要每個開發人員的手動INI文件更新,這是效率低下的。 優越的方法利用環境變量:
<code>services: app: # ... other configurations ... environment: XDEBUG_CONFIG: "client_host=0.0.0.0 start_with_request=yes" XDEBUG_MODE: "debug,develop"</code>>將這些環境變量存儲在未轉化的
文件中允許每次開發器自定義。 另外,您可以直接在.docker.env
>文件中直接利用環境變量:xdebug.ini
<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>>和
保留用於直接Xdebug配置。 PHP_
>
XDEBUG_MODE
>要驗證設置,將XDEBUG_CONFIG
添加到
>
phpinfo(); exit;
public/index.php
對於本地自定義,將一個
$ docker compose up --build -d $ docker compose exec app bash $ php -i | grep xdebug\.start_with_request>:
>
env_file
docker-compose.yaml
create
services: app: # ... other configurations ... env_file: - .docker.env>)和
.docker.env
具有默認設置的文件:.gitignore
.docker.env.example
<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>>中可見:
phpinfo()
此方法允許在不修改圖像構建過程的情況下進行靈活的Xdebug配置。 雖然直接的Xdebug環境變量提供了簡單性,但INI方法提供了更全面的控制,因為並非所有設置都可以通過
以上是具有PHP INI環境變量的靈活Docker圖像的詳細內容。更多資訊請關注PHP中文網其他相關文章!