作为进一步的参考......以防有人遇到相同/类似的问题......(60秒超时)
禁用第一次仔细检查xdebug.remote_autostart
以避免自动连接。
正如所@LazyOne
指出的,并@Tomáš Fejfar
解释为好。
xdebug.remote_autostart
类型:布尔值,默认值:0
通常您需要使用特定的 HTTP GET/POST 变量来启动远程调试(请参阅远程调试)。当此设置设置为 1 时,Xdebug 将始终尝试启动远程调试会话并尝试连接到客户端,即使 GET/POST/COOKIE 变量不存在。
有了这个,当调试cookie不存在时,我恢复了正常速度
......
但是!......当cookie被手动激活时,我仍然从服务器得到非常慢的响应(60秒超时)。
因此,在阅读了Xdebug 文档并检查了我的配置后,
我发现我启用了xdebug.remote_connect_back
xdebug.remote_connect_back
类型:布尔值,默认值:0,在 Xdebug > 2.1 中引入
如果启用,xdebug.remote_host 设置将被忽略,Xdebug 将尝试连接到发出 HTTP 请求的客户端。它检查 $_SERVER['REMOTE_ADDR'] 变量以找出要使用的 IP 地址。请注意,没有可用的过滤器,任何可以连接到网络服务器的人都可以开始调试会话,即使他们的地址与 xdebug.remote_host 不匹配。
因此,对服务器的所有调用都在尝试调试,这使得服务器非常缓慢且不安全。
禁用此选项并验证我有明确定义的xdebug.remote_host
指向我的机器,我得到了可接受的响应〜1秒。并且仅在启用 cookie 时。
简而言之,我的配置文件最终是这样的:
zend_extension = "/absolute/path/to/your/xdebug-extension.so"
xdebug.remote_enable = 1
xdebug.remote_autostart = 0
xdebug.remote_connect_back = 0
xdebug.remote_host = "192.168.1.2"
xdebug.remote_port = 9000
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = req
xdebug.remote_log = "/tmp/xdebug.log"
etc/php5/conf.d/xdebug.ini
注意:我在文件中而不是在php.ini中进行了此更改
编辑:
正如@Riimu和@jdunk指出的那样,感谢两者,您可能还需要设置:
* 详情请参阅评论
xdebug.remote_cookie_expire_time = 0
// or
xdebug.remote_cookie_expire_time = -9999