2017-05-31 2 views
4

Ich habe einige Beiträge darüber gelesen, aber keine half in meinem Fall oder einfach übersehen das fehlende Stück.Verwenden von xdebug durch Docker-Container in PhpStorm

Ich kann nicht xdebug auf PhpStorm mit einem Docker-Container arbeiten.

Docker-compose.yml

version: '2' 

services: 
    web: 
    image: nginx:latest 
    volumes: 
    - .:/usr/share/nginx/html 
    - ./nginx/nginx.conf:/etc/nginx/nginx.conf 
    - ./nginx/logs:/var/logs/nginx 
    - ./nginx/site-enabled/default.conf:/etc/nginx/sites-enabled/default.conf 
    ports: 
    - "80:80" 
    depends_on: 
    - php 

    db: 
    image: mysql:5.7 
    environment: 
     MYSQL_ROOT_PASSWORD: 1234 
     MYSQL_DATABASE: local_db 
     MYSQL_USER: root 
     MYSQL_PASSWORD: 1234 
    ports: 
    - "3306:3306" 

    php: 
    build: images/php 
    volumes: 
    - .:/usr/share/nginx/html 
    - ./config/docker/php/php.ini:/usr/local/etc/php/php.ini 
    - ./config/docker/php/ext-xdebug.ini:/usr/local/etc/php/conf.d/ext-xdebug.ini 
    - ./config/docker/php/php-fpm.conf:/usr/local/etc/php-fpm.conf 
    user: www-data 
    depends_on: 
    - db 

config/Andockfensters/php/ext-xdebug.ini

zend_extension="/usr/lib/php7/xdebug.so" 
xdebug.remote_enable=1 
xdebug.remote_port=9000 
xdebug.overload_var_dump=1 
xdebug.default_enable=1 
xdebug.remote_autostart=1 
xdebug.idekey=PHPSTORM 
xdebug.remote_connect_back=1 
xdebug.remote_host=172.20.0.1 # ip of host inside docker container 
xdebug.remote_log=/usr/share/nginx/html/xdebug.log 

Fehlers von xdebug.log

Log opened at 2017-05-31 11:01:14 
I: Checking remote connect back address. 
I: Checking header 'HTTP_X_FORWARDED_FOR'. 
I: Checking header 'REMOTE_ADDR'. 
I: Remote address found, connecting to 172.20.0.1:9000. 
W: Creating socket for '172.20.0.1:9000', poll success, but error: Operation now in progress (29). 
E: Could not connect to client. :-(
Log closed at 2017-05-31 11:01:14 

In PhpStorm Ich bin mit Remote-Debugger mit folgenden Einstellungen:

Server

Host - 127.0.0.1 
Port - 80 

Absoluter Pfad auf dem Server

/usr/share/nginx/html 

IDE Sitzungsschlüssel

PHPSTORM 
+0

killen phpstorm, und überprüfen Sie auf Ihrem Host, wenn Port 9000 von einem anderen Prozess verwendet wird. Wenn dies der Fall ist, müssen Sie möglicherweise den xdebug-Port sowohl in den php-Einstellungen als auch in Ihrem phpstorm ändern. – YvesLeBorg

+0

Es gibt keinen Prozess, der diesen Port verwendet, außer phpstorm beim Start – xhallix

Antwort

1

Ok habe ich die Lösung hier in

https://forums.docker.com/t/ip-address-for-xdebug/10460/9

ich xdebug.remote_host meine interne IP gesetzt hatte und deaktivieren xdebug.remote_connect_back=0

scheint dies eine osx Sache. Hoffe, das hilft hier jemand

+0

Wie finde ich die interne IP? Thx – orbitory

+0

In Windows, um die interne IP-Adresse zu bekommen, tippe 'ipconfig' in' cmd' und überprüfe die 'DockerNat' IP – UnLoCo

Verwandte Themen