xDebug server esterno
Configurazione extra per usare un server esterno
Si parte tenendo conto che xDebug sia già installato (Lo si può installare con apt-get install php-xdebug
)
Esempio: (/etc/php/7.2/mods-available/xdebug.ini
)
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=192.168.1.160 #Si connettera' a questo ip ad ogni richiesta ricevuta
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true
xdebug.remote_log="/tmp/xdebug.log"
xdebug.remote_connect_back=on #Si connettera' al ip di chi sta servendo
xdebug.remote_connect_back=on
Rende possibile avviare il debug da chiunque nella stessa rete, in caso il server sia in una rete separata e collegato attraverso un router allora non è possibile usare questa funzione dato che il NAT può creare problemi.
Questo mi ha creato molti problemi dato che quando mi connettevo al server(10.0.0.107) dal mio pc (192.168.1.160) il server riceve la richiesta da 10.0.0.1 che è il gateway della rete e quindi cercherà di connettersi a 10.0.0.1:9000 anzichè 192.168.1.160:9000.
192.168.1.160 (PC) -> 192.168.1.254(Gateway) -NAT- 10.0.0.1(Gateway) -> 10.0.0.107 (server)
In tal caso sarà necessario usare xdebug.remote_host=
che si connetterà sempre a 192.168.1.160:9000 senza tenere conto dell'IP da cui ha ricevuto la richiesta. In poche parole se mi connetto dal telefono al server, il server si connetterà sempre al mio computer per il debug.
xdebug.remote_log="/tmp/xdebug.log"
Serve per salvare il log di quello che succede e quindi in caso il debug non funzionasse si può controllare se c'è un errore
xdebug.remote_port=9000
Non è difficile da capire, è la porta
Il resto è necessario
Dal dato client c'è bisogno di settare il pathMappings che varia a seconda del IDE/Code editor.
NetBeans ha bisogno di configurazioni speciali quindi cercatelo su internet
Su Atom e VS code bisogna installare un pacchetto/estensione dal market (Sono gratuiti)
"php-debug" su Atom
"php debug" su VS code
Per settare il PathMapping su Atom si avrà una finestra su cui inserire le path alla cartella contenente i file del server.
Su VS code bisogna modificare il launch.json dall'ingranaggio sul tab "DEBUG"
launch.json modificato:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {
"/var/www/html/": "${workspaceRoot}"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
No Comments