为 PhpStorm 配置 Xdebug 来调试代码
当项目越来越复杂,排错就越发困难。
你以为代码是这么运行的,但就是有未想到的功能导致流程变得不可捉摸。
此时我们需要调试啊调试...
PhpStorm 是一款优秀的 PHP IDE,排除其 Java 系出身导致的资源占用情况不理想外,其功能和易用性是毋庸质疑的。
好,再说下去就是软文了。
PhpStorm 内建了 Zend Debugger 和 Xdebug 支持,使用简单的配置我们就可以开始调试代码了。我们以 Xdebug 为例来说明下。
为 PHP 安装 Xdebug 扩展
Win 下的安装较为简单,直接下载适合的版本的 dll 文件,写入到 php.ini 配置中就可以了。
我们介绍下源代码编译方式。
在 Xdebug 下载页面 找到最新的源代码,现在的版本是 2.2.1:
cd /Users/micate/Downloads/
wget http://xdebug.org/files/xdebug-2.2.1.tgz
tar zxvf xdebug-2.2.1.tgz
cd xdebug-2.2.1/
phpize
./configure; make
sudo make install
嗯,不出意外的话,会提示 xdebug.so 已经被放置在 ... 位置上。记住这个位置,复制下来。
打开 php.ini,在最后面追加下述配置:
[xdebug]
zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.idekey="PHPSTORM"
xdebug.remote_host=127.0.0.1
xdebug.remote_enable=on
上面的位置要与刚刚安装的位置保持一致。关于 xdebug.so 如何配置,Xdebug 文档中有说明:
Configure PHP to Use Xdebug
- add the following line to php.ini: zend_extension="/wherever/you/put/it/xdebug.so" (for non-threaded use of PHP, for example the CLI, CGI or Apache 1.3 module) or: zend_extension_ts="/wherever/you/put/it/xdebug.so"
(for threaded usage of PHP, for example the Apache 2 work MPM or the the ISAPI module). Note: In case you compiled PHP yourself and used --enable-debug you would have to use zend_extension_debug=. From PHP 5.3 onwards, you always need to use the zend_extension
PHP.ini setting name, and not zend_extension_ts, nor zend_extension_debug. However, your compile options (ZTS/normal build; debug/non-debug) still need to match with what PHP is using.- Restart your webserver.
- Write a PHP page that calls 'phpinfo()' Load it in a browser and look for the info on the Xdebug module. If you see it next to the Zend logo, you have been successful! You can also use 'php -m' if you
have a command line version of PHP, it lists all loaded modules. Xdebug should appear twice there (once under 'PHP Modules' and once under 'Zend Modules').
其中使用 zend_extension_ts 还是 zend_extension 还是神马神马,与 PHP 版本有关,仔细看上面的说明。
重启下 Web Server(Apache / Nginx),使用 phpinfo() 页面或命令行工具,确认模块安装完成。
配置 PhpStorm
本节参考了 Configuring PHP debugging in PhpStorm 2.0 一文:
PhpStorm 以最新版的 4.0.3 为例,版本不同操作会有些许区别。
打开 PhpStorm,新建或打开一个项目,打开偏好设置界面:

依图所示,确认 Debug 设置无误(提示,可以在左上角直接搜索 Debug 来定位到设置项):

单击左侧的 Servers,添加一个 Debug Server:

其中 Host 和 Port 根据自己要调试的实际情况来写,先不要加目录或查询字符串。后面选择 Xdebug。
然后 Apply 和 OK,回到编辑器界面。
点击菜单里的 Run - Configurations:

在 运行/调试 对话框中,依图配置:

如图所示:点击 添加 按钮,选择 PHP Web Application,并在右侧输入配置名称,选择我们刚刚添加的 Server,Start URL 中填写调试可能所需的查询字符串,选择好默认浏览器,最后点击 Apply 和 OK,确认配置。
然后,还有一步:

- 在程序中设置好断点;
- 在工具栏中,选择好要调试的应用;
- 点击 Start Listen PHP Debug Connections 按钮,即那个红色的电话按钮,让其变成绿色,即开始监听 PHP Debug 连接;
于是,终于可以开始了。
点击上图中的 Debug 按钮,或者从菜单中选择 Run - Debug,你就开始了 Debug 之旅...
其他说明
根据断点配置,或在打开 Debug URL 的过程中,或在 POST 之后,如果 PhpStorm 监听到了 Debug 连接,就会立即切换到编辑器界面,并跳转到设置的断点处,浏览器端会等待 PhpStorm 的操作。
你可以随时中断 PhpStorm 的调试,或方便的进行 Step Into / Step Over / Run to cursor(这个刁爆了):

