phpstorm和xdebug之间的连接

phpstorm和xdebug之间的连接,php,debugging,phpstorm,xdebug,Php,Debugging,Phpstorm,Xdebug,我配置了phpstormxdebug,并且能够使用断点调试代码。 这些天我更新了php(通过brew)和xdebug,现在我有了带有xdebug 2.3.3的PHP5.5.26。 当我尝试调试测试(和代码)时,phpstorm告诉我:“与xdebug的连接没有建立” 我已经在php.ini中检查了xdebug的配置,如下所示 [xdebug] zend_extension="/usr/local/opt/php55-xdebug/xdebug.so" xdebug.remote_enable=1

我配置了phpstormxdebug,并且能够使用断点调试代码。 这些天我更新了php(通过brew)和xdebug,现在我有了带有xdebug 2.3.3的PHP5.5.26。 当我尝试调试测试(和代码)时,phpstorm告诉我:“与xdebug的连接没有建立”

我已经在php.ini中检查了xdebug的配置,如下所示

[xdebug]
zend_extension="/usr/local/opt/php55-xdebug/xdebug.so"
xdebug.remote_enable=1
xdebug.profiler_enable=1
xdebug.remote_port=9000
xdebug.remote_host=127.0.0.1
xdebug.idekey=PHPSTORM
web服务器调试验证显示

我尝试了不同版本的phpstorm,卸载了e,重新安装了php55/php55 xdebug,但没有成功


您知道如何解决这个问题吗?

安装新的PHP后,如果您在没有正确配置的情况下启动PHP fpm,它默认在端口9000上侦听。以下是您需要编辑的发行版中的“stock”php-fpm.conf:

/usr/local/etc/php/5.5/php fpm.conf

...

;   '[::]:port'            - to listen on a TCP socket to all addresses
;                            (IPv6 and IPv4-mapped) on a specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:8001/usr/local/var/www/htdocs/$1
DirectoryIndex /index.php
它绑定端口9000,将其更改为另一个值(在我的示例中,将其更改为8001)。然后相应地配置apache的配置。下面是我的配置示例配置(Apache2.4),绑定到端口8001

/usr/local/etc/apache2/2.4/extra/proxy fcgi.conf

...

;   '[::]:port'            - to listen on a TCP socket to all addresses
;                            (IPv6 and IPv4-mapped) on a specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:8001/usr/local/var/www/htdocs/$1
DirectoryIndex /index.php

重新启动apache和php fpm,就可以为xdebug使用端口9000了。启动PhpStorm。

另一种解决方法-在php.ini中更改xdebug的端口。例如,到9001:

xdebug.remote_port=9001


之后,您需要在Preferences->Languages&Framework->PHP->Debug中更改PhpStorm中的xdebug端口。Xdebug端口设置为9001。

php.ini
phpstorm
中更改
Xdebug.remote\u port=9001
,对我也有效。

您安装了php\u fpm吗?您是否单击顶部菜单栏上的
开始收听
图标?您是否使用正确的IDE键、端口等配置了DBGproxy(在工具菜单中)。。。如果注册DBGproxy失败,可能有进程已经劫持了9000端口。是的,我在端口9000上添加了DBGproxy,并将PHPSTORM作为idekeyPhpFPM(进程)启动,并且您没有明确地配置它(使用apache),默认情况下它占用端口9000。尝试
killall php fpm
查看它是否正在运行。然后再次尝试调试。如果1)您是唯一一个进行调试的人2)它是本地的,那么您根本不需要DBGproxy。DBGproxy可用于远程调试,特别是当您通过SSH进行调试/与其他开发人员共享同一IP时。@AndreaGiuliano如何调试:通过CLI或通过浏览器?能否显示在调试时在同一环境中捕获的
phpinfo()
输出的xdebug部分(我的意思是:如果通过浏览器调试,则通过浏览器捕获输出)。问题是:CLI和web服务器可能有不同的php.ini。