IntelliJ PHP调试器无法连接

时间:2016-07-28 13:59:03

标签: php macos debugging intellij-idea phpstorm

我在我的Mac上设置了php 5.6和Apache,并安装了带有php插件的IntelliJ(2016.2)。问题是IDE不想连接到本地服务器。

我在php.ini中添加了以下几行:

[xdebug]
zend_extension=/usr/local/Cellar/php56/5.6.24/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = "9000"

当我运行php -v时,我得到:

  

Zend Engine v2.6.0,版权所有(c)1998-2016 Zend Technologies       与Xdebug v2.4.0,版权所有(c)2002-2016,Derick Rethans

phpinfo()显示

  

xdebug.remote_enable On On   xdebug.remote_port 9000 9000

但是IntelliJ显示:

xdebug.remote_enable 0

我已经检查过,我指向右侧php.ini(已检查的路径以及编辑文件时出现的其他更改)。

我尝试了所有配置(包括使用IDE密钥),但似乎没有任何工作。

有没有办法可以检查调试是否真的有效(即IDE无法识别某些内容或服务器是否有故障),因为此时我不知道问题可能是什么。

1 个答案:

答案 0 :(得分:3)

最好的方法是收集xdebug log这样不成功的调试会话,看看它有什么用。有时调试对你不起作用(IDE没有反应),但xdebug实际连接到某处(例如另一个服务......如下所述)。

您的计算机上可能会运行php-fpm(这取决于您安装PHP的方式 - 您使用的是什么工具)。默认情况下,Php-fpm使用与xdebug相同的TCP 9000端口。

sudo lsof -nP -iTCP -sTCP:LISTEN

在终端中运行此命令 - 它应该告诉(在9000关键字上过滤结果后)哪些服务已在该端口上侦听。

如果确实php-fpm ..然后在两个IDE设置中将xdebug端口从默认9000更改为任何其他端口(例如9001或任何其他通常未使用的端口)+ php.ini将解决这个问题。