PHPStorm配置xdebug调试php代码

PHPStorm配置xdebug调试php代码

V20160907

理由:

当项目越来越复杂,排错就越发困难。
你以为代码是这么运行的,但就是有未想到的功能导致流程变得不可捉摸。
此时我们需要调试,调试……

附注:PhpStorm 内建了 Zend Debugger 和 Xdebug 支持

步骤(windows):

  1. (服务端)安装配置xdebug
      1. 下载适合当前PHP版本的dll文件,
        官方下载地址:<u>http://xdebug.org/download.php</u>;
      1. 将下载的dll文件放入php安装目录下的扩展文件夹(通常为ext文件夹)中;
      1. 设置 php.ini 配置文件,配置xdebug

xdebug详细配置参看官方配置文档

设置内容如下

; XDEBUG Extension

[xdebug]

; 扩展文件路径

zend_extension = “E:/wamp/bin/php/php5.3.10/zend_ext/php_xdebug-2.1.2-5.3-vc9.dll”

;zend_extension_ts = “d:/wamp/php/ext/php_xdebug-2.1.2-5.2-vc6.dll”

;任意IDEKey,这里设定为PHPSTORM

xdebug.idekey = “PHPSTORM”

;xdebug.collect_return = On

; 追踪

;xdebug.auto_trace = On

;xdebug.trace_output_dir = “d:/wamp/php/debuginfo”

; 效能评测器

;xdebug.profiler_enable = on

;xdebug.profiler_output_dir = “d:/wamp/php/debuginfo”

;xdebug.profiler_enable_trigger = on

;xdebug.profiler_output_dir = “E:/wamp/tmp”

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

; 远程调试

xdebug.remote_enable = On ; 启用远程调试

xdebug.remote_mode = “req”

; 远程主机的IP地址或域名

xdebug.remote_host = “localhost” ; 远程服务器

xdebug.remote_port = 9001 ; 远程服务器端口

xdebug.remote_handler = “dbgp” ;

;xdebug.remote_autostart = 1 ;

; xdebug 的日志文件

xdebug.remote_log = “/var/log/xdebug/xdebug.log” /**END**********************************************************/

重要:确保php.ini文件的有效性,如果使用一键安装包,可能有多个php.ini文件,设置错误可能报“****waiting for incoming connection with ide key '*****'****”错误,笔者为这个问题曾排错一晚上,复制以上代码注意引号问题

  1. 重启Apache服务器(修改php.ini文件后均需重启服务器让配置文件生效);
  1. (客户端)安装、配置PHPStorm(这里的配置以PHPStorm 8.0.2为准)
  1. 安装PHPStorm(略);

  2. 配置xdebug

I 打开配置位置:file -> settings -> Languages & Frameworks -> PHP -> Debug

配置参数:一般配置xdebug 的调试端口(debug port), 设置为php.ini中设置好的远程调试端口即可,默认

    端口任意:默认9000,勾选几个附属选项;

[图片上传失败...(image-588f69-1607395368150)]

    II 打开配置位置:file -> settings -> Languages & Frameworks -> PHP -> Debug

    -> DBGp Proxy

    IDE Key 设置为php.ini中xdebug配置项的xdebug.idekey的值,Host设置为要调试的主机域名,Port端口,与php.ini中的端口保持一致;

[图片上传失败...(image-1a8b7a-1607395368150)]

3) 添加调试服务器(如已添加可省略此步骤)

打开配置位置:file -> settings -> Languages & Frameworks -> PHP -> Servers

配置参数:配置主机名(执行项目的主机名)、端口、调试软件,其中主机名按实际情况设置,调试软件选择xdebug;

备注:如果Servers选项未能显示,请导入一个项目。

[图片上传失败...(image-857190-1607395368150)]

4) 配置调试程序(php)

打开运行配置:Run -> Edit configurations… -> +(添加) -> PHP Web Application

设置服务器为刚添加的服务器,并设置开始的url(Start URL:即你要调试的php页面,可在url后边加上参数,如:user.php?act=login)和浏览器即可

PHPSTORM官方配置说明:

<u>http://blog.jetbrains.com/webide/2011/03/configure-php-debugging-in-phpstorm-2-0/</u>

3. 安装浏览器调试插件(安装步骤略)

火狐下安装easy xdebug

谷歌下安装 xdebug helper

官方插件说明:<u>http://www.jetbrains.com/phpstorm/marklets/</u>

  1. 走到这步配置基本就算完成,可以开始调试程序
  1. 在程序中设置断点

  2. 在工具栏中选择要调试的应用(位于软件右上角的下拉列表)

  3. 点击 Start Listen PHP Debug Connections 按钮,即那个红色的电话按钮,让其变成绿色,即开始监听 PHP Debug 连接;

  4. 点击工具栏中的 Debug(臭虫图标) 按钮,或者从菜单中选择 Run –> Debug,你就开始了 Debug 之旅…

附属说明:根据断点配置,或在打开 Debug URL 的过程中,或在 POST 之后,如果 PhpStorm 监听到了 Debug 连接,就会立即切换到编辑器界面,并跳转到设置的断点处,浏览器端会等待 PhpStorm 的操作。不想调试了,记得刚刚那个电话按钮嘛,再点一下,让其变成红色,就好了。

本文档参考:

<u>http://blog.csdn.net/meegomeego/article/details/25731615</u>

<u>http://www.chenxuanyi.cn/xampp-phpstorm-xdebug.html</u>

相关问题:

1. xdebug是什么?

A:请参看http://baike.baidu.com/link?url=44ufFU1aOz4YYN-pBOTWIUNQFcxAg0dHIVnQSpjBJ-zX5k6nF6vSHGWEoohO5qaP3tbum1E_KBqG97Y67oywaq

2. 判断xdebug是否安装?

方法1: 查看phpinfo页面,搜索是否存在xdebug;

方法1:查看php扩展文件夹中是否存在xdebug扩展;

方法3:命令行执行“php.exe.path”/php -m

3. "waiting for incoming connection with ide key '*****'"的可能原因?

1. 配置文件错误(非常严重的低级错误),wamp等软件的php.ini文件在Apache下面;

2. Phpstorm配置错误,例如端口号与ini文件不一致。

3. 没有设置有效的断点也会报这样的错误,比方说我在B页面设置了断点,而要调试的页面根本不走B页面;

4. DBGp Proxy中的host设置错误;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容