Rumah >pembangunan bahagian belakang >tutorial php >Imej Docker Fleksibel dengan Pembolehubah Alam Sekitar PHP INI
Tutorial ini menunjukkan cara menggunakan pembolehubah persekitaran untuk mengkonfigurasi XDEBUG dalam aplikasi Dockerized Php 8.4, meningkatkan fleksibiliti dan mengelakkan tetapan INI yang dikodkan. Tutorial sebelumnya menetapkan tetapan XDEBUG HARDCODED, mengehadkan penyesuaian pemaju. Pendekatan ini membolehkan setiap pemaju menguruskan konfigurasi Xdebug mereka tanpa mengubah imej Docker.
Php 8.3 dan versi kemudian menyokong nilai sandaran dalam fail INI menggunakan pembolehubah persekitaran, memudahkan konfigurasi. Sebelum ini, fail xdebug.ini
kelihatan seperti 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>
Kaedah ini memerlukan kemas kini fail INI manual untuk setiap pemaju, yang tidak cekap. Pendekatan unggul menggunakan pembolehubah persekitaran:
<code>services: app: # ... other configurations ... environment: XDEBUG_CONFIG: "client_host=0.0.0.0 start_with_request=yes" XDEBUG_MODE: "debug,develop"</code>
Menyimpan pembolehubah persekitaran ini dalam fail .docker.env
yang tidak diselaraskan membolehkan penyesuaian per-penyusun. Sebagai alternatif, anda boleh memanfaatkan pembolehubah persekitaran secara langsung dalam fail 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>
Prefix PHP_
menghindari konflik penamaan dan dengan jelas mengenal pasti pembolehubah persekitaran INI. XDEBUG_MODE
dan XDEBUG_CONFIG
dikhaskan untuk konfigurasi XDEBUG langsung.
Untuk mengesahkan tetapan, tambahkan phpinfo(); exit;
ke public/index.php
atau gunakan arahan berikut dalam bekas Docker:
$ docker compose up --build -d $ docker compose exec app bash $ php -i | grep xdebug\.start_with_request
Untuk penyesuaian tempatan, tambahkan env_file
ke docker-compose.yaml
anda:
services: app: # ... other configurations ... env_file: - .docker.env
create .docker.env
(tambah ke .gitignore
) dan .docker.env.example
fail dengan tetapan lalai:
<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>
Membangun semula bekas untuk melihat perubahan yang ditunjukkan. Tetapan yang dikemas kini akan dapat dilihat dalam phpinfo()
:
. Pilih pendekatan yang paling sesuai dengan keperluan anda. XDEBUG_CONFIG
Atas ialah kandungan terperinci Imej Docker Fleksibel dengan Pembolehubah Alam Sekitar PHP INI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!