Instalacja debugera dla PHP

Instalacja i używanie debugera Xdebug w środowisku Xampp na Windows 7. Kroki oparte na instrukcji ze strony Netbeansa (patrz źródło 1).

  1. Kopiujemy wyjście  phpinfo()  do schowka. Można to zrobić szybko wklejając w konsoli Windowsa (Win + r, cmd) linię php -r "echo phpinfo();" | clip .
  2. Wklejamy zawartość schowka na stronie http://xdebug.org/wizard.php w polu tekstowym i klikamy Analyse my phpinfo() output.
  3. Po załadowaniu strony wykonujemy kroki z sekcji Instructions:
    • pobieramy wskazany plik *.dll
    • przenosimy pobrany plik do wskazanego katalogu
    • edytujemy plik php.ini, żeby dodać do niego odpowiedni wpis (np. taki zend_extension = D:\xampp\php\ext\php_xdebug-2.3.2-5.4-vc9.dll )
  4. Do pliku php.ini (tego samego co w punkcie wyżej) dopisujemy linie wylistowane poniżej. Wartość idkey jest przykładowa – można zamiast niej użyć równie dobrze słowa kot, byle zrobić to w każdym miejscu wymienionym dalej.
  5. Restart apache’a.
  6. Uruchamiamy skrypt testowy w linii komend (Win + r, cmd)
  7. Następnie w przeglądarce wchodzimy na http://localhost/index.php?XDEBUG_SESSION_START=debug123
  8. Jeżeli w tym momencie w konsoli pojawi się poniższy napis, to Xdebug działa. Jeżeli nie, to może coś wcześniej nie zostało wykonane prawidłowo.
  9. Jak widać w punkcie 7. aktywować Xdebuga można przez ustawienie w GET zmiennej XDEBUG_SESSION_START na wartość klucza ustawioną w php.ini (np. na użytą w tym wpisie debug123). Bardziej wygodną i łatwiejszą w zarządzaniu metodą jest ustawianie ciasteczka XDEBUG_SESSION; też na wartość debug123.
  10. Kiedy już Xdebug działa można przejść do przygotowania przeglądarki. Tak by łatwo można było dodawać i usuwać ciasteczko.
    • Firefox. Możemy skorzystać z wtyczki The easiest Xdebug.
      • W jej opcjach musimy ustawić IDE key for remote debugging na wartość debug123.
      • U góry przeglądarki po prawej pojawią się 3 nowe ikony, z których pierwsza ustawia/usuwa ciasteczko.Ikony The Easiest Xdebug
    • Chrome. Pomoże nam wtyczka Xdebug helper.
      • W opcjach ustawiamy IDE key na Other i w polu które się pojawi wpisujemy debug123.
      • Wtyczka dodaje ikonę (przedstawioną niżej). W rozwijanym menu mamy opcję Debug (do włączania) i Disable (do wyłączania).Menu Xdebug helper
  11. W programie Netbeans ustawiamy:
    • W górnym menu: Tools > Options
    • Potem w oknie: PHP > Debugging wpisujemy w polu Session ID wartość debug123.
    • OK
  12. Następnie (zakładam, że macie już otwarty jakiś projekt):
    • W górnym menu: File > Project Properties (<nazwa projektu>)
    • W oknie (po lewej): Run Configuration
    • Przycisk: New…
      • W oknie dialogowym wpisujemy jakąś nazwę np. projektu. i OK
    • Przycisk: Advanced…
      • Wybieramy opcję Do Not Open Web Browser i OK

        To moja osobista preferencja, bo korzystam z domen *.local i nie udało mi się na razie dobrze połączyć tych domen z opcjami debugera w Netbeansie.

    • OK
  13. W tym momencie wszystko mamy już przygotowane i możemy przejść do debugowania.
    • W Netbeansie używamy skrótu <Ctrl> + <F5> (lub klikamy ikonkę przedstawioną niżej).ikonaDebug
    • W przeglądarce włączamy ciasteczko za pomocą opisanej w punkcie 10. wtyczki.
    • Odświeżamy stronę w przeglądarce.
    • Wracamy do Netbeansa i mamy tam już kod zatrzymany na pierwszej linii aplikacji – to zatrzymywanie na pierwszej linii jest konfigurowalne (Tools > Options > PHP >Debugging).
Samego sposobu debugowania nie uważam za konieczne opisywać – zakładam, że skoro ktoś już tu trafił, to wie o co w tym chodzi. Życzę owocnego debugowania!

Źródła i pomocne linki:

  1. https://netbeans.org/project_downloads/www/php/debug-setup-flowchart.pdf (kopia)
  2. https://blogs.oracle.com/netbeansphp/entry/howto_check_xdebug_installation
  3. http://stackoverflow.com/questions/17613726/netbeans-shows-waiting-for-connection-netbeans-xdebug
  4. http://devzone.zend.com/1120/introducing-xdebug/
  5. http://articlebin.michaelmilette.com/making-xdebug-work-with-netbeans-on-windows/
  6. http://wiki.netbeans.org/HowToConfigureXDebug#Overview
  7. https://netbeans.org/kb/docs/php/debugging.html#gettingReady

Możliwość komentowania jest wyłączona.