【发布时间】:2015-12-02 17:00:45
【问题描述】:
我已按照多个教程使用 PhpStorm 设置 XDebug,但似乎
我一点也不幸运。无论我尝试什么,它总是卡在
等待带有 ide 键 'PHPSTORM' 的传入连接
但是当我用 CTRL + R 重新加载页面时,我可以看到 一秒 已连接。
但是,然后它切换回“等待..”
我已经尝试过 XDebug Chrome 插件和 PHPStorm XDebug Generator 书签
以及在 PHPStorm 中启用 “开始侦听 PHP 调试连接”。
我将 NginX 与 php5-fpm 一起使用并尝试了 tcpdump 9089。
如前所述,它会在一瞬间倾倒它。但后来又丢了..
有人可以帮帮我吗?
我的 php.ini 配置:
[xdebug]
zend_extension="/usr/lib/php5/20121212/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port=9089
xdebug.remote_connect_back=1
xdebug.profiler_enable=1
xdebug.profilter_output_dir="/tmp/xdebug.log"
xdebug.idekey=PHPSTORM
我的 PHPStorm 设置:
[
编辑:我不知道为什么,但删除 xdebug.remote_connect_back=1
并将其替换为 xdebug.remote_host=my.ip.add.ess 使其工作?!
当我阅读文档时,我了解到第一个设置是针对隐式请求
而后一个是用于明确的 ip 请求..
【问题讨论】:
-
如果我尝试调试 PHP 脚本 而不是一个完整的项目(类、函数等),我的 xdebug 的行为类似,也许考虑到你把你的断点。其次,您是否尝试过使用
xdebug.remote_host = ...而不是remote_connect_back? -
当我使用 laravel 项目时,我设置了一个断点,从数据库中获取数据。不,我没有尝试 remote_host,因为我读到
xdebug.remote_connect_back=1是“相同的”,仅适用于所有传入连接而不是特定 IP -
请为此类不成功的调试会话收集并提供 xdebug 日志:xdebug.org/docs/all_settings#remote_log
-
“我不知道为什么,但删除...” 可能是错误的 IP 被自动检测到(你必须查看 xdebg 日志)或者你的防火墙被阻止该 IP 上的连接(例如,因为它属于不同的子网/防火墙配置文件)