Używam zdalnego debugowania za pomocą PhpStorm, xdebug i nginx + php-fpm. Nginx repsond z 502 kodem błędu (Bad Gateway), gdy przekazuję XDEBUG_SESSION_START=my_ide_key
na żądanie parametr GET
. W tym samym czasie moje punkty przerwania kodu w IDE działają dobrze. Kiedy nie przekazuję parametru nginx, odpowiadam dobrze sformatowanym kodem HTML i kodem 200. Ale bez tego parametru nie ma debugowania.Xdebug ustaw plik cookie XDEBUG_SESSION zbyt wiele razy
W dzienniku błędów nginx widzę powiadomienia o dużym nagłówku otrzymanym od dostawcy. Staram się zrzucić komunikację między php-fpm i nginx i tylko jedną inną rzeczą jest jednym Set-Cookie
nagłówek:
Set-Cookie: XDEBUG_SESSION=666; expires=Mon, 16-Sep-2013 16:07:28 GMT; path=/
staram się znaleźć, gdy ten pojawi się w nagłówki odpowiedzi. I znalazłem, że w mojej smarty wtyczki Smarty_Internal_Template
destruktory (po ostatniej linii kodu skryptu uruchamiania), jeśli zadzwonię pod numer headers_list()
, widzę rosnącą liczbę nagłówków Set-Cookie (równe wywołania destruktora i liczba nagłówków Set-Cookie). Jestem pewien, że nie ma jednoznacznego wywołania header('Set-Cookie: XDEBUG_SESSION=...')
w moim kodzie. Próbuję uaktualnić i obniżyć wersję xdebug, ale nadal zachowuję się tak samo. Umieść kod remove_header('Set-Cookie')
pod adresem Smarty_Internal_Template
rozwiązuje mój problem, ale to jest brzydki hack!
Jakieś pomysły na temat tej dziwnej sytuacji?
Kilka dodatkowych informacji: wygląda na to, że nagłówek "Set-Cookie" jest wywoływany dla każdej zarejestrowanej funkcji wyłączania (od kiedy zobaczyłem po przejściu przez wykonywanie moich funkcji zamykania). Smarty w ogóle nie jest używany w moim przypadku. Wygląda na to, że jest to funkcja php-shutdown-in-general. – jdunk
Kolejne dziwactwo, które może ale nie musi być powiązane: 'headers_list()' również pokazuje mi, że * dwa * Nagłówki "Set-Cookie" dla XDEBUG_SESSION są już ustawione linią 1 mojego kodu php. – jdunk