搬家注:该日志写于2011 年 04 月 07 日,Eclipse,PHP等版本号很多,更新也比较快,请注意文章中的版本。本文不一定帮您解决问题,但能给您一些解决问题的思路及一些概念。

最近开始做SRTP项目WebOS,于是又开始了PHP之旅。搭建PHP环境又用了一两天,一个字,烦。遇到了很多问题,从Apache+php+mysql的配置到 Eclipse+PHP+XDebug(Zend Debbuger也同时配置了)的开发环境搭建,各种Google,各种教程贴,各种问题帖,各种矛盾的说法,虽然大部分人都按自己说的解决了问题,但是同一个问题解答方法各异,弄得我也是一头雾水,突然觉得这大部分时间都在为Google添加利润点击广告罢了。

搜索了很多,也解决了不少问题,得到了很多感悟,不知从哪个说去,一点点来吧。关于配置Apache+php+mysql,我将在另一篇日志中说说我的经验。

先说说我的各种版本,搜索引擎最大浪费就在与很多很过时的东西,很多都在说Eclipse3.2,3.4,php5.1等等,于是各种悲剧,感觉和小白鼠像极了。

操作系统:Win7 Ultimate

Eclipse:Eclipse for PHP Developers(Version: Helios Release,Build id: 20100617-1415)这里说一下,Pdt我没配,但是Debug插件的配置和eclipse关系不太大。

PHP:php5.2.17 TS(thread safety)vc6(刚从官网下的)官网上分两种版本5.3.6的vc9版本和5.2.17的vc6版本,vc9是在IIS下用的,而vc6是在apache下用的(左边有说明),每个版本又分为thread safe和non thread safe的(和下面的debug插件配置有关),一般推荐下载thread safe。 

XDebug 2.1.1(官网)版本很多,不过有个链接可以帮你选择。(主要三个方面TS or not,vc6 or vc9,  32 bits or 64 bits). 我选择PHP 5.2 VC6 TS (32 bit) .

