Xdebug是一个PHP程序调试器,可以用来跟踪,调试和分析PHP程序的运行状况。其实调试PHP还有其他工具比如Zend Debugger,但zend官方不是免费发布的,后来更新为zend Server也是收费版。而Xdebug是完全免费的并且功能也不差。其实xdebug可以看做PHP的扩展,如果环境中没有集成需要先在官网下载然后安装,下载地址:https://xdebug.org/download.php。下面说一下安装方式:

1.在windows下的安装方式,在windows安装时下载需要注意除了下载的扩展和PHP版本一致外还应该查看一下PHP是TS(Thread-Safety)即线程安全还是NTS(None-Thread Safe)即非线程安全,可以通过查看phpinfo内容确定是哪一种。找到phpinfo中的PHP Extension Build这一项,如下图:

下载完成后将dll文件放到php的安装目录下,为了统一可以放到ext目录下,也可以重命名一下,然后再php.ini中加入如下代码(具体可根据调试场景进行修改)

[Xdebug]

zend_extension="扩展的绝对路径"xdebug.collect_params= 1xdebug.collect_return= 1xdebug.auto_trace= 0xdebug.profiler_enable= 0xdebug.max_nesting_level= 1000000xdebug.remote_enable= 1xdebug.remote_host=localhost

xdebug.remote_port= 9999xdebug.remote_handler=dbgp

xdebug.idekey= netbeans-xdebug

以上代码主要适合本地调试的场景,如果是局域网内多人远程调试可以添加xdebug.remote_connect_back =1或者根据具体的调试场景进行修改。重启apache或者php-fpm之后使配置文件生效可以再phpinfo中查看到如下图所示:

2.linux下安装xdebug的方式

首先也需要在官网下载xdebug,下载source即可,然后解压后进入解压后的目录然后按如下步骤执行:

/PHP的安装目录/bin/phpize

./configure --with-php-config=/PHP的安装目录/bin/php-configmake

make install

执行成功后会显示一个带extensions的目录,记下这个目录,这个目录中会包含xdebug.so,然后和windows一样修改php.ini加入相同代码(除了扩展目录和文件名不同),重启php-fpm即可生效。

特别提示:不管是Windows还是Linux安装xdebug都需要以zend扩展的形式安装,如果提示XDEBUG NOT LOADED AS ZEND EXTENSION即下图所示界面则没有正确安装,需要重新修改配置文件。

以上配置是xdebug本地调试,其实xdebug也可以设置局域网多人调试或者远程调试的方式。待续....

转:https://www.liminghulian.com/article/51

另: 配置其它选项:

[Xdebug]

;指定Xdebug扩展文件的绝对路径

zend_extension="C:\App\php\php\php-7.0.12-nts\ext\php_xdebug-2.7.0alpha1-7.0-vc14-nts.dll";最大循环或调试次数,防止死循环

xdebug.max_nesting_level=50;启用性能检测分析

xdebug.profiler_enable=On

;启用代码自动跟踪

xdebug.auto_trace=on

;允许收集传递给函数的参数变量

xdebug.collect_params=On

;允许收集函数调用的返回值

xdebug.collect_return=On

;指定堆栈跟踪文件的存放目录

xdebug.trace_output_dir="C:\App\php\debug";指定性能分析文件的存放目录

xdebug.profiler_output_dir="C:\App\php\debug";追加

xdebug.profiler_append=1;指定追踪文件名格式

;xdebug.profiler_output_name= "cachegrind.out.%c"xdebug.profiler_output_name= "cachegrind.out.%s";远程调试是否开启

xdebug.remote_enable=On

;端口

xdebug.remote_port=9000;远程调试地址

xdebug.remote_host= 127.0.0.1;数组或对象最大层数 最大可设置1023

xdebug.var_display_max_depth= 10;将require,include相关载入的文件名写入追踪文件

xdebug.collect_includes=1;堆栈追踪

xdebug.default_enable=1;打印请求方式

xdebug.dump.SERVER=REQUEST_METHOD

;打印GET请求参数

xdebug.dump.GET=*;打印POST请求参数

xdebug.dump.POST=*;打印COOKIE

;xdebug.dump.COOKIE=*;打印UA

;xdebug.dump.SERVER=HTTP_USER_AGENT

参考:  https://www.cnblogs.com/alex-dong/p/9126904.html

