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. python simple factory mode example

    Two python simple factory mode examples shown in this section. One is for base operation and another ...

  2. Linux系统中时间区域和API

    1.问题 在开发云平台程序的时候,经常会碰到时间区域转换的问题.比如,任何网络存储的文档的metadata都自己记录了编辑时间.但是,云平台记录时需要把这个时间转成标准时间,便于管理.但是用户使用的时 ...

  3. 腾讯云linux+kodexplorer可道云搭建私有云盘

    kodexplorer可道云介绍KodExplorer可道云,原名芒果云,是基于Web技术的私有云和在线文件管理系统.致力于为用户提供安全可控.可靠易用.高扩展性的私有云解决方案.用户只需通过简单环境 ...

  4. netcore如何引用package?

    netcore项目引用dll包,分如下三种: 1.引用网络包 从nuget获取,然后引入,使用命令:dotnet add package 包名 然后:dotnet restore 2.引用同解决方案的 ...

  5. Centos7.4简单安装使用gitlab+maven+jenkins实现java代码的持续集成部署

    1.工具的简单介绍 gitlab--源代码版本管理控制工具 maven--java代码编译构建工具 jenkins--基于java开发的自动化持续集成部署工具 sonar--代码质量管理工具 2.gi ...

  6. HTTP-HTTPS区别

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...

  7. CF 1064B Equations of Mathematical Magic(思维规律)

    Description Colossal! — exclaimed Hawk-nose. — A programmer! That's exactly what we are looking for. ...

  8. 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 ...

  9. oo第八次作业--5,6,7次作业总结

    一.多线程的设计 这三次作业的主要内容就是使用多线程并且解决多线程中出现的问题.而对于多线程我也有了自己的理解.首先明确的一点是单个CPU在同一时间只能处理一件事.那么,不管是多进程还是多线程,我们的 ...

  10. 20162319 实验二 Java面对对象程序设计 实验报告

    实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验 ...