Guida per Debuggare PHP in NetBeans

Ecco una mini guida per poter eseguire il debug di un sito sviluppato in PHP con NetBeans, nota IDE di sviluppo .

  1. Installare il modulo PHP Xdebug , seguire rigorosamente le istruzioni del sito di riferimento  Xdebug.org
  2. Trovare il path del modulo installato, il file xdebug.so in linux o xdebug.dll in windows
  3. Modificare il file di configurazione utilizzato da dal web server per interpretare le pagine php ( il file php.ini ) ed aggiungere le seguenti righe di configurazione ( potrebbero essere già presenti )

    [XDebug]
    ;; Only Zend OR (!) XDebug
    ; zend_extension_ts="C:xamppphpextphp_xdebug.dll"
    ; Modify the filename below to reflect the .dll version of your xdebug
    ;zend_extension_debug=/usr/lib64/php5/extensions/xdebug.so
    zend_extension_debug=/usr/lib/php5/extensions/xdebug.so
    xdebug.remote_enable=true
    xdebug.remote_host=localhost
    xdebug.remote_port=9010
    xdebug.remote_handler=dbgp

    nel mio caso su una macchina linux con un apache web server il file era /etc/php5/apache2/php.ini .La mia configurazione prevede

    • Listener del debugger sulla macchina localhost ( in locale ) sulla porta 9010
    • Protocollo dbgp , spesso è questo il problema se in NetBeans non funziona

  4. Se si ha un firewall tra il web server e l'ambiente di sviluppo dove gira NetBeans verificare che non filtri la porta configurata, nella mia opensuse dove tutto era in localhost inizialmente ho avuto questo problema
  5. Restartare il Web Server
  6. Per essere sicuri che il modulo sia attivo, creare una pagina php con il seguente codice

    <?php

    // Show all information, defaults to INFO_ALL
    phpinfo();

    ?>

    ed accedere alla pagina web, tra i moduli installati dovrà comparire xdebug

    Info php - Modulo Xdebug

  7. In NetBeans , nelle Tools -> Options -> PHP , impostare nella sezione Debugging la porta configurata , è anche possibile impostare che ad ogni inizio pagina il NetBeans si ferma alla prima riga in Debug Mode

    Configurazione Generale Netbeans


  8. In NetBeans, verificare che i progetti non abbiamo impostato, se non voluto, un proxy debug

    Proxy Degug

    verificare anche la URI che avvia il sito web

    URI Sito progetto

  9. Avviare il debug e provare il piacere di vedere a run time il flusso della nostra pagina web premendo il tasto Debug Project

    Menu Run Debug

  10. Impostare i breakpoint e debuggare utilizzando i tasti soliti di un debugger .... e buon divertimento !

    Debugging


    Link con sessione di debug