2013-08-29 24 views
9

Problem:Jak skonfigurować zdalne debugowanie dla Symfony2 z phpstorm i XDebug

  • Chcę móc debugować mojego projektu Symfony2. Chciałbym być w stanie ustawić punkt przerwania w moim kodzie, uruchomić zdalne debugowanie i być w stanie przejść przez wszystkie punkty przerw w moim kodzie, jak interakcji z moją aplikacją.

Kontekst i aktualna konfiguracja:

  • IDE używam jest phpstorm.

  • Serwer Apache i mySql działają na moim odtwarzaczu vmware.

  • Xdebug jest zainstalowany na odtwarzaczu vmware.

  • Obecnie łączę się z moim projektem za pośrednictwem moich odtwarzaczy vmware ip (tj. 172.16.48.1/app_dev.php). W tym momencie normalnie wchodzę w interakcję z moją aplikacją i się rozwijam.

co zrobiłem do tej pory

  • Śledziłem the tutorial ale nie mieli szczęścia.

  • Naprawdę zmieszany przez większość samouczka, ale podążałem za nim najlepiej jak potrafiłem. Myślę, że bookmarkslety nie działały poprawnie podczas wykonywania instrukcji.

  • Oglądałem również webinarium lub dwa na zdalnym debugowaniu i nadal nie było dla mnie jasne, co muszę zrobić, aby przejrzeć mój kod.

Pytanie:

  • Może ktoś zapewniają krok po ćwiczeniu kroku co trzeba zrobić, aby konfiguracji zdalnego debugowania, aby można było uruchomić jakieś zdalne debugowanie sesji przez phpstorm które będą otwórz moją aplikację internetową i jako I poruszam się po mojej aplikacji sieciowej, moje punkty zostaną trafione?
+0

Lepsze niż tylko tekst: http://blog.jetbrains.com/phpstorm/2013/07/webinar-recording-debugging-php-with-phpstorm/ – LazyOne

+0

będę oglądać to i zobacz jeśli mi pomoże.Jeśli cokolwiek, to pomoże mi sformułować bardziej inteligentne pytanie dla innych, aby pomóc mi zrozumieć, co robię źle. –

+0

Ten artykuł również (powinien być uwzględniony w tym filmie): http://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+z+Xdebug+i+PhpStorm – LazyOne

Odpowiedz

28

Właśnie skończyłem skonfigurowaniu lokalną aplikację Symfony2 i phpstorm debugowanie z Chrome, oto co zrobiłem:

1) Xdebug config w php.ini na serwerze i uruchomić serwer WWW (lub php-fpm):

[xdebug] 
zend_extension="**location to xdebug**/xdebug.so" 
xdebug.remote_enable = 1 
; use port 9009 because php-fpm uses 9000 by default 
xdebug.remote_port = 9009 
xdebug.idekey = PHPSTORM 

2) zainstalować rozszerzenie xdebug https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc

3) exteions setup xdebug. w chrome: // extensions znajdź pomocnika Xdebuga i kliknij opcje.tam wybierz klucz IDE do PhpStorm. (to zasadniczo ustawi plik xdebug.idekey na PHPSTORM dla tej konkretnej sesji)

4) teraz najtrudniejszy element, łączący się z PhpStorm. musisz ustawić konfigurację debugowania PHP Remote Debug.

  1. na pasku narzędzi, obok przycisku debugowania, znajduje się rozwijane pole z pierwszą opcją Edit configuration. otwiera się Run/Debug Configurations. Kliknij tutaj przycisk + i dodaj PHP Remote Debug.
  2. podać swoje nazwisko, serwer i Ide key = PHPSTORM.
  3. kliknij Zastosuj i Ok (nigdy nie wiem, który z nich zawsze klikam oba, na wszelki wypadek)
  4. teraz na liście na pasku narzędzi pojawi się nowo ustawiony serwer zdalny, przycisk Uruchom (zielona strzałka) zostanie wyłączony.
  5. kliknięcie Start Listen for PHP Debug Connection
  6. kliknięcie, że zielona bug ikonę, aby rozpocząć debugowanie
  7. widok Debug otworzy 2 zakładki: Debugger i konsoli (domyślnie zaznaczona)
  8. zmiana zakładka do Debugger i widać: „Czekanie dla połączeń przychodzących z kluczem ide „PHPSTORM””
  9. otworzyć przeglądarkę
  10. przejdź do adresu URL serwera
  11. aktywować xdebug rozszerzenie pomocnika (kliknięcie na szarym błąd w pasku URL) okaże zielony
  12. , aby sprawdzić, czy wszystko jest w porządku, otwórz konsolę Chrome, kartę Zasoby -> Pliki cookie -> Twój serwer. i sprawdź, czy plik cookie XDEBUG_SESSION z wartością PHPSTORM został utworzony (to właśnie aktywuje zdalne debugowanie xdebug w php)
  13. odśwież stronę i szybko z powrotem na klawiaturę z powrotem do PhpStorm (lub ułóż okna tak, aby widzieć PhpStorm podczas odświeżania przeglądarki)
  14. w widoku Debug i konsoli Debugger będzie krótko zobaczyć "Connected"

TADA!

utworzyć kilka punktów przerwa w kontrolerze (nie używaj konkretnych plików AppKernel.php lub inny Symfony2 jak się skompilowane i nie są nazywane, nawet w trybie dev)


dodany 5.1.2015

oficjalny poradnik można znaleźć tutaj: https://confluence.jetbrains.com/display/PhpStorm/Profiling+PHP+applications+with+PhpStorm+and+Xdebug

0

Wszystko działało, aż do punktu, gdzie ustawić punkt przerwania. Ponieważ Symfony2 jest kontrolerem frontowym, nie wie, który odpowiadający mu plik pasuje do punktu przerwania. Próbowałem skonfigurować mapowania ścieżek, ale bezskutecznie.

Invalid path mappings

+0

To jest dla @gondo –

+0

spróbuj zainstalować 'Symfony2 Plugin' robi wszystkie mapowanie dla ciebie https://plugins.jetbrains.com/plugin/7219 – gondo

Powiązane problemy