我在使用PhpStorm和xdebug调试php时搜索了很多这个问题,我发现有3个或4个链接讨论这个问题,但没有一个是有用的。我的Xdebug的版本是2.2.3,而PhpStorm'version是6.03。我可以逐步调试每一行,除了这一行
$this->link = mysql_connect($this->dbserver, $this->dbuser, $this->dbpass);
PhpStorm显示此错误:正在使用ide键“14841”等待传入连接。 这是我的xdebug配置:
zend_extension="/usr/lib/xdebug.so"
xdebug.remote_autostart=1
xdebug.show_local_vars=1
xdebug.dump.GET=*
xdebug.dump.POST=*
xdebug.dump.SERVER=*
xdebug.auto_trace=On
; default trace output directory /tmp
xdebug.collect_vars = On
xdebug.trace_output_dir=/tmp
xdebug.collect_params=4
xdebug.collect_return=On
xdebug.profiler_enable=Off
; default trace output directory /tmp
;xdebug.profiler_output_dir=/tmp
;xdebug.profiler_enable_trigger=On
;test.php?XDEBUG_PROFILE
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9001
xdebug.remote_handler="dbgp"
xdebug.remote_log = "/tmp"
xdebug.remote_connect_back=1
xdebug.idekey=PHPStorm
我添加这些行“xdebug.remote_connect_back = 1 xdebug.idekey = PHPStorm“,也抵制了ide,它仍然是一样的 我保证这三个参数是正确的。
答案 0 :(得分:5)
对我来说,调试器从未连接过,我看到正在等待带有ide键的传入连接消息,因为我将服务器配置设置为端口9000. 这应该设置为端口80 (或者网络服务器正在侦听的任何其他端口!这让我感到困惑,因为它紧挨着Debugger下拉列表,我认为它是设置Xdebug端口。
Debug端口配置在Settings-> Languagues& Frameworks-> PHP->调试。将此设置为9000或您配置php.ini的任何内容。
请注意,我使用的是IntelliJ IDEA,但它是所有的jetbrains平台。
答案 1 :(得分:4)
您写道:
PhpStorm显示此错误:等待与ide键“14841”的传入连接。
但你使用:
xdebug.idekey=PHPStorm
那些ide键需要匹配。 PHP Storm对此有点好笑。
但是你还说:
我可以逐步调试每一行,除了这一行
$this->link = mysql_connect($this->dbserver, $this->dbuser, $this->dbpass);
他们有什么不同?有没有不同的行为,或者只是不停止?
答案 2 :(得分:1)
我在本地安装中遇到了类似的问题。 我通过取消选择设置来修复它:使用路径映射
在“设置”下找到>语言与框架> PHP>服务器
答案 3 :(得分:1)
我有类似的问题。在我的情况下,它是由误解PHPStorm / IntelliJ PHP调试模式引起的。有两种模式:
当您使用" local"调试,IDE密钥自动生成
这意味着,在http://www.jetbrains.com/phpstorm/marklets/ 创建的原始bookmarklet在本地模式下无效:bookmarklet包含硬编码的IDE密钥,但PHPStorm将生成一个随机的!
解决方案是启用" Remote" PHP调试模式(目前称为" PHP远程调试")"运行/调试配置"并在创建启动配置的右窗格中设置IDE密钥。
" DBGp代理"在全球环境中可能不是你想要的;创建一个" Remote" debug config并在那里设置IDE密钥。