Tôi sử dụng gỡ lỗi từ xa với PhpStorm, xdebug và nginx + php-fpm. Nginx repsond với mã lỗi 502 (Bad Gateway) khi tôi vượt qua XDEBUG_SESSION_START=my_ide_key
theo yêu cầu tham số GET
. Đồng thời, các điểm ngắt mã của tôi trong IDE hoạt động tốt. Khi tôi không vượt qua XDEBUG_SESSION_START
tham số nginx đáp ứng với HTML được định dạng tốt và mã 200. Nhưng rõ ràng mà không có tham số này, nó không phải là gỡ lỗi.Xdebug đặt cookie XDEBUG_SESSION quá nhiều lần
Trong nhật ký lỗi nginx tôi thấy thông báo về tiêu đề lớn nhận được từ phía trên. Tôi cố gắng để đổ liên lạc giữa php-fpm và nginx và chỉ có một điều khác nhau là một trong Set-Cookie
tiêu đề:
Set-Cookie: XDEBUG_SESSION=666; expires=Mon, 16-Sep-2013 16:07:28 GMT; path=/
Tôi cố gắng để tìm thấy khi tiêu đề này xuất hiện trong phản ứng. Và tôi thấy rằng trong plugin thông minh của tôi Smarty_Internal_Template
destructors (sau dòng mã cuối cùng của kịch bản khởi động) nếu tôi gọi headers_list()
Tôi thấy số lượng lớn các tiêu đề Set-Cookie (các cuộc gọi hủy bằng nhau và số lượng tiêu đề Set-Cookie). Tôi chắc chắn rằng không có ai rõ ràng gọi header('Set-Cookie: XDEBUG_SESSION=...')
trong mã của tôi. Tôi cố gắng nâng cấp và hạ cấp phiên bản xdebug nhưng vẫn có hành vi tương tự. Đặt mã số remove_header('Set-Cookie')
tại số Smarty_Internal_Template
giải quyết vấn đề của tôi nhưng đó là hack xấu xí!
Bất kỳ ý tưởng nào về tình huống kỳ lạ này?
Một số thông tin bổ sung: có vẻ như tiêu đề 'Đặt cookie' được gọi cho mọi chức năng tắt máy đã đăng ký (từ khi tôi nhìn thấy khi thực hiện các chức năng tắt máy). Smarty không được sử dụng ở tất cả trong trường hợp của tôi. Dường như nó chỉ là một chức năng tắt-chức năng-in-chung-php. – jdunk
Một điều kỳ lạ khác có thể có hoặc không liên quan: 'headers_list()' cũng cho tôi thấy rằng * hai tiêu đề 'Set-Cookie' cho XDEBUG_SESSION đã được đặt bằng dòng 1 của mã php của tôi. – jdunk