Info
Content

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
Back to top