phpstorm + xdebug 远程断点调试

xdebug简介

Xdebug是php的一款调试工具,是基于zend的一个扩展,可以用来跟踪,调试和分析PHP程序的运行状况。如变量,函数调试,性能监测,代码覆盖率等


xdebug安装

1.下载xdebug源程序

git clone git://github.com/xdebug/xdebug.githttps://xdebug.org/download.php#releases

2.解压xdebug包
tar -xzvf xdebug.tgz

3.进入解压目录
cd xdebug

4.运行phpize
/usr/local/php/bin/phpize

5.编译
./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config

6.安装
make && make install

7.安装成功后会在php扩展目录生成类似xdebug.so的扩展

8.安装xdebug客户端xdebugclient (需要libedit扩展)

cd debugclient
./configure --with-libeditmakemake install

xdebug配置

1.在php.ini配置文件中添加如下内容
zend_extension="/wherever/you/put/it/xdebug.so"
2.如果是php5.3之前版本线程安全,添加如下内容代替上面1的内容
zend_extension_ts="/wherever/you/put/it/xdebug.so"
3.自从php5.3之后zend_extension_ts, zend_extension_debug不再使用

4.xdebug的一些其他配置

;显示错误信息
xdebug.default_enable = 1;函数调试
xdebug.auto_trace=on
xdebug.trace_output_dir
xdebug.trace_output_name
;Type: string, Default value: trace.%c
xdebug.collect_params = 1|3|4 (参数长度,参数值,参数=值)
xdebug.show_mem_delta=1 显示内存
xdebug.collect_return=1 显示返回值
xdebug.trace_options =1 追加日志
xdebug.collect_params=1xdebug.collect_vars = 1;开启性能分析
xdebug.profiler_enable=1;性能分析日志保存目录
xdebug.profiler_output_dir = /data/logs/xdebug/
;性能分析日志文件名称
xdebug.profiler_output_name = cachegrind.out.log;默认是如下格式,t时间,p进程id
;xdebug.profiler_output_name = cachegrind.out.%t.%p

;代码覆盖率
xdebug.coverage_enable = 1;以下是远程调试配置
xdebug.remote_host= 127.0.0.1xdebug.remote_connect_back = 1xdebug.remote_port = 9000xdebug.remote_log="/data/logs/xdebug/xdebug.log"

4.重启php使配置生效


性能分析日志工具

1.linux平台

工具KCacheGrind (Linux, KDE) https://kcachegrind.github.io/

2.win平台查看工具WinCacheGrind

相关网址

http://ceefour.github.io/wincachegrind/https://sourceforge.net/projects/wincachegrind/https://github.com/ceefour/wincachegrind/releases/tag/1.1

列名称含义

Self - Shows the execution time of the code in the current block

Cum. - Shows the total exuction time of functions that the current function (Self) calls

Avg vs. Total: Average is average time per call, Total is the total time spend in all calls.

3.Web方式查看webgrind

https://github.com/jokkedk/webgrind

XDEBUG配置:

1.安装 xdebug 略了。网上有很多资料。

重点写php.ini的配置

[XDebug]
   zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
   xdebug.default_enable = On
   xdebug.collect_params = On

xdebug.remote_connect_back = On           //如果开启此,将忽略下面的 xdebug.remote_host 的参数。 <一台webserver有多个开发者的工作目录的时候使用,如:p1.xx.com,p2.xx.com,p3.xx.com 。。。等。 >
   xdebug.remote_host = 192.168.59.104    //注意这里是,客户端的ip<即IDE的机器的ip,不是你的web server>
   xdebug.remote_port = 9900                       //      注意这里是,客户端的端口<即IDE的机器的ip,不是你的web server>
   xdebug.remote_enable = On
  xdebug.remote_handler = dbgp
  xdebug.remote_log = "/var/www/xdebug/xdebug.log"
 xdebug.remote_req = req
 xdebug.auto_trace = Off
 xdebug.remote_autostart = On
 xdebug.show_exception_trace = 0
 xdebug.collect_vars = On
 xdebug.collect_return = On
 xdebug.collect_params = On
 xdebug.var_display_max_depth = 15
 xdebug.show_local_vars = 1
 xdebug.dump_undefined = 1
 xdebug.profiler_enable = 1
 xdebug.profiler_output_dir = /var/www/xdebug

PHPSTORM 配置:
1.file->setings->php|Debug右侧。xdebug的那一块。 设置Debug port:9900(这里设置 的是,xdebug 吐出的debug信息,通过本机的什么端口传输。)

2.file->setings->php|Servers  右侧。  host: 你的web服务器的域名或ip ,端口,  下面的 use path mapping  意的是,你的项目的目录,对应服务器上的,什么目录?   这里一定要设置哦! 不然,会发生找不到文件而出错,导至调试终止。

3.Run->Edit Configurations-> 增加一个 PHP WEB APPlication 的调试点。  右侧: server 选择你上面建立的server.  starturl 设置你的入口文件。

至此,配置完毕!

这样的请求,可以注册一个调试客户端哦!

http://www.aihuxi.com/****.php?XDEBUG_SESSION_START=19192

点击,小虫子图标,即可,开始调试!

时间: 2024-10-07 20:34:57

phpstorm + xdebug 远程断点调试的相关文章

