6

PhpStorm、xdebug、nginx + php-fpm でリモート デバッグを使用します。XDEBUG_SESSION_START=my_ide_keyリクエストGETパラメータを渡すと、Nginx が 502 エラーコード (Bad Gateway) を返します。同時に、IDE のコード ブレークポイントは正常に機能します。パラメータを渡さない場合XDEBUG_SESSION_START、nginx は適切にフォーマットされた HTML とコード 200 で応答します。

nginx エラー ログに、アップストリームから受信した大きなヘッダーに関する通知が表示されます。php-fpm と nginx の間の通信をダンプしようとしましたが、1 つのSet-Cookieヘッダーだけが異なります。

Set-Cookie: XDEBUG_SESSION=666; expires=Mon, 16-Sep-2013 16:07:28 GMT; path=/

このヘッダーが応答に表示されるタイミングを見つけようとします。そして、smarty プラグインSmarty_Internal_Templateデストラクタ (起動スクリプトの最後のコード行の後) を呼び出すheaders_list()と、Set-Cookie ヘッダーの量が増えていることがわかりました (デストラクタ呼び出しと Set-Cookie ヘッダーの量が等しい)。header('Set-Cookie: XDEBUG_SESSION=...')私のコードには明示的な呼び出しが1つもないと確信しています。xdebug のバージョンをアップグレードおよびダウングレードしようとしましたが、動作は同じです。コードremove_header('Set-Cookie')を配置Smarty_Internal_Templateすることで問題は解決しますが、それは醜いハックです!

この奇妙な状況について何か考えはありますか?

4

1 に答える 1