设为首页 收藏本站
查看: 625|回复: 0

[经验分享] php 断点调试工具配置之一

[复制链接]

尚未签到

发表于 2017-3-29 11:28:45 | 显示全部楼层 |阅读模式
[size=0.76em] 
[size=0.76em][size=1.5em]开始之前
[size=0.76em][size=1.2em]关于本教程
[size=0.76em]本教程将演示如何为 Eclipse 配置 PHP Development Tools(PDT)插件以调试 PHP 脚本,并介绍在详细查看脚本时应使用哪些透视图(即 PHP 调试)。
[size=0.76em] 

[size=0.76em][size=1.2em]目标
[size=0.76em]完成本教程后,您将能够使用 PDT 项目开发 PHP 应用程序,从而在 Eclipse 中设置 XDebug — 一种开源项目,可以调试可执行的或运行在 Web 服务器上的脚本 — 或 Zend Debugger。您将了解 PDT 项目的 PHP Debug 透视图的各个部分,并了解如何设置、查看和使用断点。您还将了解在单步调试代码时如何检查变量的值,以及如何在本地服务器上调试 PHP Web 应用程序,从而使用调试器遍历 PHP Web 应用程序。

 

[size=0.76em] 

[size=0.76em][size=1.2em]先决条件
[size=0.76em]要从本教程获得最大收益,您应该熟悉一些 PHP 开发。最好是曾经进行过软件开发。如果熟悉其他语言的调试,则可以更好地理解调试概念。本教程适合于接触 Eclipse 不多的新手,而不是长期使用 Eclipse 的人员。
[size=0.76em][size=1.2em]系统需求
[size=0.76em]要完成本教程,您需要以下设置:

[size=1em]运行 Microsoft® Windows®、Mac OS X 或 Linux® 的计算机
本教程的示例 php.ini 文件用于 Mac OS X 和 Linux 系统。由于两种调试器都需要进行配置,以告诉 PHP 调试器扩展的位置,因此惟一明显的区别 — 如果查看 Windows 示例 — 是调试器扩展的路径。对于 Mac OS X 和 Linux,库名以.so结尾。对于 Windows,库名以.dll结尾;同样,使用正斜杠(/)而不是反斜杠(\)作为目录分隔符。[size=1em]PHP V5.x
Linux 用户可以使用其发行版中附带的软件包安装 PHP。OS X 和 Windows 用户可以在 PHP.net 中查找PHP V5.x。
[size=1em]注意:本教程的示例使用的是 PHP V5.2.5。

[size=1em]Eclipse V3.3
Linux 用户可以很容易获得 Eclipse,因为它通常包含在发行版附带的软件包中。也可以在Eclipse 下载中找到 Eclipse 集成开发环境(IDE)。[size=1em]用于 Web 应用程序的 Apache 或 Microsoft Internet Information Services(IIS)
需要安装一个 Web 服务器来运行教程示例,演示如何在服务器中调试 PHP Web 页面。然而,如果只希望调试非 Web 页面的 PHP 脚本,则不需要使用 Web 服务器。对于本教程,我们使用 Apache V2 作为 Web 服务器。此外,也可以使用 Windows 和 IIS。本教程需要您具有适当的访问权限,可以写 Web 服务器文档的根目录。[size=1em]Eclipse PHP Development Tools 框架
如果还没有安装PHP Development Tools (PDT),请阅读 “PDT 项目概述” 小节,以决定是否需要下载并安装绑定在 Zend Debugger 中的 PDT。Eclipse FoundationPDT/Installation wiki提供了简要的说明。[size=1em]Zend Studio Web Debugger
下载Zend Studio Web Debugger的 30 天试用版。[size=0.76em][size=1.5em] 
[size=0.76em][size=1.5em]安装和配置调试器
[size=0.76em]本节将介绍调试器的配置并将它连接到 PDT 中,准备调试示例项目中的 PHP 文件。
[size=0.76em]两种调试器都需要进行配置,包括将扩展复制到一个目录、使用一些配置值配置扩展并重启 Web 服务器。完成这些工作后,就可以使用两种调试器中的一种调试 PHP 应用程序了。
[size=0.76em]注意:如果只希望调试 PHP 脚本(而不是服务器上的 Web 页面),并且还没有安装 PDT,最快速方法是使用 Eclipse 更新站点 Zend.com 来安装与 Zend Debugger 绑定在一起的 PDT 版本。安装完成后就可以在 IDE 中开始调试 PHP 脚本。
[size=0.76em][size=1.2em]安装 Zend Debugger

确保编辑正确的文件

在编辑 php.ini 之前,使用脚本中的phpinfo()函数获得有关 PHP 应用程序的更多信息。这些信息包括配置文件的完整路径以及扩展目录的位置。关于更多信息,请参见 “故障排除” 小节。



[size=0.76em]安装绑定的 Zend Debugger 很容易,因为可以从 Zend 的更新站点获得,就像从 Eclipse 更新站点获得 PDT 一样。如果从 Zend 的站点下载 PDT 绑定版,则可以立即开始调试脚本。
[size=0.76em]如果希望使用 Zend Debugger 在服务器上调试 PHP Web 页面,需要安装 PHP 扩展并在 php.ini 配置文件中进行配置。要安装和配置这些扩展,需要执行以下操作:


  • 从 Zend 的 Web 站点下载 Zend Web 服务器扩展的二进制文件。
  • 提取包含二进制文件的 ZIP 文件。
  • 将扩展二进制文件(称为ZendDebugger.dllZendDebugger.so)复制到一个文件夹。不一定非要将它们放到 PHP 扩展文件夹中,但这是一个不错的位置,因为这使所有的扩展二进制文件都集中到同一个位置。如果不知道具体是哪个文件夹,请查看 “故障排除” 一节。
  • 使用清单 5 中的设置更新您的 php.ini 文件。可能需要验证正在编辑的文件是否是正确的 php.ini 文件。同样,必须确保zend_extension指令是正确的。请参看 “故障排除” 获得更多信息。
  
[size=0.76em]清单 5. 修改后的 php.ini


                    
[Zend]
zend_extension="/full/path/to/ZendDebugger.so"
zend_debugger.allow_hosts="127.0.0.1, 10.0.1.3"
zend_debugger.expose_remotely=always



  • 重新启动 Web 服务器。
  • 检验 Zend Debugger 是否被正确安装,方法是在脚本中使用phpinfo()函数或php -m命令并查看[Zend Modules]。
  
[size=0.76em]清单 6.php -m命令的输出


                    
[Zend Modules]
Zend Debugger

[size=0.76em]在检验安装时,如果没有看到列出的模块,则不能通过 PDT 运行调试器(这将在下一节描述)。在服务器调试文件之前,必须正确地安装模块。
[size=0.76em]如果检验到模块已成功安装,则继续 “设置 PDT” 小节。

 

[size=0.76em] 

[size=0.76em][size=1.2em]安装 XDebug
[size=0.76em]要使用 XDebug 作为 PDT 的调试器,需要下载并安装 XDebug,就像没有使用 Eclipse 时的做法一样。有关 XDebug 的下载和安装说明请查看xdebug & eclipse pdt。在编写本教程时,这些说明仍然适用,但是本教程仅从较高的层次介绍了这些内容:


  • 下载正确的二进制文件(Windows)或源文件(Linux 或 Mac OS X)。
  • 如果使用的是 Mac OS X 或 Linux,则编译 XDebug 库。因此必须先在目录中运行phpize命令,然后运行make命令,如下所示。
  
[size=0.76em]清单 7. XDebug 编译命令


                    
# cd [directory_with_source]
# phpize
# make



  • 使用合适的zend_extension指令编辑 php.ini 文件以包括 XDebug 的模块(参见 “故障排除” 获得详细信息)。
  • 重新启动 Web 服务器。
  • 检验 XDebug 是否正确安装,方法是在 Web 服务器中使用php -m命令或脚本中的phpinfo()函数。图 9 展示了phpinfo()的输出示例。清单 8 展示了php -m输出。
  
[size=0.76em]图 9.phpinfo()输出
DSC0000.jpg


[size=0.76em]清单 8. 示例php -m输出


                    
[Zend Modules]
Xdebug


zend_extension 还是 zend_extension_ts?

如果还不清楚使用哪个zend_extension指令,那么问题有点复杂。我曾经使用了一个错误的指令,这给我带来了很大的麻烦。参见 “故障排除” 小节,了解有关如何使用指令的提示。



[size=0.76em]在使用 PDT 和 XDebug 进行调试之前,必须正确安装模块。如果没有查看到模块信息,那么查阅 “故障排除” 小节获取提示。
[size=0.76em]在进行调试时,XDebug 的准备工作要比 Zend Debugger 多一些,因为您必须自己编译这些模块。但是现在您已经可以在 Web 服务器上调试本地脚本和文件。

 

[size=0.76em] 

[size=0.76em][size=1.2em]配置调试器
[size=0.76em]当安装了这两种调试器的任意一种后,可以配置 PDT 使用调试器的方式,在 Eclipse PHP\Debug 之下使用首先项,如下所示。
  
[size=0.76em]图 10. PHP Debug 首选项
DSC0001.jpg


[size=0.76em]注意,在默认情况下,两种调试器被设置为侦听不同的端口:Zend Debugger 为 10000,XDebug 为 9000。根据您的环境设置,可能需要修改端口设置。如果修改了端口设置,确保没有将调试器配置为绑定在相同的端口(如果同时安装了两种调试器的话)。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-357003-1-1.html 上篇帖子: php设计模式之单例模式 下篇帖子: PHP框架之Laravel框架初体验
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表