使用 PHPStorm + Xdebug 实现断点调试(二)

一.配置 Xdebug 配置 Xdebug 相关参数,在 php.ini 文件中新增如下配置,如果没安装的,请参考<PHP 安装 Xdebug扩展>: [xdebug] xdebug.remote_enable = on xdebug.remote_handler = dbgp xdebug.remote_mode = req xdebug.remote_host = localhost xdebug.remote_port = 9000 xdebug.idekey = PHPSTORM 重启

phpstorm xdebug 无法断点调试问题

最近用phpstorm+xdebug调试一段php代码的时候莫名其妙的无法切入断点调试 本地用的php集成环境是UPUPW ANK V1.1.7 64Bit 选择了集成环境中php版本为7.1.x 搞了好几天了一切配置都很正常之前都是好好的最后实在是没招了就改了下php版本5.6 既然可以了,我又把7.0至7.3都试了一遍发现7.0版本以上(不包括7.0)都无法正常调试,真是让人很无语.....具体我也没去找原因~ 如果你碰到了和我一样的问题不防该下php版本再试试. 原文地址:https://

PhpStorm+Xdebug配置单步调试PHP

(一)php安装xdebug扩展,PHPStorm+XDebug单步调试 (二)PHPStorm配置XDebug (三)PHPStorm使用XDebug调试 (四)PhpStorm+Xdebug配置单步调试PHP 一.原理: Xdebug是一款php调试插件,支持在Windows或Linux上进行远程调试.在php文件运行时,通过TCP协议发送调试信息到远程端口,IDE在收到调试信息时,可以向Xdebug发送单步运行,中止运行,运行等命令.此插件还可以进行代码覆盖率的统计,有兴趣的小伙伴可以一起

PhpStorm+xdebug远程调试Linux机器上的代码

一.背景介绍: 最近在了解网址导航项目,为了能够更加深入地了解被测对象,所以我选择了查看网址导航代码的方式进行,但是只是生硬地查看php源代码是比较生涩的,我希望能够通过IDE工具进行代码单步调试来了解整个网址导航的功能实现. 为了达成以上目的,我选择了phpstorm+xdebug来远程调试Linux上的代码.与之前白松分享的phpstorm+xdebug调试方法不同的是,前者调试的Webserver是在本地环境搭建了php+apache调试的,而我要面对的问题有: 1.网址导航的代码是部署在

PhpStorm XDebug 远程调试

现在我们自己公司的各种开发和测试服务器,都是使用阿里云的服务器.一些PHP的项目,无法在本地搭建完整的环境,在外网服务器上调试更方便定位问题.发现网上没有完整的关于如何配置PHPStorm和XDebug远程调试的资料,自己配置的过程遇到一些问题,写出来给大家做一个参考. 演示环境 本地开发环境:Mac Pro + PHPStorm 9.0 服务器的环境:Ubuntu 14 LTS + PHP 5.5 + XDebug 2.2.3 不管是Windows还是其它的Linux的版本,具体的配置差不多,

最新为Phpstorm配置xdebug 进行断点调试

额  ,曾经写过一个,现在发现不咋好使了 ,你说咋整,下载xdebug的时候 还得注意系统是32位还是64位,而且一堆下载文件不知道是哪个. 额,所以我现在发现有个更好的方法,啥也不下了 直接配把  就是在你的 xampp的  php文件夹的ext文件夹里边有这么个现成的文件 就用这个   其实就行了 然后下一步就是点击 apache的config  选择php.ini文件,然后 把我的代码粘贴到 这个文件的最后一行 [XDebug]zend_extension = "D:\ThreeSoft\

.NET C#微信公众号开发远程断点调试(本地远程调试生产环境)

最近在做微信公众号开发,由于之前没有接触过,突然发现调试不方便,不方便进行断点跟踪调试.因为微信那边绑定的服务器地址必须是公网地址,但是还是想进行断点调试(毕竟这样太方便了) 因此上网搜了一下,发现好多是使用软件之类的进行请求转发从生产环境转发请求到开发环境上,发现有的太麻烦了. 突然想到Vs有一个附加到进程的远程调试.于是玩了一把.我们直接开始(服务器上就不要使用发布版本代码了,代码和本地开发一样,不然是不能调试的) 本篇是以开发环境的Visual Studio2013旗舰版以及生产环境里阿里

zendStudio安装Xdebug项目断点调试

1,首先安装xdebug插件 传送门 2,配置php.ini文件如下: [XDebug] xdebug.profiler_append = 1xdebug.profiler_enable = 1xdebug.profiler_enable_trigger = 1xdebug.profiler_output_dir ="D:\xdebug"xdebug.trace_output_dir ="D:\xdebug"xdebug.profiler_output_name =

phpstorm+xdebug手机app调试

1.安装过程网上搜一下全都是,这里省略. 2.由于debug调试需要去判断cookie中XDEBUG_SESSION,然后去调试.由于app接口请求没法去传,而且就算去传递也很麻烦,还要让app去改动,很不现实. 3.去网上搜索了很长时间,都没搜索到,于是自己想办法弄. 4.由于自己的本地是nginx,所以我可以在访问的时候,在nginx上面将XDEBUG_SESSION这个设置上.以后每次不管什么请求,带不带XDEBUG_SESSION,都是可以进行调试的. server { listen 8