利用Xdebug和Komodo调试PHP应用程序

了解Xdebug和Komodo的配置用来在服务器上调试PHP程序。

在编写应用程序时,出色的开发人员使用优秀的工具进行开发和设计。对使用PHP编写基于Web的应用来说同样适用。对PHP应用编程来说两个有用的工具分别是Komodo和Xdebug。

Komodo是一个跨平台的集成开发工具,可以使用DBGp协议进行远程PHP应用程序调试。Xdebug是提供了调试支持功能的PHP扩展。使用这两个工具,你可以在你的服务器上远程调试任何PHP应用程序。

第一步,在运行要调试的脚本的服务器上安装Xdebug,使用PECL可以很容易地完成该任务。你还需要安装Apache,PHP和PEAR开发文件。大多数Linux发行版本都提供了这些安装包,例如apache-devel,php-devel可能还有php-pear。安装完这些软件包或你的发行版本的相同包,执行下列命令:

# pecl install xdebug-beta

一些发行版本提供了打包的Xdebug二进制文件,所以先找一下。如果没有的话,你需要利用Apache/PHP开发文件从源文件来构建它。然后,编辑/etc/php.ini文件或其它对等文件,添加如下内容:

zend_extension=/usr/lib/php/extensions/xdebug.so

[debug]

; Remote settings

xdebug.remote_autostart=off

xdebug.remote_enable=1

xdebug.remote_handler=dbgp

xdebug.remote_mode=req

xdebug.remote_host=localhost

xdebug.remote_port=9000

;xdebug.idekey=

除非你打算在同一个主机上运行IDE,否则将Xdebug.remote_host关键字从localhost改为你想要在其上运行IDE的主机名。

使用Komodo,要确保对调试支持进行正确的配置。进入引用->调试->连接,设置端口号为上面xdebug.remote_port定义的端口(本例为9000)。确保选中调试->“监听远程调试”。

配置完后,如果还没有重启Apache,那么重启服务器上的Apache,然后浏览你的站点上

的某个页面。加载该页面并在URl中附加XDEBUG_SESsION_START获得相应变量值。例如:

http://devel.mysite.com/blog/submit.php?XDEBUG_SESSION_START=1

如果所有配置都正确完成,那么Komodo将提示你有一个远程应用请求开启调试会话。选择是,然后将会得到一个包含页面内容的新文档,调试会话开始。

如果刚开始时不能正常工作,查看一下确保远程服务器是否正确访问了机器上的调试端口。如果在IDE和服务器中间有一个防火墙,你需要确保防火墙能够在IDE运行的计算机的端口上前导连接。

时间: 2024-11-03 15:54:02

利用Xdebug和Komodo调试PHP应用程序的相关文章

PHP中利用Xdebug进行远程错误调试

Xdebug提供了客户端与PHP脚本进行交互的接口,这一章将会介绍如何让PHP和Xdebug开启这个特性,并且介绍一些常用的客户端. 概述 Xdebug(远程)调试器允许测试数据结构,步进并且调试你的代码.Xdebug提供了两种协议用于与其进行交互:在Xdebug1.3和2中旧的GDB协议和Xdebug2中实现的DBGp协议. 客户端 Xdebug2 为DBGp协议提供了一个简单的基于命令行的客户端,当然,也有一些其它的客户端实现(免费的和商业的).我不是这些客户端的作者,所以请到作者的网站寻找

查看xdebug profile文件的几个程序

在优化php代码执行效率过程中,有个好办法是利用xdebug生成profile文件,然后查看整个程序的瓶颈在哪里.现在xdebug profile的查看程序有好几个,在这里罗列一下. Wincachegrind Wincachegrind是windows下的profile查看程序,使用起来感觉还不错,profile文件太大的话偶尔会崩溃. 今天在高春辉的博客上看到这些: 最近又开始拿 Xdebug 和 wincachegrind 对项目的 PHP 代码进行分析和优化,但是发现和自己输出的执行时间

NetBeans,xdebug如何重复调试

问题描述 NetBeans,xdebug如何重复调试 单步调试到最后一行后,调试按钮都变成灰色了,如果还想返回到第一行重新调试,请问如何操作? 我现在的方法是按"Finish"按钮,然后再按"Debug File", 感觉麻烦. 解决方案 只要你下一个断点在第一行. 然后让程序运行起来,重新触发让它再次调用走到第一行,就会停下了.

利用linux信号机制调试段错误(Segment fault)

在实际开发过程中,大家可能会遇到段错误的问题,虽然是个老问题,但是其带来的隐患是极大的,只要出现一次,程序立即崩溃中止.如果程序运行在PC中,segment fault的调试相对比较方便,因为可以通过串口.显示器可以查看消息,只要程序运行,通过GDB调试工具即可捕捉产生segment fault的具体原因.但是不知大家有没有想法,当程序运行在嵌入式设备上时,你所面临资源的缺乏,你没有串口打印信息,没有显示器可查看,你不知道程序运行的状态,如果程序的产生segment falut这种bug发生的周

《Visual C++ 开发从入门到精通》——1.3 利用Visual C++ 6.0编写C++程序

1.3 利用Visual C++ 6.0编写C++程序 知识点讲解:光盘视频PPT讲解(知识点)第1章利用Visual C++ 6.0编写C++程序.mp4 实例003 编写.调试和运行一个标准的C++程序源码路径 光盘daimapart 01 视频路径 光盘视频实例第1章003 本实例的功能是,使用Visual C++6.0编写.调试并运行一个标准的C++程序.本实例的具体实现流程如下. (1)选择File→New命令,在New对话框中选择Win32 Console Application项,

利用WCF的Duplex服务向Winform程序推送消息

先看运行效果:在网页中发送消息[如图],利用WCF的Duplex服务向Winform 程序推送消息,Winform端接收到消息, 先建立两个项目,一个WebForm 项目和一个WinForm项目,并在项目下 建立好各自需要的文件 SendMessage.aspx 是发送消息的Web页面 ISendMessageService.cs 和 SendMessageService.svc用来实现WCF的 Duplex服务 GetMessageForm.cs 是接收消息的Winform窗口 当然, 还需要

使用Eclipse远程调试Java应用程序

远程调试对应用程序开发十分有用.例如,为不能托管开发平台的低端机器开发程序,或 在专用的机器上(比如服务不能中断的 Web 服务器)调试程序.其他情况包括:运行在内存 小或 CUP 性能低的设备上的 Java 应用程序(比如移动设备),或者开发人员想要将应用程 序和开发环境分开,等等. 先决条件 启动配置类型 启动配置 保存一 组用于启动程序的属性.启动配置类型是一种可以在 Eclipse 平台上启动的独特程序. 如果您还没安装该程序,请下载 Eclipse V3.4(Ganymede).在 G

如何用Eclipse调试Perl应用程序

开始之前 本教程将介绍 Eclipse 的 EPIC 插件提供的调试功能,该插件提供了功能丰富的调试环境 -- 可为 EPIC Perl 开发环境所用且与此开发环境相集成.本教程假设读者了解 Eclipse 环境,并且有使用 Perl 的经验. 关于本教程 EPIC 结合了两种有助于 Perl 应用程序测试流程的系统:RegExp 和调试器.RegExp 是一个测试 Perl 正则表达式的接口.正则表达式是许多 Perl 应用程序的主要组成部分,但保证表达式的正确性是一个非常复杂的问题.使用 E

解析VS2010利用VS.PHP插件调试PHP的方法

以下是对VS2010利用VS.PHP插件调试PHP的方法进行了详细的分析介绍,需要的朋友可以过来参考下   1.安装VS.PHP插件 2.新建PHP工程:如下图,选择PHP 4 webproject创建PHP工程. 3.新建PHP页 4.添加PHP代码 5.设置起始页 6.设置断点 7.启动调试 启动新实例后,将会在任务栏右边(图标通知栏)显示如下图标 8.进入断点 9.继续调试:之后的调试与VS2010的调试方法相同.