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.
Indice dei contenuti
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/):
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):
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:
- 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:
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)