Wie aktiviere ich xdebug mit nginx?

Meine Situation ist folgende:

Ich habe eine VM (Ubuntu Server 13.04) mit PHP 5.4.9-4ubuntu2.2, Nginx / 1.2.6, PHP5-Fpm und Xdebug v2.2.1.

Ich entwickle eine App mit PhpStorm 6.0.3 (das ich auf der VM bereitstelle).

Mein Problem ist, wann immer ich versuche, eine Debugsitzung zu starten, die IDE erhält nie eine Verbindungsanforderung vom Webserver (und somit startet die Sitzung nie).

Ich habe viele Empfehlungen zur xdebug-Konfiguration durchgesehen und nichts Nützliches gefunden.

Was mir kürzlich aufgefallen ist, ist, dass ich, wenn ich den XDEBUG_SESSION-Cookie selbst über den Browser setze (Danke FireCookie), meine App debuggen kann ... also schätze ich, dass der Webserver den Cookie nicht an den Client zurücksenden kann.

Die Sache ist, ich verwende die gleiche IDE-Konfiguration in einem anderen Projekt, das auf einer anderen CentOS-basierten VM (mit lighttpd) bereitgestellt wird, und es funktioniert einwandfrei.

Ich habe versucht, mein aktuelles Projekt in eine solche VM zu implementieren (indem ich den Webserver auf NginX umgestellt habe) und es hat in Ordnung funktioniert (Leider habe ich diese VM verloren und kann die Konfiguration nicht überprüfen :().

Also ... hier ist meine NginX-Konfiguration:

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:

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

Jede Idee wird sehr geschätzt. Vielen Dank!

BEARBEITEN:

Eine andere Sache, die ich versuchte, war, eine Sitzung von PHP aus zu starten, und ich sah, dass der Sitzungscookie ohne Probleme erstellt wurde ...

2. Bearbeitung:

Ich glaube, ich habe herausgefunden, wo das Problem liegt: die URI.

Ich habe ein anderes Skript geschrieben, um Konfigurationsparameter und ähnliches auszuprobieren (ein viel einfacheres), und es hat geklappt !.

Schließlich stellte ich fest, dass das Problem darin bestand, dass die Abfrageparameter (d. H .:XDEBUG_SESSION_START=14845) erreichten mein Drehbuch nicht.

Das Problem ist meine Start-URI, die von der Form ist/images/P/P1/P1010044-242x300.jpg. Durch einige virtuelle Host-Konfiguration sollte ich in der Lage sein, es auf etwas Ähnliches zu routen/dispatch.php/images/P/P1/P1010044-242x300.jpgVerwenden Sie den Rest der URI als Parameter. Also ... Ich habe an sich keine Lösung gefunden, aber jetzt habe ich eine praktikable Problemumgehung (indem ich meine Start - URL auf weise)/dispatch.php) das wird es für eine Weile tun. Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage