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, ...
随机推荐
- Git报错:Your branch is ahead of 'origin/master' by 1 commit
. commit之后,用git status,打印信息为: # On branch master # Your branch is ahead of 'origin/master' by 1 c ...
- Shader Variants 打包遇到的问题
1. 遇到的问题 最常见的是打包到手机后效果与PC上不一致,具体情况比如: 光照贴图失效 雾失效 透明或者cutoff失效 以上首先需要检查的地方是Shader变体的编译设置 2. 超级着色器编译成N ...
- WebGL2系列之实例数组(Instanced Arrays)
实例化数组 实例化是一种只调用一次渲染函数却能绘制出很多物体的技术,它节省渲染一个物体时从CPU到GPU的通信时间.实例数组是这样的一个对象,使用它,可以把原来的的uniform变量转换成attrib ...
- 32bit GM命令
GM 命令[32位服务端GM命令] //announce message this basicly tells a announcement on the whole server.. you can ...
- VMware vCenter Converter迁移Linux系统虚拟机
(一)简介VMware vCenter Converter Standalone,是一种用于将虚拟机和物理机转换为 VMware 虚拟机的可扩展解决方案.此外,还可以在 vCenter Server ...
- 从零开始的Python学习Episode 20——面向对象(3)
面向对象之封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体. 隐藏 在python中用双下划线开 ...
- MySQL基础练习(三)
经过之前两次的学习,这次用MySQL进行略微复杂的操作练习 各部门工资最高的员工 首先创建表employee和表department.如下 我们需要查询每个部门工资最高的员工 select a.Nam ...
- tar.gz 文件解压 (安装 netbean 时会用到)
sudo tar xvf jdk-7u45-linux-i586.tar.gz -C /usr/lib 参考文章 http://hi.baidu.com/xiaomeng008/item/5e787b ...
- SQL中读取Excel 以及 bpc语言
--开启导入功能 reconfigure reconfigure --允许在进程中使用ACE.OLEDB.12 --允许动态参数 EXEC master.dbo.sp_MSset_oledb_prop ...
- “秒杀”问题的数据库和SQL设计【转载】
“秒杀”问题的数据库和SQL设计 APRIL 21ST, 2015 问题的来源 完全不考虑一致性的方案 表结构 方案 存在的问题 保证单用户不会重复购买 解决超卖问题 方案 优化 提高性能了 鱼与熊掌 ...