xdebug安装

https://xdebug.org/wizard.php

http://blog.csdn.net/zhyh1986/article/details/45172685

http://www.cnblogs.com/xujian2016/p/5548921.html

刚从Java转到PHP上,一直以为PHP代码的调试也会像Java一样方便,今天查了一下,没想到居然这么复杂,这里记一下配置过程。 
第一次使用markdown写博客,感觉还挺好玩的。

我的环境

  • 操作系统:64位 win7 旗舰版 Service Pack 1
  • PHP版本:php-5.6.7-Win32-VC11-x64
  • Apache版本:httpd-2.4.12-win64-VC11
  • PHPStorm版本:PhpStorm 8.0.3

下载Xdebug

Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。

Xdebug官方网站:http://xdebug.org/ 
Xdebug当前最新版本是2.3.2,为了匹配我的PHP环境,我下载的是php_xdebug-2.3.2-5.6-vc11-x86_64.dll库,下载地址:http://xdebug.org/files/php_xdebug-2.3.2-5.6-vc11-x86_64.dll

配置php.ini

将下载的php_xdebug-2.3.2-5.6-vc11-x86_64.dll库拷贝到%PHP_HOME%/ext目录,然后打开php.ini文件添加如下配置:

[XDebug]
zend_extension=php_xdebug-2.3.2-5.6-vc11-x86_64.dll
xdebug.idekey="PHPSTORM"
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = "req"
xdebug.remote_host=127.0.0.1
xdebug.remote_enable=on
xdebug.remote_port = 9000
xdebug.remote_autostart = no
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

上面下载的dll库放置位置不是固定,只要在php.ini配置文件中准确指定即可,即zend_extension配置项指向dll库文件。 
需要注意的是xdebug.idekey配置,这里配置的值(当前为“PHPSTORM”)在phpstorm中及浏览器中都需要设置(下面有相关描述),可以改为其它值,但必须保证在这三处设置统一。 
这一部分关于Xdebug的配置是很复杂的,这里只是简单地配置了一下,详细配置可以查阅相关资料。 
Xdebug全部可用配置可参考官方的一个链接:http://xdebug.org/docs/all_settings

This section describes all available configuration settings available in Xdebug.

PHPStorm设置

服务器配置完成后,需要对PHPStorm作一些设置,使其能够监听到浏览器的请求。 
以下设置步骤部分顺序可以调整。

Deployment设置

打开“Build, Execution, Deployment > Deployment”设置,创建一个项目部署条目,由于我是作本机项目的调试,因此这里设置类型为“Local or mounted folder”;然后指定项目路径并设置Web服务的入口URL,如下图所示:

Server设置

定位到“Languages & Frameworks > PHP > Servers”配置,添加一个服务器配置,Name自定义(我这里用localhost),Host为localhost(本机调试),Port(端口)设置为80,Debugger选择Xdebug即可。

配置完成后可以验证一下是否配置成功,点击本配置界面中的“Validate remote environment”按钮,在弹出的对话框中选择“Deployment设置”步骤中设置的部署项目(这里为sycms),在对话框的Information区域没有出现错误信息即表示Servers设置正确。

Debug设置

找到Languages & Frameworks > PHP > Debug配置,将Debug port设置为9000(与php.ini配置文件中的端口设置保持一致)。

然后展开Debug,设置DBGp如下图所示:

其中IDE Key即php.ini文件中xdebug.idekey配置项的值。

Firefox浏览器设置

首先需要给Firefox安装Xdebug插件,我选用的是名为“The easiest Xdebug”的Firefox浏览器插件,安装后打开插件设置页面,将IDEKey填写到下图中的红框位置即可,如下所示:

插件安装配置成功后需要将其启用。

如上图所示在Firefox右上角有个爬虫图标,默认是灰色的,点击它会变成绿色并且虫子的脚会有爬动的动画,这样表示启用了Xdebug浏览器插件。

如果使用Chrome浏览器,可以安装Xdebug helper插件(扩展程序,一般需要翻墙),安装后配置IDEKey的值与Firefox基本一样,然后点击图标启用即可。

使用Xdebug进行调试

在PHPStorm中打开“Run/Debug Configuration”配置,新建 一个“PHP Web Application”启动项,指定正确的Server和Start URL后保存,如下所示:

在PHPStorm中打开Xdebug监听(启动工具栏中样子像电话听筒的“Start Listening for PHP Debug Connnections”按钮)。 
最后在PHP代码中打上断点,在浏览器中访问“Run/Debug Configuration”配置中的“Start URL”对应的地址,即可与PHPStorm成功连接,如下所示:

常见问题

第一次运行Xdebug调试时,PHPStorm报了如下错误:

Cannot accept external Xdebug connection: Cannot evaluate expression'isset($_SERVER['PHP_IDE_CONFIG'])';
  • 1
  • 2

原因为php.ini文件中dll文件配置的是

extension=php_xdebug-2.3.2-5.6-vc11-x86_64.dll
  • 1
  • 2

将其改为zend_extension后重启Apache即可,如下所示:

zend_extension=php_xdebug-2.3.2-5.6-vc11-x86_64.dll
  • 1
  • 2

