La mia situazione è la seguente:Come abilitare xdebug con nginx?
ho un VM (server Ubuntu 13.04) con PHP 5.4.9-4ubuntu2.2, nginx/1.2.6, php5-fpm e Xdebug v2.2.1.
Sto sviluppando un'applicazione utilizzando PhpStorm 6.0.3 (che distribuisco sulla VM).
Il mio problema è che ogni volta che provo ad avviare una sessione di debug, l'IDE non riceve mai una richiesta di connessione dal server web (e quindi la sessione non parte mai).
Ho esaminato un sacco di consigli sulla configurazione di xdebug e non ho trovato nulla di utile.
Quello che ho capito di recente è che se imposto il cookie XDEBUG_SESSION tramite il browser (Grazie FireCookie) posso eseguire il debug della mia app ... quindi suppongo che ci sia qualcosa che impedisce al server web di inviare i cookie al client.
Il fatto è che sto utilizzando la stessa configurazione IDE in un progetto diverso, che viene distribuito in una diversa VM basata su CentOS (con lighttpd) e funziona perfettamente.
ho cercato di distribuire il mio progetto in corso in tale VM (cambiando il server web per Nginx) e ha funzionato allright (Purtroppo ho perso che VM e non riesco a controllare la configurazione :().
Quindi ... ecco il mio config nginx:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name localhost;
location/{
try_files $uri $uri/ /dispatch.php;
}
#
location ~ \.php$ {
root /var/www/bresson/web;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index dispatch.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9009;
}
}
FPM config (/etc/php5/fpm/pool.d/www.conf):
listen = /var/run/php5-fpm.sock
xdebug.ini:
01.235.zend_extension=/usr/lib/php5/20100525/xdebug.so
xdebug.remote_port=9000
xdebug.remote_enable=On
xdebug.remote_connect_back=On
xdebug.remote_log=/var/log/xdebug.log
Qualsiasi idea sarà molto apprezzata. Grazie!
EDIT:
Un'altra cosa che ho provato è stato quello di avviare una sessione da PHP e ho visto che il cookie di sessione è stato creato senza alcun problema ...
secondo Edit:
penso io trovato dove si trova il problema: l'URI.
Ho scritto un altro script per provare i parametri di configurazione e roba (molto più semplice), e ha funzionato subito !.
Quindi alla fine ho capito che il problema era che i parametri della query (ad esempio XDEBUG_SESSION_START=14845
) non raggiungevano il mio script.
Il problema è il mio URI iniziale, che ha il formato /images/P/P1/P1010044-242x300.jpg
. Attraverso alcune configurazioni di host virtuali dovrei essere in grado di indirizzarlo a qualcosa del genere /dispatch.php/images/P/P1/P1010044-242x300.jpg
e utilizzare il resto dell'URI come parametri. Quindi ... Non ho trovato una soluzione di per sé, ma ora ho una valida soluzione (puntando il mio URL iniziale a /dispatch.php
) che lo farà per un po '. Grazie