热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP调试凶器Xdebug安装配置教程

PHP调试利器Xdebug安装配置教程作者:zhanhailiang日期:2013-03-111.简述引用官方描述:TheXdebugextensionhelpsyoudebuggingyourscriptbyprovidingalotofvaluabledebuginformation.2.安装配置教程#下载xde
PHP调试利器Xdebug安装配置教程

  作者:zhanhailiang 日期:2013-03-11

1.简述

引用官方描述:

The Xdebug extension helps you debugging your script by providing a lot of valuable debug information.

2.安装配置教程

# 下载xdebug安装包linux-06bq:/data/software/ # wget http://xdebug.org/files/xdebug-2.2.1.tgzlinux-06bq:/data/software/ # tar zxvf xdebug-2.2.1.tgzlinux-06bq:/data/software/ # cd xdebug-2.2.1/ # 编译安装xdebuglinux-06bq:/data/software/xdebug-2.2.1/ # phpizelinux-06bq:/data/software/xdebug-2.2.1/ # ./configure --with-php-cOnfig=/usr/local/services/php/bin/php-config --enable-xdebuglinux-06bq:/data/software/xdebug-2.2.1/ # makelinux-06bq:/data/software/xdebug-2.2.1/ # sudo make installInstalling shared extensions:     /usr/local/services/php/lib/php/extensions/no-debug-non-zts-20090626/   +----------------------------------+  |                                                                      |  |   INSTALLATION INSTRUCTIONS                                          |  |   =========================                                          |  |                                                                      |  |   See http://xdebug.org/install.php#configure-php for instructions   |  |   on how to enable Xdebug for PHP.                                   |  |                                                                      |  |   Documentation is available online as well:                         |  |   - A list of all settings:  http://xdebug.org/docs-settings.php     |  |   - A list of all functions: http://xdebug.org/docs-functions.php    |  |   - Profiling instructions:  http://xdebug.org/docs-profiling2.php   |  |   - Remote debugging:        http://xdebug.org/docs-debugger.php     |  |                                                                      |  |                                                                      |  |   NOTE: Please disregard the message                                 |  |       You should add "extension=xdebug.so" to php.ini                |  |   that is emitted by the PECL installer. This does not work for      |  |   Xdebug.                                                            |  |                                                                      |  +----------------------------------+linux-06bq:/data/software/xdebug-2.2.1/ # cp /usr/local/services/php/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so /usr/local/services/php/extensions/ # 修改php配置文件################################################################add the following line to php.ini:     zend_extension="/wherever/you/put/it/xdebug.so"     (for non-threaded use of PHP, for example the CLI, CGI or Apache 1.3 module)or:    zend_extension_ts="/wherever/you/put/it/xdebug.so"     (for threaded usage of PHP, for example the Apache 2 work MPM or the the ISAPI module). Note: In case you compiled PHP yourself and used --enable-debug you would have touse zend_extension_debug=. From PHP 5.3 onwards, you always need to use thezend_extension PHP.ini setting name, and not zend_extension_ts, nor zend_extension_debug.However, your compile options (ZTS/normal build; debug/non-debug) still need to matchwith what PHP is using.################################################################linux-06bq:/data/software/xdebug-2.2.1/ # vim /usr/local/services/php/etc/php.ini # zend_extension=/usr/local/services/php/extensions/xdebug.so # 检测xdebug是否加载成功(两种方法,php -m或输出phpinfo()结果)linux-06bq:/data/software/xdebug-2.2.1/ # php -m|grep xdebugxdebuglinux-06bq:/data/software/xdebug-2.2.1/ # php -r "phpinfo();" |grep xdebugxdebugxdebug support => enabledxdebug.auto_trace => Off => Offxdebug.cli_color => 0 => 0xdebug.collect_assignments => Off => Offxdebug.collect_includes => On => Onxdebug.collect_params => 0 => 0xdebug.collect_return => Off => Offxdebug.collect_vars => Off => Offxdebug.coverage_enable => On => Onxdebug.default_enable => On => Onxdebug.dump.COOKIE => no value => no valuexdebug.dump.ENV => no value => no valuexdebug.dump.FILES => no value => no valuexdebug.dump.GET => no value => no valuexdebug.dump.POST => no value => no valuexdebug.dump.REQUEST => no value => no valuexdebug.dump.SERVER => no value => no valuexdebug.dump.SESSION => no value => no valuexdebug.dump_globals => On => Onxdebug.dump_Once=> On => Onxdebug.dump_undefined => Off => Offxdebug.extended_info => On => Onxdebug.file_link_format => no value => no valuexdebug.idekey => no value => no valuexdebug.max_nesting_level => 100 => 100xdebug.overload_var_dump => On => Onxdebug.profiler_aggregate => Off => Offxdebug.profiler_append => Off => Offxdebug.profiler_enable => Off => Offxdebug.profiler_enable_trigger => Off => Offxdebug.profiler_output_dir => /tmp => /tmpxdebug.profiler_output_name => cachegrind.out.%p => cachegrind.out.%pxdebug.remote_autostart => Off => Offxdebug.remote_connect_back => Off => Offxdebug.remote_COOKIE_expire_time => 3600 => 3600xdebug.remote_enable => Off => Offxdebug.remote_handler => dbgp => dbgpxdebug.remote_host => localhost => localhostxdebug.remote_log => no value => no valuexdebug.remote_mode => req => reqxdebug.remote_port => 9000 => 9000xdebug.scream => Off => Offxdebug.show_exception_trace => Off => Offxdebug.show_local_vars => Off => Offxdebug.show_mem_delta => Off => Offxdebug.trace_enable_trigger => Off => Offxdebug.trace_format => 0 => 0xdebug.trace_optiOns=> 0 => 0xdebug.trace_output_dir => /tmp => /tmpxdebug.trace_output_name => trace.%c => trace.%cxdebug.var_display_max_children => 128 => 128xdebug.var_display_max_data => 512 => 512xdebug.var_display_max_depth => 3 => 3OLDPWD => /data/software/xdebug-2.2.1_SERVER["OLDPWD"] => /data/software/xdebug-2.2.1 # 最后重启服务器或php-fpm即可(根据当前服务器加载PHP模式而定)

3.测试用例

简单的测试用例如下:

header( 'X-Test: Testing' );setCOOKIE( "TestCOOKIE", "test-value" );var_dump( xdebug_get_headers() );

输出如下:

array(2) {  [0] =>  string(15) "X-Test: Testing"  [1] =>  string(33) "Set-COOKIE: TestCOOKIE=test-value"}

高级测试用例——查看变量的zval值

$a = array(1, 2, 3);$b =& $a;$c =& $a[2]; xdebug_debug_zval('a');

输出如下:

a: (refcount=2, is_ref=1)=array(3) {  [0] =>(refcount=1, is_ref=0)=  int(1)  [1] =>(refcount=1, is_ref=0)=  int(2)  [2] =>(refcount=2, is_ref=1)=  int(3)}

开始Xdebug之旅吧,少年!【Documentation for: Xdebug 2】


推荐阅读
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • Linux 服务器修改用户名
    Linux服务器修改用户名1、编辑名称vimetchostname2、保存编辑并退出wq3、重 ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • 基于SSL的mysql服务器的主从架构实现说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器从服务器的mysql软件版 ... [详细]
  • 1、概念解读1.1什么是链接?链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的方法。Linux系统中有两种链接:硬链接(HardLink)和软链接(SoftLink), ... [详细]
author-avatar
傻缺缺的谭贱儿_452
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有