Zend Debugger: 这个最麻烦,需要注册才能下载,它在推广Zend Studio。插件名叫Studio Web Debugger,windows版本名字叫ZendDebugger-20100729-cygwin_nt-i386.zip,里面有各种版本的debugger,一定要注意5_x_x_和nts(这个是non thread safety),TS的要用5_2_x_comp(和Xdebug反了过来)。另外把dummy.php拷到根文档下(http://localhost:8081/dummy.php)为了在Eclipse中测试成功与否。

弄好各种版本之后,就开始配置了,就是一个php.ini的配置。

这里先说下Eclipse中调试的两种方式: Debug as PHP script 和 Debug as PHP web page。

Debug as PHP script是直接调用php.exe解释的,不用开apache也能调试(事实上和apache无关)。但是缺陷也很大,不能在浏览器中打开网页,也没办法得到cookie,post等的值,即$_COOKIE, $_REQUEST等(可以再命令行参数中舍,但是很不方便,也不好用)。

Debug as PHP web page其实就是一种特殊的远程调试,可以在浏览器中打开网页,然后执行,可以动态的得到cookie等值,我就是用这种模式调试的,不过既然是 Remote debugging,就要在配置中开起来,否则这种调试设了断点也不起作用。下面配置会说到。

好了,Xdebug的配置

[xDebug] ;这一行没有也没关系
zend_extension_ts = “C:\Program Files\PHP\ext\php_xdebug-2.1.1-5.2-vc6.dll” ;注意ts指的是thread safety,此版本的一定要有。最好写上文件的整个路径,相对路径问题很大,很可能出问题。

xdebug.remote_enable = On ;其实官网上的配置没有给这一句,如果不配置这项,那么就没办法使用Debug as PHP web page了,所以还是开了。

网上有很多项,我只配置了这两项也照常使用,因为我不知道网上说的其他项的意思,我就没配。当然,一可以去查官方文档,第二在phpinfo里面xdebug下每一配置项都列出来了,你想配哪项配哪项。

配置成功的标志,查看phpinfo,能看到下面两项

看有Xdeug

配置项挺多的,慢慢去研究吧

Zend debugger配置,php.ini中

[zend debugger]
zend_extension_ts = “C:\Program Files\PHP\ext\ZendDebugger.dll”;同样注意ts和完整的路径。
zend_debugger.allow_hosts=127.0.0.1,192,168.0.4;允许调试的主机IP,
zend_debugger.expose_remotely=always;就是远程调试,debug as php web page就要用这个

同样我也配置了上面三项就正常使用了。

配置成功的标志,查看phpinfo。

有这个就配置成功啦。

Eclipse的配置还没说呢,其实到这如果懂了Debug as php script和debug as php web page的原理Eclipse的配置也就很简单了,无非是在Eclipse选项-》php-》debug里面配置一下就好了,有php executables(php.exe),php servers注意端口(如http://localhost:8081),两个debug插件的端口(默认一个9000一个10000)就不要乱改了。另外,如果配置了Zend Debugger,注意把前面的dummy.php拷过去才能点击test Debbuger成功哦。下面在php文件上点击断点,在文件上右击Debug as 就可以开始了,对就这么简单。

总结一下配置的整个过程中容易出错的地方:

  • 版本的对应关系要对,如php和debug插件的版本一致。
  • 一定要注意ts(thread safe)和nts(none thread safe),有时候标注的是ts,另一个版本不标注;有时候标注的是nts,而ts就不标注。
  • 注意官方文档坚决的说明,Apache下一定要用php vc6版本的。
  • 两个插件中的zend_extension_ts中最好写上完整路径,相对路径这东西和环境变量有关,问题很大。
  • 配置debug插件成功与否与Eclipse无关,建议先配置能够在phpinfo中成功了再去在Eclipse中设置。
  • 莫名其妙的错误怎么办,最好的办法是查看apache错误日志:在 apache安装目录下的logs/eroror.log文件中有详细记录,这个我将它称作解决问题的终极大杀器,看了它,你一定明白了在哪区找错误,该搜索哪些问题。比如出现了failed loading  extention “ext\ZendDebugger.dll” ,你是不是想到了apache没有找到这个dll文件或者我是不是搞错了dll文件是ts还是nts呢。这个解决办法我会在另一篇关于apache+php+mysql的文章中详细介绍。

题外话:开源软件的配置固然是繁,版本固然多,版本更新也快,软件的使用上就必然有点不得心应手了,尤其是各种软件组合在一起问题那就更多了。那么怎么解决这些问题呢,我们一般的做法是有那个问题搜索那个问题,看了一个个解决方案,一个个教程,而忽视了最根本的东西,官方文档,看了文档,你才能知其然,知其所以然。我在上面乐此不疲的提到,官方文档怎么说怎么说,就是因为我在一次次的像小白鼠一样试验着网上的各种教程的时候,最终还是官方文档帮我解决了各种问题,各种疑惑。想想现在,就是出了问题我也不怕,并且认为,一步一步像这样配置下来怎么会出问题呢。所以回归原点,才是我们解决问题的根本之所在。

注:既然我在标题中写了最新最详细最简洁的字眼,但是我的表述不一定准却,考虑也并非周全。之所以这样,是想和大家一起讨论,大家有什么问题都可以留言,我们一起来解决,让它最新最详细也最简洁,让更多的后来人少走点弯路。

转载于:https://www.cnblogs.com/lspvic/archive/2011/05/27/2059938.html

最新最详细最简洁Eclipse调试PHP配置详解(Xdebug,Zend Debugger)相关推荐

  1. android开发之eclipse调试debug模式详解

     之前我写了一个相关的帖子,但是今天看了一个还是写的比我详细,于是我拿过来和大家分享. 1.在程序中添加一个断点 如果所示:在Eclipse中添加了一个程序断点 在Eclipse中一共有三种添加断 ...

  2. Windows内核开发调试环境配置详解

    1. 下载和使用WDK 应用程序使用开发包SDK,类似的,内核编程使用"Windows Driver Kit",简称WDK.WDK已经自带所有需要的头文件.库.C/C++语言及汇编 ...

  3. 史上最详细Docker安装最新版Minio 带详解 绝对值得收藏!!! 让我们一起学会使用minio搭建属于自己的文件服务器!!走上白嫖之路!解决启动了但是浏览器访问不了的原因

    让我们一起学会使用minio搭建属于自己的文件服务器!!走上白嫖之路! WARNING: Console endpoint is listening on a dynamic port (34451) ...

  4. Redis 配置详解 —— 全网最新最全

    文章目录 一.撰文目的 二.配置详解 1. EXAMPLE(概要说明) 2.INCLUDES(配置包含) 3.MODULES(加载模块) 4.NETWORK(网络配置) 5.TLS/SSL(通讯协议) ...

  5. MySQL调试--explain命令详解

    原文网址:MySQL调试--explain命令详解_IT利刃出鞘的博客-CSDN博客 简介 本文介绍MySQL的explain命令的用法及其结果的含义. explain作用 概述 在 SELECT 语 ...

  6. 最新最全GS游享天龙八部SF环境架设命令及配置详解

    2023年最新最全天龙八部SF环境之GS游享环境命令配置详解,GS游享环境安装有两种方式,在线安装,离线安装包安装,以下简称为"gs环境".GS环境是目录行业里面最新最全支持最新服 ...

  7. Eclipse Java Build Path详解

    Eclipse Java Build Path详解 1.设置"source folder"与"output folder". * source folder:存 ...

  8. 最新NVIDIA Ada Lovelace架构 和 RTX 40系列详解

    最新NVIDIA Ada Lovelace架构 和 RTX 40系列详解 Nvidia 的 Ada 架构和 GeForce RTX 40 系列显卡计划于 10 月 12 日开始到货,从 GeForce ...

  9. java JDK安装与环境配置详解(超超超级详细)

    点击以下链接获取详细图文教程! java JDK安装与环境配置详解 https://v.xiumi.us/board/v5/3QTAV/112689421

最新文章

  1. fastboot因为连接线影响出错
  2. Visual C++ MFC/ATL开发-高级篇(一)
  3. 用大白话彻底搞懂 HBase RowKey 详细设计!
  4. 2018厦门大学计算机技术分数线,厦大录取分数线2018 各省最新录取情况
  5. Android中Bitmap、Drawable、byte[]转换
  6. Atitit 产品化法通则 目录 1. 何谓软件产品化? 1 2. 产品化优点 vs 项目化 2 2.1. 软件复用率提高 2 2.2. ,项目化交付 2 2.3. 维护成本高 2 3. 产品金字塔
  7. ubuntu安装日文输入法
  8. 【BAT】BAT 阶段技能汇总:全功能小程序
  9. 历史类:古希腊与亚历山大帝国
  10. 如何同时对多个 Word 的内容进行批量替换
  11. Android 深入Http(4)从OkHttp源码来看Http,音视频开发工程师前景
  12. 从魅族的成功总结的几条经验?
  13. Shiro实战1-介绍
  14. 博客插入GIF动图技巧
  15. 南加大计算机专业本科sat要求,南加州大学SAT成绩要求
  16. 【头歌实训】Java高级特性 - 多线程基础(1)使用线程,使用 Callable 和 Future 创建线程
  17. 学习C#高级编程之XML
  18. 为什么日本人那么抗冻,这款自发热内衣说明了一切,极地工作者标配!
  19. 随机硬件地址?私有 WiFi 地址?随机 MAC 地址?
  20. 可以替代PLC-ANALYZER、IBA进行数据记录、分析的PLC-Recorder软件

热门文章

  1. 前端学习总结——CSS布局方式之传统布局
  2. [pytorch、学习] - 5.4 池化层
  3. 操作系统 --- 进程和管程的不同
  4. 顺大势逆小势策略之代码实现及可行性分析
  5. CentOS7 上安装 Zookeeper-3.4.9 服务
  6. 基于.Net Framework 4.0 Web API开发(4):ASP.NET Web APIs 基于令牌TOKEN验证的实现
  7. PHP学习总结(14)——PHP入门篇之常用运算符
  8. 快速构建Windows 8风格应用10-设备方向
  9. TUM数据集制作BundleFusion数据集
  10. I2C总线之(一)---概述