Usare Eclipse e Xdebug per sviluppare codice PHP su Kubuntu 9.04 Jaunty Jackalope


jaunty-jakaclope-eclipse-xdebug

PHP è un linguaggio estremamente potente nonchè diffuso, e l’accoppiata Eclipse+Xdebug è letteralmente fantastica per facilitare lo sviluppo dei nostri softwares web based.

Prerequisiti

  1. Server Web Apache funzionante con PHP, installabile ad esempio, con il seguente comando da console:
    sudo apt-get install openssl apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt php5-imagick imagemagick libapache2-mod-suphp a2enmod suexec rewrite ssl actions include mysql-client mysql-server mysql-server-5.0
  2. Modulo XDebug, installabile con il seguente comando da console:
    sudo apt-get install php5-xdebug

Configurazione di Eclipse

Dopo aver installato sulla nostra Kubuntu 9.04 Jaunty Jackalope l’ultima versione di Eclipse (Galileo) direttamente dal sito ufficiale www.eclipse.org (versione IDE for Java EE Developers) come già trattato in precedenza nell’articolo “Sviluppare applicazioni per Android usando Kubuntu 9.04“, possiamo installare in Eclipse il plugin PDT (PHP Development Tool) nel seguente modo:

  1. lanciare la nuova versione di Ecplise;
  2. cliccare sul menu “Help” quindi cliccare su “Install New Software…”;
  3. nella finestra che si sarà aperta, incollare nel campo “Work with:” il seguente url
    http://downloads.zend.com/pdt
  4. Accettare i termini di utilizzo e proseguire con l’installazione fino al termine;
  5. Cliccare sul menu “Window” quindi sulla voce “Preference”;
  6. nella finestra che si sarà aperta, cliccare sulla voce “PHP” nella colonna di sinistra;
  7. aprire l’albero della sezione PHP e cliccare su “PHP Executable”, cliccare il tasto “Add…” in alto a destra ed attenersi alle seguenti impostazioni:
    Name: PHP Kubuntu
    Executables path: /usr/bin/php
    PHP ini file (optional): /etc/php5/apache2/php.ini
    PHP Debugger: XDebug

    Quindi cliccare sul tasto “OK” per salvare i dati;

  8. tornati alla finestra precedente, fare click sulla voce appena creata (PHP Kubuntu) e cliccare sul tasto “Set Default” a destra;
  9. cliccare sulla voce “Debug” dell’albero a sinistra, sotto PHP ed attenersi alle seguenti impostazioni
  10. aprire l’albero della sezione PHP, cliccare su “PHP Executables”, cliccare sul tasto “Add…” in alto a destra ed attenersi alle seguenti impostazioni:
    PHP Debugger: XDebug
    Server: lasciare invariato
    PHP Executable: PHP Kubuntu

    Quindi cliccare sul tasto “OK” in basso;

  11. Cliccare sul tasto “OK”;

Configurazione di XDebug
Aprire una console ed editiamo il file di configurazione…

sudo vi /etc/php5/conf.d/xdebug.ini

Aggiungiamo in coda il seguente contenuto opportunamente commentato:

# Abilita la visualizzazionde gli errori
xdebug.default_enable=On

# Abilita il debug da un client remoto, in questo caso usiamo Eclipse
xdebug.remote_enable=On

# Imposta il client che puo' interrogare xdebug e la relativa porta (cambiare ovviamente in base alle proprie esigenze)[qualcuno narrava che non era possibile inserire piu' ip separati da virgola...ma e' una cosa da verificare]
xdebug.remote_host="192.168.1.10"
xdebug.remote_port=9000

# Imposta il protocollo di debug, Eclipse usa DBGP
xdebug.remote_handler="dbgp"

# Crea un file di log
xdebug.remote_log="/var/log/apache2/xdebug.log"

# Abilita sempre il debug client/server, questa voce è da lasciare disabilitata e da usare temporaneamente SOLO nel caso in cui ci siano problemi tra Eclipse e Xdebug, in questo modo avremo la certezza che Xdebug è sempre in ascolto; se per errore la lasciamo abilitata qualsiasi pagina php tenteremo di aprire con il nostro browser la pagina non verrà visualizzata e Xdebug aprirà bensì un socket di ascolto
#xdebug.remote_autostart=On

# Indica la il valore della chiave GET XDEBUG_SESSION_STOP_NO_EXEC che Eclipse passa su ogni script per "dire" a Xdebug di aprire il socket e mettersi in ascolto, questo è il valore di Eclipse.
# Impostando questa direttiva, quando apriremo le nostre pagine php dal browser, dato che non inseremo manualmente questo parametro in GET, Xdebug non aprirà il socket e non si metterà in ascolto, la nostra pagina verrà normalmente processata dal parser PHP e visualizzata, quando invece faremo un debug da Eclipse, Eclipse includerà questo parametro GET e Xdebug interverrà aprendo il socket per Eclipse per la sessione di debug
xdebug.idekey=ECLIPSE_DBGP

Per ulteriori impostazioni, fare riferimento alla documentazione ufficiale di Xdebug.
A questo punto non ci resta che accertarci di non aver fatto errori visualizzando nel browsere una pagina php contenente solo una chiamata alla funzione phpinfo() e controllare che ci sia una sezione dedicata a “xdebug” con tutte le direttive che abbiamo impostato.

Riavviare Apache da terminale con il comando

sudo /etc/init.d/apache2 restart

ed iniziare le nostre sessioni di Debug con Eclipse e Xdebug!

, , , ,

I commenti sono stati disattivati.