xdebug.remote_autostart 设置为 1 带来的响应延迟问题
xdebug.remote_autostart 配置选项用于在不设置断点的情况下自动启动 xdebug 调试会话。然而,在某些情况下,将此选项设置为 1 可能会导致请求延迟,甚至出现 504 超时错误。
这是因为当 xdebug.remote_autostart 设置为 1 时,xdebug 会在请求开始时自动连接到调试客户端,即使没有设置断点。这会给应用程序带来额外的开销,尤其是在您的应用程序不使用 Cookie 的情况下。
解决此问题的首选方法是让应用程序在请求中发送 xdebug_session_start 参数。这个参数可以添加到 get 或 post 参数中,它的存在将告诉 xdebug 开始调试会话。
具体操作如下:
-
get 请求:在请求 url 后添加 ?xdebug_session_start=1,例如:
http://example.com?xdebug_session_start=1
- post 请求:在请求正文中添加 xdebug_session_start=1,例如:
POST / HTTP/1.1 Content-Type: application/x-www-form-urlencoded XDEBUG_SESSION_START=1 ...
通过这种方式,只有在请求中包含 xdebug_session_start 参数时才会启动 xdebug 调试会话,从而避免了响应延迟问题。