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

精选文章 2017年3月10日 8.29K

这两天心血来潮想在本地配置一个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

xdebug 2.5.1

将下载下来的扩展,复制到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,表示安装成功。

xdebug-phpinfo

PhpStorm配置

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

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

二、选择PHP的版本
phpversion-phpstorm

三、配置Servers
servers-phpstorm

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

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

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

在编辑器的最上方点击 edit_config
edit_config

editconfig

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

火狐浏览器设置

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

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

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

调试

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

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

问题解决

通过同事的帮忙问题已经解决了,真是一个小问题难道英雄汉啊,主要原因在于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

参数意思请自行查找。

 


关注微信公众号『PHP学习网

第一时间了解最新网络动态
关注博主不迷路~

版权声明:转载请注明 PHP学习网 » 记录windows下phpstorm + xdebug一次失败的经历
分享到:
赞(0)

文章评论

您需要之后才可以评论
0点赞 1评论 收藏 QQ分享 微博分享

PHP学习网

PHP学习网