2015-10-09 36 views
5

Udało mi się uzyskać xdebug w połączeniu z dockerem i phpstorm. W przypadku połączeń http ... IExdebug w phpstorm i docker

http://192.168.99.100:8081/?XDEBUG_SESSION_START=PHPSTORM

Ale gdy próbuję uruchomić moje phpunit testy, nie łączyć z phpstorm

zrobiłem właściwą prawo mapowania katalogu w phpstorm, a także prowadził następujące na moim doku-instancji export XDEBUG_CONFIG="idekey=PHPSTORM"

Próbowałem również na moim dokowanie: eksport PHP_IDE_CONFIG = 'serverName = web.docker'and nazwał konfigurację serwera na phpstorm web.docker. nadal działa na http, ale nie CLI

Więc czy mogę uzyskać również phpstorm i xdebug dla linii poleceń?

tutaj jest mój plik: /etc/php5/cli/conf.d/20-xdebug.ini

zend_extension=xdebug.so 
xdebug.remote_enable=1 
xdebug.idekey=PHPSTORM 
xdebug.remote_connect_back=1 
xdebug.remote_host=172.17.42.1 
dxdebug.remote_autostart=1 

Kiedy włączyć rejestrowanie i odtwarzanie z xdebug_remote_host adres IP otrzymuję

W: Remote address not found, connecting to configured address/port: localhost:9000. :-| 
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:20:39 

Log opened at 2015-10-13 12:22:58 
I: Checking remote connect back address. 
W: Remote address not found, connecting to configured address/port: 172.17.42.1:9000. :-| 
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:22:58 

Log opened at 2015-10-13 12:23:58 
I: Checking remote connect back address. 
W: Remote address not found, connecting to configured address/port: 192.168.99.100:9000. :-| 
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:23:58 

Solution (edit) poprzez włączenie Rejestrowanie xdebug, widziałem, że udało się połączyć z 192.168.99.1, więc rozwiązało problem

xdebug.remote_host=192.168.99.1 
+1

Do zdalnego debugowania IDE wykorzystuje serwer/nazwa hosta jako unikalny identyfikator zdecydować mapowania co ścieżki do użyj ('PHP | Servers'). W przypadku debugowania interfejsu CLI takie informacje nie są dostarczane (nigdzie nie można ich pobrać), więc musisz podać je ręcznie (podobnie jak w przypadku idekey) - 'serverName = ServerNameHere'. Również - https://devnet.jetbrains.com/message/5534075#5534075 – LazyOne

+0

Nie zrozumiałem w 100% twojej wskazówki, ale w każdym razie próbowałem na moim dokerze: 'export PHP_IDE_CONFIG = 'serverName = web.docker'' i nazwane konfiguracja serwera w phpstorm web.docker. nadal działa na http ale nie CLI – Confidence

+0

1) Możesz przeczytać o zdalnym debugowaniu CLI/to serverName param [tutaj] (https://youtrack.jetbrains.com/issue/WI-7906) 2) Jaki jest twój 'PHP | Wygląd serwerów wygląda (proszę o zrzut ekranu) 3) Przed rozpoczęciem debugowania PHPUnit .. spróbuj debugowania prostego skryptu (umieść go w katalogu głównym projektu, zarówno lokalnym jak i zdalnym oczywiście) - przynajmniej zagwarantujesz, że nie działa debugowanie ogólne, a nie phpunit konkretny moment. 4) Co rejestr xdebug mówi o nieudanej próbie (upewnij się, że jest jasne/ma tylko te szczegóły) – LazyOne

Odpowiedz

4

Dwie rzeczy przychodzą mi do głowy w tej chwili:

  1. Czy xdebug.remote_host ustawiony prawidłowo? W przypadku łącza HTTP podałeś adres 192.168., ponieważ w drodze powrotnej jest to adres 172.17.. Czy możesz pingować swojego hosta w tym IP?

  2. W pliku ini to brzmi:

    dxdebug.remote_autostart=1 
    

    Czy to tylko literówka tutaj, lub jest to, że faktycznie w pliku konfiguracyjnym? Ponieważ powinien przeczytać xdebug bez "d" przed nim. Powinno być:

    xdebug.remote_autostart=1 
    

    Trzeba dodać tylko d podczas dodawania opcji podczas wykonywania skryptu tak:

    php -dxdebug.remote_autostart=1 script.php 
    

Jeśli nie ma jeszcze pomóc, prosimy włączyć zdalny log przez dodanie czegoś takiego do config:

xdebug.remote_log = /var/log/xdebug_remote.log 

może to pomoże znaleźć problem.

+0

1. Tak, mogę "pingować 172.17.42.1". – Confidence

+0

w przeciwnym razie sprawdź mój zredagowany temat. – Confidence

+0

dzięki Pampy, twoja podpowiedź z wyłączaniem rejestrowania pokazała, że ​​łączyła się z następującym IP 'xdebug.remote_host = 192.168.99.1', więc ustawiając go, wszystko jest już w porządku. – Confidence

1

Co pracował dla mnie jest ssh tunel przy tej konfiguracji xdebug.remote_connect_back = 0 xdebug.remote_host = 127.0.0.1

Patrz: Xdebug with SSH tunnel on Docker for Mac

+0

Nie mogę uwierzyć, ale to był problem w moim przypadku. Dzięki, Eugene – manuelbcd