linux php 断点调试,PHP断点调试工具Xdebug的安装相关推荐

  1. vs2005无法断点调试网站,断点失效

    vs2005无法断点调试网站,断点失效 今天做网站开始调试没问题,可是打补定不小心把 IE8 给装上拉,装了IE8之后, Vs2005的WebSite程序按F5无法正常调试. 需要手动附加到进程, 比 ...

  2. UART和RS232/RS485的关系是什么?RS485在linux下的调试 ubuntu串口调试工具

    串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式.但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句 ...

  3. Java断点调试 idea断点调试 debug教程

    IDEA断点调试 Java程序断点调试 文章目录 IDEA断点调试 Java程序断点调试 前言 一.什么情况下需要debug 二.使用idea如何进行debug 三.假设案例分别进行debug教程 1 ...

  4. idea断点调试jar包

    本文以springbootdemo-0.0.1-SNAPSHOT.jar 为例,jar内容需与idea保持一致. 1.启动命令 常规jar启动:java -jar springbootdemo-0.0 ...

  5. 如何在 Python 中使用断点调试

    实际上没人能一次就写出完美的代码,除了我.但是世界上只有一个我. – 林纳斯·托瓦兹(Linux 之父) 既然不是神,写代码自然免不了要修改.修改代码的过程被称作调试,又叫 debug. 刚接触编程的 ...

  6. 不依赖浏览器控制台的JavaScript断点调试方法

    随着浏览器的逐渐强大,绝大多数情况下的代码调试都是可以通过浏览器自带的一些调试工具进行解决.然而对于一些特殊情况仍然无法享受到浏览器的强大 调试能力,比如QQ客户端内嵌web的调试(虽然说QQ目前已经 ...

  7. Java IDEA断点调试

    断点调试(debug) 断点调试应用案例 01: package Assign;public class Debug01 {public static void main(String[] args) ...

  8. clodeblocks debug断点调试_idea debug调试————简单常用,适合初学者

    背景: 在现在的开发中,如果不会debug,那么将会给我们的开发带来很大的困扰,如果仅仅是依靠日志信息去查问题,将会大大增加我们解决问题的难度,下面说一下idea开发工具下的简单debug. 适用人群 ...

  9. 【软件开发底层知识修炼】十五 快速学习GDB调试二 使用GDB进行断点调试

    上一篇文章我们学习了使用GDB的最基本方法:[软件开发底层知识修炼]十四 快速学习GDB调试一 入门使用 本篇文章将学习GDB的断点调试.断点调试是一种非常重要的调试方法. 文章目录 1 断点类型 2 ...

最新文章

  1. flux读取不到数据_【Java】spring-webflux两种开发模式,获取不到使用ajax的post提交的数据?...
  2. nmap脚本(nse)使用总结
  3. mysqldump工具,工作的本质是什么呢?(dump表的时候,是否会产生drop表的语句)
  4. 1.0 MySQL数据库基础知识
  5. Jerry的SAP Kyma和Kubernetes讲座的幻灯片分享
  6. LeetCode 837. 新21点(动态规划)
  7. 企业微信H5_集成消息解密类,消息推送Get及Post回调处理
  8. Android之使用Intent跳转到一个网页
  9. java迷宫实训报告_Java综合实训报告-迷宫.doc
  10. 第七届 蓝桥杯 省赛 第六题 方格填数(next_permutation)
  11. 树的表示(1)--双亲表示法
  12. linux dd copy all partitions,Linux 系统下使用dd命令备份还原MBR主引导记录
  13. java关闭服务_实现优雅地关闭Docker中的java服务
  14. 「leetcode」110.平衡二叉树(详解)
  15. mac版本的pycharm如何设置成中文
  16. Free MyBatis plugin下载安装及作用
  17. SN65HVD888DR应用 TPS61170DRVR中文资料_1.2A 转换器
  18. 推荐几款微信小程序常用组件库
  19. linux php 验证码不显示_怎么解决php linux验证码不显示的问题
  20. Ubuntu内核版本降级

热门文章

  1. iptables命令_理解 Linux 下的 Netfilter/iptables
  2. android 指纹识别支付 secure os,Android指纹登录/指纹支付简述
  3. mysql 分区表 归档_MySQL分区表
  4. 北京工业大学计算机科学与技术研究生,北京工业大学研究生专业介绍:计算机科学与技术...
  5. linux eclipse web插件,使用Tomcat插件开发WEB应用
  6. maven打包 jar中没有主清单属性
  7. 不同年龄段给狗狗起名字,我命中了,你呢?
  8. 教你在微信头像上加皇冠,很漂亮!
  9. 微信小游戏「跳一跳」技术手段高分秘籍实现
  10. android 九宫格虚线,形状Drawable和九宫格