Podczas codziennej pracy programisty niezastąpionym narzędziem jest dobry debugger. Znane mi dwa sensowne narzędzia do debugowania kodu PHP które można zintegrować z Eclipse PDT to:

  • Zend Debugger
  • XDebug

Moje pierwsze podejście zrobiłem pod Zend Debugger. Niestety po dwóch dniach próby połączenia się z debuggerem na zdalnym hoście zwątpiłem. Gdzieś doczytałem się informacji, że Eclipse PDT != Zend Studio, co jest oczywiste. Natomiast Zend Debugger jako zdalny debugger działa tylko w Zend Studio. Zacząłem więc próby połączenia PDT z XDebugiem. Okazało się to proste, aczkolwiek trzeba zwracać uwagę na kilka ważnych rzeczy, które nie są oczywiste.

Więc do dzieła.

Maszyna zdalna na której zainstalowałem XDebug to Debian postawiony na Vmware. Natomiast Eclipse PDT miałem odpalone na Windows 7.

Oto kolejne kroki:

  1. Na Debianie instalujemy XDebug-a:
    apt-get install php5-xdebug
  2. Edytujemy plik /etc/php5/conf.d/xdebug.ini w pliku tym powinno się znaleźć:

    zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so
    xdebug.remote_enable=On
    xdebug.remote_host=[Adres_ip]
    xdebug.remote_port=9000
    xdebug.remote_handler=dbgp

    Ważna uwaga !!!
    remote_host należy wpisać adres IP  komputera z którego odpalamy Eclipse PDT. Pamiętajmy aby wpisać IP w sieci LAN. Po wpisaniu adresu hosta Vmware niestety nie chce działać prawidłowo. Trzeba by w jakieś proxy się bawić.
  3. Restart apache i trzeba sprawdzić co powie na temat XDebuga phpinfo().
  4. W Eclipse wchodzimy w „Window > Preferences > PHP > Debug”. W sekcji „Default Settings” zmieniamy „PHP Debugger” na XDebug.
  5. Następnie wybieramy w preferencjach „PHP > PHP Servers” i edytujemy domyślny serwer. Oczywiście wpisujemy przyjemną dla nas nazwę, a następnie adres URL projektu (dla każdego projektu który chcemy debugować trzeba stworzyć oddzielny serwer). W „Path Mapping” należy zdefiniować mapowanie ścieżek na serwerze na ścieżki lokalne w projekcie.
  6. Zapisujemy i wychodzimy z Preferencji
  7. Następnie w widoku „PHP Explorer” prawoklikem na projekt i wybieramy „Debug As > Debug Configurations …”
  8. Tworzymy konfigurację dla „PHP Web Page”. Definiujemy następujące opcje:
    • Server Debugger: XDebug
    • PHP Server: wybieramy odpowiedni zdefiniowany wcześniej serwer lub definiujemy nowy jak w pkt. 5
    • File: wybieramy bootstrap projektu najczęściej index.php
    • Break at First Line: Warto zostawić aby sprawdzić czy działa. Natomiast później można wyłączyć.
    • URL: Najczęściej opcja „Auto Generate” nie da nam odpowiednich efektów. Także odznaczamy ją i wpisujemy własny URL który chcemy debugować.
  9. Klikamy „Apply” i „Debug”
  10. Bawimy się naszą nową zabawką jaką jest debugger pod Eclipse PDT.

« »