Fjärrdebuggning av PHP med MacOS

Hur kan man debugga PHP-kod på våra VPS:er från sin Mac? Om man inte kör en integrerad IDE kan MacGDBp vara ett alternativ.

MacGDBp en PHP-debugger för Mac OS som bygger på öppen källkod. Den kan hämtas hem på följande URL:

https://www.bluestatic.org/software/macgdbp/

Det krävs även ett tillägg till PHP som heter xdebug. Tyvärr är Ubuntu Lucid-versionen av xdebug för gammal för MacGDBp 1.3.1 som jag testade. Jag var tvungen att ladda ner version 2.1.0 från Ubuntu Maverick för för att kunna se värdena på variabler. Den kan installeras på följande sätt på våra VPS:er

Ladda hem paketet till lämplig mapp under /mnt/persist

cd /mnt/persist/packages
wget http://se.archive.ubuntu.com/ubuntu/pool/universe/x/xdebug/php5-xdebug_2.1.0-1_amd64.deb

Installera paketet:

dpkg -i php5-xdebug_2.1.0-1_amd64.deb

Lägg till följande konfiguration i /mnt/persist/etc/php5.ini. Konfigurationen talar om för xdebug att ansluta till debuggern via localhost:9000, en port som vi kan göra en omvänd portforward på via SSH till din egen Mac.

xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000

Starta om Apache2:

/etc/init.d/apache2 restart

För att behålla xdebug vid omstart kan du lägga till följande i /mnt/persist/cloudnet/rc.local

dpkg -i /mnt/persist/packages/php5-xdebug_2.1.0-1_amd64.deb
/etc/init.d/apache2 restart

Nu återstår bara att sätta upp SSH-tunneln. Detta kommando kör du lokalt på din Mac:

ssh -R 9000:localhost:9000 root@vps-xxxx.cloudnet.se

Nu är allting klart för att starta en debug-session med xdebug!