netbeans工具使用xdebug断点调试php源码
对有有经验的程序员,使用echo、print_r()、print_f()、var_dump()等函数足以调试php代码,如果需要在IDE工具中使用断点调试,xdebug就是一个非常好的php调试工具。对于不熟悉的代码,可以用Xdebug一步一步的查看请求过程和代码执行过程。
准备工作
本地部署的server环境,推荐用phpStudy(内置xdebug),开启php扩展就可以了,不用单独下载xdebug。(下载与php版本对应的xdebug:http://www.xdebug.org)

配置以下三处
一、配置php.ini,需注意是否是使用集成环境。找到相应的php.ini,例如下边是phpStudy的php5.3的php.ini,其中黑色部分是系统默认的,红色是手动添加的。
[XDebug]
xdebug.profiler_output_dir="D:\phpStudy\tmp\xdebug"
xdebug.trace_output_dir="D:\phpStudy\tmp\xdebug"
zend_extension="D:\phpStudy\php\php-5.6.27-nts\ext\php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_mode=req
; 注意,remote_host的值如果填写localhost不能用,则填写127.0.0.1
xdebug.remote_host=127.0.0.1
; 注意,端口和idekey要与netbeans中配置一样
xdebug.remote_port=9001
xdebug.idekey=netbeans-xdebug

二、重启apache服务器,查看phpinfo()里边是否有xdebug,记录下idekey(我的是netbeans-xdebug)。

这一步非常重要,因为坑就在这。。。
如果使用NetBeans调试php时,一直提示“等待NetBeans连接xdebug”,就要使用命令行查看已经加载的模块,查看xdebug是否正确加载。
在命令行下输入:php -m

当提示:PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0,意思就是xdebug必须加载到zend modules的扩展中。
extension意为基于php引擎的扩展,zend_extension意为基于zend引擎的扩展,所以正确的方法是设置php.ini配置文件:zend_extension=php_xdebug-2.4.1-7.0-vc14-nts.dll。如果使用phpStudy,启用xdebug扩展的时候,php.ini配置文件会自动增加这个配置。
在php.ini 中还要设置:output_buffering = Off
三、配置NetBeans
在NetBeans的 工具-选项-php 中配置(NetBeans版本8.2)
- 工具-选项-php-常规,php5解释器选择php.exe路径(例如:D:\phpStudy\php\php-5.6.27-nts\php.exe)
- 工具-选项-php-调试器端口(9001,和上边php.ini保持一致),会话ID:netbeans-xdebug(和上边php.ini中的xdebug.idekey保持一致)

在这里面也有个坑,就是调试器端口,网上一般都是9000,但是有没有考虑使用Nginx的情况,在用nginx作为服务器代理的时候,nginx一般使用的就是9000端口!这就是为什么我们在配置php的xdebug时候使用9001端口。
php.ini中的端口和idekey要与NetBeans中的“调试器端口”和“会话ID”保持一致,不然同样提示:“等待NetBeans连接xdebug”!
四、配置好了之后,重启下netbeans,再开始调试。
配置都保存了之后,还是连接失败的话,就重启一下netbeans吧。很多都知道,修改了PHP.INI要重启服务器。但是没想过netbeans的有些配置改了之后,也要重启才能生效。
五、开始调试
打开项目(现有项目,无需新建项目),然后选择 菜单-调试-调试项目,一般会在默认浏览器中弹出http://localhost/index.php?XDEBUG_SESSION_START=netbeans-xdebug,后边红色参数是xdebug参数,必须要有。
!!!重点!!!如果想单独调试某个url页面,在页面后面加上这个参数?XDEBUG_SESSION_START=netbeans-xdebug或者& XDEBUG_SESSION_START=netbeans-xdebug,然后打开就能开始调试了。


参考文章:
NetBeans配置Xdebug 远程调试PHP (http://blog.csdn.net/21aspnet/article/details/47756651)
关于netbeans断点调试php的问题 (https://www.oschina.net/question/232352_2209537)
在 NetBeans IDE 中调试 PHP 源代码 (https://netbeans.org/kb/docs/php/debugging_zh_CN.html)
使用netbeans进行PHP团队开发和基于xdebug进行多人远程调试 (http://starlight36.com/post/netbeans-use-for-php-team-with-xdebug)
php断点调试工具--NetBeans+Xdebug调试php方法 (http://www.cnblogs.com/feichengwulai/articles/6252039.html)
|
版权声明:本文采用署名-非商业性使用-相同方式共享(CC BY-NC-SA 3.0 CN)国际许可协议进行许可,转载请注明作者及出处。 |
netbeans工具使用xdebug断点调试php源码的更多相关文章
- eclipse无法断点调试JDK源码的问题
最近换了新版的eclipse,在jdk源码里面,打断点发现无法进入源码调试,程序直接跳过,已查资料发现自己eclipse配置的是jre环境的. 此处要配成jdk目录才有效 打开preferences, ...
- PhpStorm使用之 —— Xdebug断点调试
PhpStorm使用之 -- Xdebug断点调试 在<XAMPP的配置与使用>中已经阐述了Xdebug插件的配置,Xdebug配置完成后,只需要在IDE工具中进行相关设置,便可启动Xde ...
- Zend Studio集成Xdebug断点调试详解
转自:http://www.softown.cn/post/115.html Xdebug是PHP开发中两个常用的断点调试工具之一(另一个为Zend Debugger). 现在,我们在Zend Stu ...
- PHPstudy + phpstrom +xdebug 断点调试(windows) - CSDN博客
原文:PHPstudy + phpstrom +xdebug 断点调试(windows) - CSDN博客 php.ini 配置 需要添加如下内容 [XDebug]xdebug.profiler_ou ...
- Android动态方式破解apk进阶篇(IDA调试so源码)
一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为 ...
- Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)
一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk 主要采用的是静态方式,步骤也很简单,首先使用 ...
- 使用VS2012调试ReactOS源码
目录 一 下载并安装VS2012 二 下载并安装WDK80 三 下载ReactOS0315源码 四 下载并安装RosBE211 五 用RosBE命令行编译ReactOS源码 六 用VS2012编译nt ...
- VS2010下调试.NET源码
微软走向开源,是时候用vs去单步调试进入源码了.参考地址:http://blog.csdn.net/waxgourd0/article/details/6600182 可供参考的文章:https:// ...
- 查看和调试Qt源码
简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进 ...
随机推荐
- Java SE练习题——求奇数
欢迎来到Java SE练习题频道,我是Fishing,今天我带来的练习题是(做题会有不足之处,可评论,说出更好的方法): 通过键盘输入两个整数,计算这两个整数之间的所有奇数之和,并输出计算结果. 看到 ...
- 9.Hive Metastore Administration
前言metastore参数metastore的基本参数metastore的额外参数客户端参数使用zk自动发现mestastore启动hive metastore服务 前言 本节讲metastore相关 ...
- Nginx是如何配置为 Web 服务器的【转载】
详解 Nginx是如何配置为 Web 服务器的 林涛 发表于:2016-11-29 23:23 分类:WebServer 标签:Nginx,web,web服务器 521次 抽象来说,将 Nginx 配 ...
- CF 1100C NN and the Optical Illusion(数学)
NN is an experienced internet user and that means he spends a lot of time on the social media. Once ...
- Final发布:文案+美工展示博客
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2476 小组介绍 组长:付佳 组员:张俊余 李文涛 孙赛佳 田良 于洋 段 ...
- Microsoft Visual Studio 2013 的安装及单元测试
题目:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂. 安装过程: 1.下 ...
- servlet基础学习总结
Servlet的任务 1. 读取客户端发送的显示的数据,包括HTML表单和一些客户端程序的表单 2. 读取客户端发送的隐式的数据,包括cookies.媒体类型等 3. 处理数据并产生结果 4. ...
- 20172324《Java程序设计》第3周学习总结
20172324<Java程序设计>第3周学习总结 教材学习内容总结 随机数,记住要返回的是指定的字符前一个. String类型的一些用法,例如concat(连接),toUpperCase ...
- Hibernate 与 mybatis 区别
JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结 我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践 ...
- Beta Scrum Day 1 — 听说
听说