Come configurare Docker + PhpStorm + xdebug su Ubuntu 16.04

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:

    inserisci la descrizione dell'immagine qui

    inserisci la descrizione dell'immagine qui

    inserisci la descrizione dell'immagine qui

    inserisci la descrizione dell'immagine qui

    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

    inserisci la descrizione dell'immagine qui

    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: inserisci la descrizione dell'immagine qui

    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: impostazioni di phpstorm Configurazione di debug remoto: impostazioni di phpstorm 7) E il profitto xdebug sta funzionando: xdebug sta funzionando