Jak włączyć xdebug za pomocą nginx?

Moja sytuacja jest następująca:

Mam maszynę wirtualną (serwer Ubuntu 13.04) z PHP 5.4.9-4ubuntu2.2, nginx / 1.2.6, php5-fpm i Xdebug v2.2.1.

Opracowuję aplikację wykorzystującą PhpStorm 6.0.3 (którą wdrażam na maszynie wirtualnej).

Mój problem polega na tym, że gdy próbuję uruchomić sesję debugowania, IDE nigdy nie pobiera żądania połączenia z serwera WWW (a więc sesja nigdy się nie uruchamia).

Przejrzałem wiele zaleceń dotyczących konfiguracji xdebug i nie znalazłem niczego użytecznego.

Ostatnio zdałem sobie sprawę, że jeśli sam ustawię plik cookie XDEBUG_SESSION za pomocą przeglądarki (Thanks FireCookie), mogę debugować moją aplikację ... więc zgaduję, że jest coś, co powstrzymuje serwer od wysłania cookie z powrotem do klienta.

Rzecz w tym, że używam tej samej konfiguracji IDE w innym projekcie, który jest wdrażany w innej maszynie wirtualnej opartej na CentOS (z lighttpd) i działa dobrze.

Próbowałem wdrożyć mój obecny projekt do takiej maszyny wirtualnej (zmieniając serwer WWW na NginX) i wszystko działało poprawnie (Niestety straciłem tę maszynę wirtualną i nie mogę sprawdzić konfiguracji :().

Więc ... oto moja konfiguracja 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:

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

Każdy pomysł zostanie bardzo doceniony. Dzięki!

EDYTOWAĆ:

Inną rzeczą, którą próbowałem, było rozpoczęcie sesji od php i zobaczyłem, że plik cookie sesji został utworzony bez problemu ...

2. edycja:

Myślę, że znalazłem tam problem: URI.

Napisałem inny skrypt, aby wypróbować parametry konfiguracyjne i rzeczy (znacznie prostsze) i działało poprawnie!

Ostatecznie pomyślałem, że problem polega na tym, że parametry zapytania (tj .:XDEBUG_SESSION_START=14845) nie dotarły do ​​mojego scenariusza.

Problemem jest mój początkowy URI, który ma postać/images/P/P1/P1010044-242x300.jpg. Poprzez konfigurację wirtualnego hosta powinienem być w stanie skierować go do czegoś podobnego/dispatch.php/images/P/P1/P1010044-242x300.jpgi użyj pozostałych URI jako parametrów. Więc ... Nie znalazłem rozwiązania jako takiego, ale teraz mam realne obejście (wskazując mój początkowy adres URL na/dispatch.php), który zrobi to przez chwilę. Dzięki

questionAnswers(1)

yourAnswerToTheQuestion