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:
- Na Debianie instalujemy XDebug-a:
apt-get install php5-xdebug - 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 !!!
W 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ć. - Restart apache i trzeba sprawdzić co powie na temat XDebuga phpinfo().
- W Eclipse wchodzimy w „Window > Preferences > PHP > Debug”. W sekcji „Default Settings” zmieniamy „PHP Debugger” na XDebug.
- 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.
- Zapisujemy i wychodzimy z Preferencji
- Następnie w widoku „PHP Explorer” prawoklikem na projekt i wybieramy „Debug As > Debug Configurations …”
- 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ć.
- Klikamy „Apply” i „Debug”
- Bawimy się naszą nową zabawką jaką jest debugger pod Eclipse PDT.


Witaj, fajny art! Ale tak się zastanawiam co zrobić jak się ma wykupiony np serwer VPS i na nim trzyma strony. Bo ja w Eclipsce nigdzie nie widzę zęby można było działać jak strona jest hostowana na zdalnym serwerze – albo czegoś nie zrozumiałem.
Pozdrawiam
Teoretycznie jest to możliwe. Ale nie słyszałem o takim zastosowaniu. Trzeba by zainstalować Xdebug na VPS i go tam zainstalować. Następnie otworzyć port dla Xdebug-a na firewallu bo napewno jest zblokowany. Nie wiem czy w ofercie którą masz wykupione jest to możliwe. Następnie używasz X-debuga z zewnętrznym IPkiem Twojego VPS-a.
Zaznaczę, że to są moje czysto teoretyczne rozważania. Jak będę miał chwilę spróbuję wykonać taki test.
Jest tylko jeden problem, jak się tworzy nowy projekt w Eclipse to można zaimportować dane ale tylko lokalnie nie da się wskazać lokalizacji na zdalnym hoście. w phpDesignerze jest to możliwe i pewnie na tym trzeba by było wykonać testy – no też się tym zajmę.
Proponuję spróbować PHPStorm. Soft nie jest darmowy, ale też nie jest bardzo drogi. A jest naprawdę super. Przeciadłem się na niego jakieś 4, czy 5 miesięcy temy i jak narazie ani razu mnie nie zawiódł. Jest tam funkcja deploymentu przez FTP czy podmontowany folder.
Wkrótce może coś napiszę o tym