Uso il debug remoto con PhpStorm, xdebug e nginx + php-fpm. Nginx repsond con 502 codice di errore (Bad Gateway) quando passo XDEBUG_SESSION_START=my_ide_key
nel parametro richiesta GET
. Allo stesso tempo, i miei breakpoint di codice in IDE funzionano bene. Quando non passo il parametro XDEBUG_SESSION_START
, nginx risponde con codice HTML ben formattato e codice 200. Ma ovvio senza questo parametro non è il debug.Xdebug set cookie XDEBUG_SESSION troppe volte
Nel registro degli errori di nginx vengono visualizzate le notifiche relative alla grande intestazione ricevuta da monte. Io cerco di scaricare la comunicazione tra PHP-FPM e nginx e solo una cosa diversa è uno Set-Cookie
intestazione:
Set-Cookie: XDEBUG_SESSION=666; expires=Mon, 16-Sep-2013 16:07:28 GMT; path=/
cerco di trovare quando questo intestazioni appare in risposta. E ho trovato questo nel mio smarty plug-in Smarty_Internal_Template
distruttori (dopo l'ultima riga di codice del mio script di avvio) se chiamo headers_list()
vedo crescere la quantità di intestazioni Set-Cookie (pari chiamate di distruttore e quantità di intestazioni Set-Cookie). Sono sicuro che non c'è nessuna chiamata esplicita header('Set-Cookie: XDEBUG_SESSION=...')
nel mio codice. Provo ad aggiornare e downgrade la versione di xdebug, ma ho lo stesso comportamento. Il codice di luogo remove_header('Set-Cookie')
a Smarty_Internal_Template
risolve il mio problema ma quello è brutto hack!
Qualche idea su questa strana situazione?
Alcune informazioni aggiuntive: sembra che l'intestazione 'Set-Cookie' venga chiamata per ogni funzione di arresto registrato (da quando ho visto l'esecuzione delle mie funzioni di spegnimento). Smarty non viene usata affatto nel mio caso. Sembra che sia solo una funzione di php-shutdown-in-general. – jdunk
Un'altra stranezza che può essere correlata o meno: 'headers_list()' mi mostra anche che * due * intestazioni Set-Cookie per XDEBUG_SESSION sono già impostate dalla riga 1 del mio codice php. – jdunk