php - 如何延长我的 Xdebug “会话时间”?
问题描述
我正在使用 xdebug 为我的公司调试一些代码。有时我正在调试某些东西并且调试时间到期,我需要重新启动整个调试过程。
我尝试放入xdebug.remote_cookie_expire_time = 36000
文件php.ini
以将会话延长到 10 小时,但我认为这没有帮助。我想我应该提到我正在尝试在 chrome 上进行调试。
解决方案
连接1:读取ECONNRESET
以上说明连接是由 Web 服务器/代理终止的,但不是 Xdebug 本身。极有可能是您的网络服务器。
当您调试网页时,该脚本仍在网络服务器的眼中执行(仅为您暂停执行)。如果 Web 服务器看到它管理的某个进程/处理程序运行超过最大持续时间限制,它将简单地杀死它(以确保没有资源浪费在挂起处理程序或诸如此类的东西上)。
检查您的网络服务器设置并查看“超时”类型的选项。可能的设置名称取决于您运行 PHP 的方式:php-fpm、FastCGI 或 Apache 模块。
PS请注意,通过 CLI 调试时,这种超时不适用(因为在这种情况下没有“父观察者进程”)。因此,如果可以 - 尝试以这种方式调试您的代码(当然取决于您的代码/它是如何编写的)。
例如,对于 IIS,您可以在这个旧的 PhpStorm 论坛主题中找到解决方案——检查最后一条评论。
- 启动 IIS 管理器
- 去
FastCGI Settings
- 选择您的 PHP 安装,右键单击 -> 编辑...
- 现在增加这些参数的值:
Activity Timeout
和Request Timeout
(我不确定是否真的需要这两个参数,但这就是我所做的)。
这将防止 IIS 过早杀死 PHP 脚本。如果你做类似的设置,你将有大约 700 秒(超过 11 分钟)(见我的截图):
推荐阅读
- python - 在 Pi 上通过 python 的 bluetoothctl 命令
- javascript - Ajax 处理程序类未到达我的 url 地址
- java - URLEncoder 土耳其字符集(Android、Java)
- ios - 父视图在子视图后面
- httprequest - 谷歌将如何识别请求的来源(谷歌登录)
- sql - Oracle 11g SQL 将列数据拆分为多列数据
- ios - 无需情节提要和 segue 编程即可显示 viewController 并传递数据
- python - 已安装 Wsgi,但“模块 mod_wsgi 不存在!”
- c# - 保存对象列表 mvc5
- php - 如何从 00001 生成唯一的随机数并在 Codeigniter MySQL 中维护序列