熟悉 Java 的童鞋会对这个界面感到亲切,吼吼。
哎呀,不想调试了,PhpStorm 却总是跳出来?记得刚刚那个电话按钮嘛,再点一下,让其变成红色,就好了。
先到这里,嗯哼。自己捣鼓捣鼓吧。
This entry was posted in 分享 and tagged php, PhpStorm, Xdebug on July
29, 2012.
Post navigation
← 在 OS X 10.7 /
10.8 上安装 PHP memcache 扩展在
OS X 下编译安装支持 HTTP/HTTPS 的 Subversion →
9 thoughts on “为 PhpStorm 配置 Xdebug 来调试代码”
为 PhpStorm 配置 Xdebug 来调试代码的更多相关文章
- 在windows10环境下给PHPStorm配置xdebug断点调试功能
笔者的开发环境: wampserver2.5系统环境包 操作系统:windows10 64位专业版. php版本:php5.512 Apache版本:2.49 好了下面介绍,phpstorm配置xde ...
- PHPStorm+Wamp+Xdebug+Windows7调试代码
Wamp 集成环境 PHPStorm+Xdebug 调试代码 2013.04.16 花了两个小时时间终于 , 配置成功了 ! 我的开发环境如下 , 其它环境也可以参考我的配置 开发环境 : Windo ...
- phpstorm配置Xdebug进行调试PHP教程
运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdeb ...
- phpstorm配置Xdebug进行调试
运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdeb ...
- phpstorm配置Xdebug进行调试PHP教程_php技巧_脚本之家
运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdeb ...
- Mac环境下PHPstorm配置xdebug开发调试web程序
一.安装PHP的xdebug扩展 安装xdebug(技巧,为了找到适配的版本,让xdebug网站根据phpinfo()函数输出分析找到对应的方法及安装步骤:如果安装了多个PHP版本的话,尽量用phpi ...
- 开启php的xdebug扩展及phpstorm配置xdebug,chrome调试插件组合
一. 开启php xdebug扩展 注意: 1. 原生php各版本需对应各自的xdebug版本,可到xdebug上对应下载 2. 若用wampserver等环境,wampse ...
- PhpStorm连接Docker容器配置xdebug断点调试
本教程主要演示xdebug在PhpStorm中配置方法. 一.环境说明 1.Mac笔记本(本教程演示过程使用的是Mac OS操作系统,和windows环境是有区别的,这一点需要特别注意): 2.在Ma ...
- 【总结1】PhpStorm配置XDebug(远程)调试PHP
配置PhpStorm调试PHP 第一步:配置 XDebug 下载安装XDebug到本地环境,打开php.ini,参考配置如下: [XDebug] zend_extension = "D:\P ...
随机推荐
- python基础-6.1 match search findall group(s) 区别
import re # match findall经常用 # re.match() #从开头匹配,没有匹配到对象就返回NONE # re.search() #浏览全部字符,匹配第一个符合规则的字符串 ...
- vsphere虚拟化之Active Directory域的创建(一)
1.搭建环境说明 本机是在Vmware Workstation 12 Pro虚拟软件下进行搭建的. 操作系统版本:Windows Server 2012 R2 简体中文企业版x64. 2.安装完win ...
- 多线程04-ThreadPriority
; i < ; i++) { Thread.Sleep(); Console.WriteLine( ...
- 关于java的数组
一定要写成 int[] arr = new int[30] 这样每个元素默认为0; 介样子的 如果写成 int[] arr = {1,2,3,4}; 那么他的长度就是4
- [2019杭电多校第四场][hdu6621]K-th Closest Distance(主席树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6621 题意为求区间[l,r]内第k小|a[i]-p|的值. 可以二分答案,如果二分的值为x,则判断区间 ...
- java 中断线程的几种方式 interrupt()
中断 中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作.线程是死亡.还是等待新的任务或是继续运行至下一步,就取决于这个程序.虽然初次看来它可能显 ...
- 什么是http协议??
一.http协议的定义: http(Hypertext transfer protocol)超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本(文本.图片.视频等)传输的规定.也就是说,htt ...
- github(1):
1.目的:借助github托管项目带按摩 2.仓库:创建一个Repository 3.收藏(Start):仓库主页start按钮,意思是收藏项目的人数,在github上如果有一个项目获得100个sta ...
- 案例 element 表单名两端对齐
>>> .el-form-item label:after { content: ""; display: inline-block; width: 100%; ...
- Tcp客户端构建流程
tcp客户端构建流程 tcp的客户端要比服务器端简单很多,如果说服务器端是需要自己买手机.查手机卡.设置铃声.等待别人打电话流程的话,那么客户端就只需要找一个电话亭,拿起电话拨打即可,流程要少很多 示 ...