记录windows下phpstorm + xdebug一次失败的经历

这两天心血来潮想在本地配置一个xdebug方便调试PHP代码,但是按照网上的教程折腾完,最终通信没有成功,暂时还未找到不成功的原因,因为还有别的事情要做所以暂时先将此放弃,回头得空在研究,现将操作步骤记录如下:

工具-版本

PhpStorm版本:8.0.3 破解版

PHP版本:PHP Version 5.6.11

配置PHP使支持xdebug

前往xdebug的官方网站下载PHP的xdebug扩展:https://xdebug.org/download.php

值得注意的是您需要下载和您电脑上PHP版本相关联的扩展。根据自己的版本我下载的是 php_xdebug-2.5.1-5.6-vc11-nts-x86_64.dll

将下载下来的扩展,复制到PHP安装目录的 ext 文件夹下,然后打开php.ini文件,在最后一行添加,根据自己需要选择配置。

[Xdebug]

;指定Xdebug扩展文件的绝对路径

zend_extension=”E:/nginx-php/php-5.6.11-x64/ext/php_xdebug-2.5.1-5.6-vc11-nts-x86_64.dll”

;启用性能检测分析

xdebug.profiler_enable = 1

;启用代码自动跟踪

xdebug.auto_trace=1

;允许收集传递给函数的参数变量

xdebug.collect_params=1

;允许收集函数调用的返回值

xdebug.collect_return=1

;指定堆栈跟踪文件的存放目录

xdebug.trace_output_dir=”E:/apiweb/xdebug”

;指定性能分析文件的存放目录

xdebug.profiler_output_dir=”E:/apiweb/xdebug”

;xdebug.profiler_output_name = cachegrind.out.%t.%p

xdebug.profiler_output_name = “cache.out.%t-%s”

;这里是调试器的关键字 在Chrome以及FireFox中插件配置的时候要用到

xdebug.idekey=”PHPSTORM”

;是否允许远程终端 这里标示开启

;xdebug.remote_enable = 1

;这里表示服务器的监听端口。注意此项需要编辑器的端口保持一致

xdebug.remote_port=9003

;这里必须设置为0,为了能使用浏览器插件 xdebug helper配合调试

xdebug.remote_autostart = 0

xdebug.profiler_append = 0

xdebug.profiler_enable_trigger = 0

xdebug.remote_handler = “dbgp”

xdebug.remote_host = 127.0.0.1

添加完之后,重启PHP,用phpinfo查看出现xdebug,表示安装成功。

PhpStorm配置

接下来需要将PHP和编辑器通信。

一、打开PhpStorm的设置选项 file->settings

二、选择PHP的版本

三、配置Servers

四、配置debug,只需要更改 debug port的端口号,其余的保存默认即可(注意:此端口号需要和php.ini中配置的一致)

五、配置DBGp Proxy选项(注:IDE KEY需要和php.ini配置的xdebug.idekey=”PHPSTORM” 保持一致,端口和xdebug.remote_port=9003保持一致)

至此配置的主要项已经完成,接下来的配置也是我最犹豫的地方,暂时还没搞懂为啥要这么配置,但是网上教程好多都会这么配置,因此一并记录如下;

在编辑器的最上方点击 edit_config

保存后,选择自己创建的那个主体。

火狐浏览器设置

在火狐浏览器的插件中心下载 theeasiestxdebug

在IDE KEY下填写(注意和php.ini配置的xdebug.idekey=”PHPSTORM”保持一致)

(提醒若是用的谷歌浏览器请用:xdebug helper 设置方法和theeasiestxdebug类似)

调试

1、浏览器下输入要调试的页面,点击又上角的爬虫。

2、PhpStorm开启监听

3、打断点

4、浏览器刷新,见证奇迹的时刻,您的编辑器正常会有反应,会看到下方的控制台有信息输出,如图(下图为正确显示图)。但我照此步骤配置完,编辑器什么反应都没有,多方查找也未曾找到原因,在此先留下记录吧,日后再找找原因。

问题解决

通过同事的帮忙问题已经解决了,真是一个小问题难道英雄汉啊,主要原因在于php.ini的配置

(此方法必须开启,必须开启才能和本地通信,这是最主要的,之后就看debug的错误提示,将映射关系去掉,由于同事操作太快了,这部分没截图记录下来,过后在找没找到,大家只能根据错误提示来啦!)

;是否允许远程终端 这里表示开启

xdebug.remote_enable = 1

2、若是用的vagrant,远程配置xdebug一定要注意一个地方

xdebug.remote_host = 127.0.0.1 #配置远程的host,这个xdebug.remote_host 的ip要填你的phpstorm,也就是你的windows所在的ip。

3、zend_extension 的扩展目录为make install后的目录。

/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

贡献一个配置:

[xdebug]

zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so

xdebug.remote_host = 10.20.0.110

xdebug.remote_enable = 1

xdebug.remote_port = 9003

xdebug.remote_handler = dbgp

xdebug.remote_mode = req

xdebug.trace_output_dir="/usr/local/php/xdebug"

xdebug.profiler_output_dir="/usr/local/php/xdebug"

xdebug.idekey="www"

xdebug.remote_autostart = 0

xdebug.collect_return=1

xdebug.collect_params=1

xdebug.auto_trace=1

xdebug.profiler_enable = 1

参数意思请自行查找。

相关文章

文章浏览阅读2.2k次,点赞6次,收藏20次。在我们平时办公工作...
文章浏览阅读1k次。解决 Windows make command not found 和...
文章浏览阅读3.2k次,点赞2次,收藏6次。2、鼠标依次点击“计...
文章浏览阅读1.3w次。蓝光版属于高清版的一种。BD英文全名是...
文章浏览阅读974次,点赞7次,收藏8次。提供了更强大的功能,...
文章浏览阅读1.4w次,点赞5次,收藏22次。如果使用iterator的...