Il mio problema è che xdebug non funziona quando inizio ad ascoltare la porta. Penso che PhpStorm non possa collegarsi con xdebug. Ho appena ottenuto che le variabili del pannello del debugger non siano disponibili. Sembra che xdebug non abbia corretto le impostazioni.
Software e versioni utilizzati:
Ubuntu 16.04 LTS Docker v 17.06 docker-compose 1.15
Così stavo provando molte volte setup xdebug + Docker + PhpStorm ma non posso farlo. Ho letto molti tutorial ma nulla non mi ha aiutato.
Il mio docker-compose.yml
presenta così:
version: '3' services: web: image: nginx:latest ports: - "80:80" restart: on-failure volumes: - "./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf" - "./etc/ssl:/etc/ssl" - "./project:/var/www/html/project" depends_on: - php - db php: image: nanoninja/php-fpm restart: on-failure volumes: - "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini" - "./project:/var/www/html/project" db: image: mysql container_name: ${MYSQL_HOST} restart: on-failure env_file: - ".env" environment: - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} command: mysqld --sql-mode=NO_ENGINE_SUBSTITUTION ports: - "8988:3306" volumes: - "./data/db/mysql:/var/lib/mysql"
Il mio xdebug.ini
è:
xdebug.default_enable=0 xdebug.remote_enable=1 xdebug.remote_port=9000 xdebug.remote_autostart=0 xdebug.remote_connect_back=0 xdebug.idekey="PHPSTORM" xdebug.profiler_enable=0 xdebug.remote_host=localhost
Impostazioni di PhpStorm:
Ho scoperto la soluzione su come eseguire xdebug.
1) Prima di tutto dobbiamo creare una nuova route statica basata sul tuo dispositivo di rete. Per creare una nuova route statica: eseguire nel terminale ifconfig
e scoperto il dispositivo di rete esistente. Nella mia situazione il nome del dispositivo sarà come
wlp4s0
2) Vai avanti. Iniziamo a creare la rotta statica. Nel comando di esecuzione del terminale in questo modo:
> sudo ip addr add 10.254.254.254/24 brd + dev wlp4s0 label wlp4s0:1
3) Ora se esegui nuovamente ifconfig
vedrai una nuova route statica:
4) Aggiornamento
xdebug.ini
aggiungi file:
xdebug.remote_host=10.254.254.254
5) Aggiorna il file docker.compose.yml
: nella sezione php
aggiungi:
environment: PHP_IDE_CONFIG: "serverName=project-docker" PHP_XDEBUG_ENABLED: 1 XDEBUG_CONFIG: remote_host=10.254.254.254
6) L’ultima cosa è aggiornare le impostazioni di phpstorm.
Impostazioni del server: Configurazione di debug remoto:
7) E il profitto xdebug sta funzionando: