AptanaStudio3+PHP程序远程调试的方法和步骤
php是执行在服务器上的脚本程序,通常调试bug,直接在浏览器页面就可以打印出错误信息,凭此基本能解决所有bug,但是有时候,可以说大多数时候,php会直接处理客户端的请求,作为数据接口传递数据,没有任何的ui界面,这样对于复杂的逻辑调试起来就非常困难,当然你可以使用log,把所有的运行信息打印到一个外部文本中,可是习惯了ide断点单步执行的我们对于这种原始的办法是无法接受的。下面就要描述使用流行的XDebug来远程调试,达到的目的是,如果有客户端(手机app,pc应用,浏览器... ...)请求了php,那么就需要在我的php中断点处自动停止,并实时显示所有变量的值,指针的变化。
第一步:下载XDebug
下载xdebug程序dll,下载之前,写一个php,代码就这些。
<?php
phpinfo();
?>
在浏览器上打开这个php,按住CTRL+A再按CTRL+C复制整个页面,这样复制:

在浏览器上打开这个网址:http://xdebug.org/wizard.php,在页面的大文本框里边CTRL+V,将上面复制的内容复制进去

什么都不用,直接点击红框中的按钮,稍等,会出现页面:

下载上述框选的dll,并记录下下面框选的这一行
zend_extension = C:\WebEnvironment\php-5.5.5\ext\php_xdebug-2.3.2-5.5-vc11-x86_64.dll
到此为止,我们准备好了xdebug。
第二步:配置xdebug
打开php的目录,找到ext文件夹,把下载好的xdebug的dll复制进去。

打开php.ini文件,在文件末尾加上这些配置代码:
[XDebug]
zend_extension = C:\WebEnvironment\php-5.5.5\ext\php_xdebug-2.3.2-5.5-vc11-x86_64.dll
;是否开启自动跟踪
xdebug.auto_trace= On
;是否开启异常跟踪
xdebug.show_exception_trace= On
;是否开启远程调试自动启动
xdebug.remote_autostart= On
;是否开启远程调试
xdebug.remote_enable= On
;允许调试的客户端IP
xdebug.remote_host=localhost
;远程调试的端口(默认9000)
xdebug.remote_port=9000
;调试插件dbgp
xdebug.remote_handler=dbgp
;是否收集变量
xdebug.collect_vars= On
;是否收集返回值
xdebug.collect_return= On
;是否收集参数
xdebug.collect_params= On
;是否开启调试内容
xdebug.profiler_enable=On
上面的代码加好之后,关闭php.ini,重启Apache。到此为止,我们便设置好了xdebug。
第三步:在AptanaStudio中使用XDebug

直接点击OK->OK,关闭对话框,配置就完成了。
第四步:调试程序
这里有一个使用Plupload来上传大文件的程序。首先我要开启Aptana(没ide可调试不了哦^_^),打开我的上传文件upload.php(客户端上传成功后,由该php来处理文件,比如文件块合并写入到本地服务器的某个目录等等)。
在客户端上传成功之后,我的AptanaStudio直接就自动跳转到调试界面(初次使用该功能可能会有一个询问是否进入调试的对话框,确认并记住操作,下次就直接进入调试状态)
upload就这些代码:

前端上传完成之后,会有一个蓝色箭头指向我的php代码的第一行,按下工具栏最右边的虫子样子的按钮手动切入调试状态。