参考资料

版权声明:本文为博主原创文章,未经博主允许不得转载。

phpstorm xdebug的更多相关文章

  1. XAMPP PHPSTORM XDEBUG 配合使用

    1.xdebug 配置 安装完xampp 进入 php.ini [XDebug]zend_extension = "C:\xampp\php\ext\php_xdebug.dll" ...

  2. centos7+nginx 1.9.0+php-fpm+phpstorm+xdebug+vmware开发环境搭建

    1.php-fpm yum install php-fpm 默认配置在本地9000端口监听 service php-fpm restart启动 2.nginx 1.9.0 需先安装gcc zlib o ...

  3. PHPStorm+XDebug进行调试图文教程以及解析wamp的php.ini设置不生效的原因

    这篇文章主要为大家详细介绍了PHPStorm+XDebug进行调试图文教程,内容很丰富,具有一定的参考价值,感兴趣的小伙伴们可以参考一下   笔者的开发环境如下:Windows8.1+Apache+P ...

  4. PhpStorm, XDebug, and DBGp Proxy

    phpstorm 利用 xdebug.dbgp-proxy配置远程调试 1.单客户机远程调试 a.安装xdebug库文件(windows:php_xdebug.dll;linux:php_xdebug ...

  5. 使用 PHPStorm + Xdebug 实现断点调试(二)

    一.配置 Xdebug 配置 Xdebug 相关参数,在 php.ini 文件中新增如下配置,如果没安装的,请参考<PHP 安装 Xdebug扩展>: [xdebug] xdebug.re ...

  6. PhpStorm+xdebug调试——更新

    之前写过一篇<PhpStorm+xdebug+postman调试>,但是经过后来一段时间的使用,发现有些累赘.这里介绍一种比较简单方便的操作. 在上一篇文章中有一段“ 7.设置Server ...

  7. PhpStorm+xdebug+postman调试

    PhpStorm+xdebug+postman调试 写PHP时,一直用postman做测试,最近发现在测试过程中可以用xdebug来断点调试,比原来手动打exit或者die来断点效率高多了. 下面记录 ...

  8. macOS 下 PHPStorm + Xdebug 调试 Docker 环境中的代码

    0x00 描述 宿主机是 mac mini,构建的项目在 docker 中,所以需要在 PHPStorm 上配置 Xdebug 进行远程代码调试. 0x01 环境 宿主机:macOS High Sie ...

  9. phalcon断点调试(phpStorm+xdebug)

    1.下载并添加chrome插件xdebug helper,下载地址:http://www.downcc.com/soft/261091.html 2.php添加xdebug扩展 mkdir -p /u ...

  10. 转:PHPStorm+XDebug进行调试图文教程

    原文:PHPStorm+XDebug进行调试图文教程 一.XDebug安装配置 (1)下载XDebug下载地址:http://www.xdebug.org/必须下载跟机器上安装的php匹配的版本才行. ...

随机推荐

  1. 快速切题 sgu116. Index of super-prime bfs+树思想

    116. Index of super-prime time limit per test: 0.25 sec. memory limit per test: 4096 KB Let P1, P2, ...

  2. PHP excel reader , excel时间转成php时间格式

    最近,在做一个导入功能,在系统中使用PHPExcel类库,读取上传的Excel文件,然后进行字段映射,最后将Excel内的数据导入到系统中.其中,关于日期格式的导入,使我犯了难. 首先,如何导入日期, ...

  3. python中read()、readline()、readlnes()

    在python中 1.file.read()直接按原样读取文件,它通常用于将文件内容放到一个字符串变量中,如果文件大于可用内存,则不可能实现这种处理,因为原来文件里面是str_class,所以 fil ...

  4. sql server 的游标

    -- sql server 中的游标 --声明游标 /* declare cursorname [insensitive] [scroll] cursor for <select-查询块> ...

  5. C中预编译详解

    预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.可见预处理过程先于编译器对源代码进行处理.在C 语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件.定义宏.根 ...

  6. 关于python课程的想法和建议。

    第一次听说python是在刚结束与世隔绝的高中生活之后,当时的网络上铺天遍地都是人工智能和机器学习,于是便知道了python这门编程语言.我是光电信息科学与工程专业的学生,这个专业的学生必须要懂计算机 ...

  7. es6 规范 的 具体用法 -- 待续

    链接 1. const 表示不会被重新赋值的,  包括了不会被修改的, const 可以被修改, 但是不会被整体覆盖 由于是静态分析, const  相对 let 执行效率 更高 2. 模板字符串   ...

  8. 那些年,追寻JMeter的足迹,免费送……

    ​我们测试技术部武汉团队自16年引入jmeter以来,利用jmeter做了很多事情.首先运用jmeter进行接口测试,后续实现jmeter自动化冒烟测试,顺带也实现了线上环境的巡检,节省了大量人力.j ...

  9. Magento邮件发送完美设置

    Magento新站上线伊始,不料在邮件上遇到了问题.此时常用的邮件模板已经编辑完毕,诸如New Account, New Order, Password Forget等. CentOS下发送邮件很简单 ...

  10. [LeetCode&Python] Problem 811. Subdomain Visit Count

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...