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程序远程调试的方法和步骤的更多相关文章

  1. Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法 转

    Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法   同事遇到一个很囧的问题,java调,netwebservice的时候,调用无参数方法成功,调用有参 ...

  2. 【经验随笔】Java程序远程调试定位特定运行环境上出现的问题

    Java后台程序远程调试 第一步:在JVM的启动参数中增加-Xdebug -Xrunjdwp:transport=dt_socket,address=6688,server=y,suspend=n 第 ...

  3. 「小程序JAVA实战」 小程序远程调试(九)

    转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-09/ 在开发javaweb应用的时候,如果遇见一个问题都会调试,debug,在火狐和谷歌浏览器的时 ...

  4. java远程调试(断点)程序/tomcat( eclipse远程调试Tomcat方法)

    tomcat远程调试: 1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_soc ...

  5. Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法

    同事遇到一个很囧的问题,java调,netwebservice的时候,调用无参数方法成功,调用有参数的方法每次我这边的webservice日志都记录参数为空,而我自己.Net程序调用完全没有问题,后面 ...

  6. Eclipse-cdt 配合 gdbserver 进行 arm 程序远程调试 上

    做嵌入式Linux开发也不用再羡慕windows程序员VS集成开发环境的强大,我们同样能够搭建出给力的IDE. 今天在这里记录一下我使用Eclipse-cdt,gdb,gdbserver搭建远程arm ...

  7. eclipse远程调试Tomcat方法(测试成功并且说说遇到的坑)

    转自:http://blog.csdn.net/afgasdg/article/details/9236877 PS:文中容易引起歧义的地方已经做了修改:另外,本人参照以下步骤操作,结果无法调试,后来 ...

  8. C/C++ 程序反调试的方法

    C/C++ 要实现程序反调试有多种方法,BeingDebugged,NtGlobalFlag,ProcessHeap,CheckRemoteDebuggerPresent,STARTUPINFO,Is ...

  9. 【IDEA】【SpringBoot】基于idea对springboot程序远程调试

    一.开启远程调试前提:本地代码与服务器代码一致(实测:不关键的代码稍微有点不一样好像也不会有多大问题). 二.开启远程调试步骤 1.开发工具配置 idea端打开Edit configurations, ...

随机推荐

  1. linux镜像(持续更新)

    Linux系统历史衍生图:https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg ubu ...

  2. Unity扩展编辑器一

    将Test1脚本挂在摄像机上 ​ 如图展示 ​ 下面我们需要在代码中动态的编辑它,请在你的Project视图中创建一个Editor文件夹,把MyEditor放进Editor文件夹中 ​ 在OnInsp ...

  3. RabbitMQ入门:路由(Routing)

    在上一篇博客<RabbitMQ入门:发布/订阅(Publish/Subscribe)>中,我们认识了fanout类型的exchange,它是一种通过广播方式发送消息的路由器,所有和exch ...

  4. Spring中的数据库事物管理

    Spring中的数据库事物管理 只要给方法加一个@Transactional注解就可以了 例如:

  5. Django_缓存

    目录 Django缓存的介绍 配置(settings.py设置不同缓存介质) 应用(全局.视图函数.模板) 实测 Django缓存的介绍 除了Django这个web框架之外.其他框架都没有缓存.Dja ...

  6. web项目中nicedit富文本编辑器的使用

    web项目中nicedit富文本编辑器的使用 一.为什么要用富文本编辑器? 先说什么是富文本编辑器吧,普通的html中input或textarea标签只能进行简单的输入,而做不到其他的文本调整功能,甚 ...

  7. 团队博客作业Week4 --- 学霸网站--NABC

    1.需求(Need) 伴随着经济的发展,科学技术取得了飞速的发展,互联网在各行各业的发展中取得了广泛的应用.随着这些事物的发展,我们每个人都会接触到相当庞大的数据.如何在这些数据中找到自己需要的,如何 ...

  8. tomcat启动问题排查

    遇到tomcat错误时不一定是tomcat的配置问题,还有可能是项目的配置问题.检查下xml的servlet配置是不是出了问题. tomcat8.0使用注解的方式帮我注册了servlet了,这时候已经 ...

  9. SpringMVC中Controller的返回值类型

    Controller方法的返回值可以有以下几种: 1.返回ModelAndView 返回ModelAndView时最常见的一种返回结果.需要在方法结束的时候定义一个ModelAndView对象,并对M ...

  10. AG-Admin微服务框架入门

    AG-Admin微服务框架入门  @qq群:一群: 837736451  二群 169824183 一 概要介绍 AG-Admin后台地址:https://gitee.com/minull/ace-s ...