到此为止,就可以进行调试了,任何前端发起的对该php脚本的请求,都可以在ide中进入调试环境,由我们来控制php脚本是否继续往下执行,可以看到实时的变量变化,是不是和其他所有的debug环境一样了呢。
注:其他的php开发环境,如zendstudio,eclipse,sublime等,由于这些ide都是基于eclipse修改来的,都可以使用上面的方法配置xdebug调试环境
AptanaStudio3+PHP程序远程调试的方法和步骤的更多相关文章
- Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法 转
Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法 同事遇到一个很囧的问题,java调,netwebservice的时候,调用无参数方法成功,调用有参 ...
- 【经验随笔】Java程序远程调试定位特定运行环境上出现的问题
Java后台程序远程调试 第一步:在JVM的启动参数中增加-Xdebug -Xrunjdwp:transport=dt_socket,address=6688,server=y,suspend=n 第 ...
- 「小程序JAVA实战」 小程序远程调试(九)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-09/ 在开发javaweb应用的时候,如果遇见一个问题都会调试,debug,在火狐和谷歌浏览器的时 ...
- java远程调试(断点)程序/tomcat( eclipse远程调试Tomcat方法)
tomcat远程调试: 1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_soc ...
- Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法
同事遇到一个很囧的问题,java调,netwebservice的时候,调用无参数方法成功,调用有参数的方法每次我这边的webservice日志都记录参数为空,而我自己.Net程序调用完全没有问题,后面 ...
- Eclipse-cdt 配合 gdbserver 进行 arm 程序远程调试 上
做嵌入式Linux开发也不用再羡慕windows程序员VS集成开发环境的强大,我们同样能够搭建出给力的IDE. 今天在这里记录一下我使用Eclipse-cdt,gdb,gdbserver搭建远程arm ...
- eclipse远程调试Tomcat方法(测试成功并且说说遇到的坑)
转自:http://blog.csdn.net/afgasdg/article/details/9236877 PS:文中容易引起歧义的地方已经做了修改:另外,本人参照以下步骤操作,结果无法调试,后来 ...
- C/C++ 程序反调试的方法
C/C++ 要实现程序反调试有多种方法,BeingDebugged,NtGlobalFlag,ProcessHeap,CheckRemoteDebuggerPresent,STARTUPINFO,Is ...
- 【IDEA】【SpringBoot】基于idea对springboot程序远程调试
一.开启远程调试前提:本地代码与服务器代码一致(实测:不关键的代码稍微有点不一样好像也不会有多大问题). 二.开启远程调试步骤 1.开发工具配置 idea端打开Edit configurations, ...
随机推荐
- eclipse—Maven项目打包成exe
1.下载打包工具j2ewiz 友情连接:https://pan.baidu.com/s/1Rcoqix5QcrJVI1of9h7qbQ提取码:vqn1 2.选中想要打包的文件,右击—Export 按 ...
- Python中的装饰器的初步理解
什么是装饰器? 装饰器的本质是一个函数,其作用是用来装饰其他的函数,给其他函数附加行的功能. 原则: 1.不能修改被装饰函数的源码. 2.不能改变被装饰函数的调用方式. 那么什么是函数? 简单的来说: ...
- WebRTC入门
什么是WebRTC? 众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转.比如现在有两个客户端,甲和乙,他们俩想要通信,首先需要甲和服务器.乙和服务器之间建立信道.甲给乙发 ...
- 什么是mvc模式
MVC是一个架构,或者说是一个设计模式,它就是强制性使应用程序的输入,处理和输出分开.将一个应用程序分为三个部分:Model,View,Controller. 原理图: 分析: Model 模型(完成 ...
- shell之arp命令
arp: 显示所有的表项. arp -d address: 删除一个arp表项. arp -s address hw_addr: 设置一个arp表项. 常用参数: -a 使用bsd形式输出.(没有 ...
- Final阶段版本控制报告
版本控制代码及文档要求 在coding.net版本控制; 公开项目,教师.专家.其他同学可以不注册源代码.在此公布git地址. 报告beta阶段2周中,项目的版本控制情况,不包括未在coding.ne ...
- 第39次Scrum会议(12/5)【欢迎来怼】
一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/12/5 11:35~11:57,总计22min.地点:东北师 ...
- 2017秋软工 —— 本周PSP
1. PSP 2. PSP饼图 3. 累计进度条 4. 累计折线图
- (第十周)Beta-2阶段成员贡献分
项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰.杜桥.栾骄阳.王东涵 个人贡献分=基础分+表现分 基础分=5*5*0.5/5=2.5 成员得分如下: 成员 基础分 表现分 个人贡献 ...
- Scurm Meeting 11.2
成员 今日任务 明日计划 用时 徐越 写功能规格说明书,代码移植 创建数据库,代码移植 3h 赵庶宏 编写功能规格说明书,学习访问数据库代码,代码迁移 代码迁移 5h 武鑫 设计界面:独立完成一些简单 ...