Come attivare XDebug su Ubuntu-XAMPP

Se hai necessità di attivare XDebug su un server Ubuntu con un ambiente XAMPP e hai provato a cercare supporto in rete, avrai già avuto modo di scoprire che in Internet ci sono ben poche informazioni su come farlo. E quelle che ci sono, sono tra loro discordanti, se non errate.

Ecco allora qui di seguito le istruzioni su come attivare XDebug in una installazione XAMPP su Ubuntu.

Step 1 – Individuare il path dell’estensione xdebug.so

L’installazione di XAMPP comprende già l’estensione XDebug, perciò NON dovrà essere scaricata sul server tramite un comando del tipo:

sudo apt-get install php-xdebug

Invece, va individuato il percorso dove è stato scaricato il file xdebug.so da parte dell’installazione XAMPP, ad esempio tramite il comando “find” da terminale (il percorso standard dove viene installato xampp è /opt/lampp/):

Come attivare XDebug - comando find
Fig. 1 – comando find

Step 2 – Modificare il file php.ini

Il percorso dove risiede il file xdebug.so va indicato all’interno del file /opt/lampp/etc/php.ini come zend_extension (importante: NON come php extension – vedi la terza riga commentata di fig. 2):

Come attivare XDebug - Prima modifica al file php.ini
Fig. 2 – Prima modifica al file php.ini

La modifica in formato testuale:

zend_extension=/opt/lampp/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so

La seconda modifica al file /opt/lampp/etc/php.ini riguarda i parametri di XDebug. I parametri da indicare sono i seguenti:

Come attivare XDebug - Seconda modifica al file php.ini
Fig. 3 – Seconda modifica al file php.ini
  • Il parametro remote_enable attiva il debug.
  • Il parametro remote_log indica il file di log dove viene memorizzato lo scambio di informazioni tra IDE e web server. Se i breakpoint non vengono riconosciuti, nel file di log potrebbero esserci utili indicazioni sul perché del mancato funzionamento.
  • Il parametro remote_host indica l’indirizzo IP del computer dove risiede l’IDE (“localhost”, oppure “127.0.0.1” se l’IDE risiede sul computer dov’è installato xampp).
  • Se l’IDE è configurato sulla porta standard (ovvero 9000, vedi ad esempio la configurazione di NetBeans nei link utili in fondo al post), il parametro remote_port può essere omesso.

Ecco i parametri in formato testuale:

[XDebug]
xdebug.remote_enable=1
xdebug.remote_log="/opt/lampp/temp/xdebug_remote.log"
xdebug.remote_host="192.168.1.3"
;xdebug.remote_port=9000

Step 3 – Verificare che tutto funzioni come atteso

Per verificare se l’estensione xdebug.so è attiva, accedere alla pagina: http://nomesito/dashboard/phpinfo.php. Nella pagina di output deve comparire la sezione con i parametri di XDebug:

Come attivare XDebug - Finestra di output di phpinfo
Fig. 4 – Finestra di output di phpinfo()

Nell’esempio sono state utilizzate le seguenti versioni software:
IDE:
– Product: NetBeans IDE 8.1 (Build 201510222201)
– Java: 1.8.0_60; Java HotSpot(TM) 64-Bit Server VM 25.60-b23
– Runtime: Java(TM) SE Runtime Environment 1.8.0_60-b27
– System: Windows 8.1 version 6.3 running on amd64

Web Server:
– Product: XAMPP Linux 64bit v5.6.28 (PHP version 5.6.28)
– XDebug: Zend Scripting Language Engine v2.6.0 con XDebug v2.2.5
– System: Ubuntu 16.04 LTS 64bit, con ambiente grafico Unity

Link utili:

Protocollo di comunicazione DBGP (come interpretare quanto viene registrato nel remote.log)

Configurazione di NetBeans per il debugging (in lingua inglese)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *