xdebug调试

调试环境部署

xdebug的版本需要与PHP版本相对于,所以不要轻易改变PHP环境版本。

0 配置php解析器

1 下载对应版本的xdebug

xdebug官网下载地址:https://xdebug.org/download.php

你需要仔细分析和选择要下载的对应版本,否则无法调试。由于非常容易出错,建议采用下面这种简单方法:

xdebug网站提供一个自动分析你系统对应的xdebug版本的页面,网址是 https://xdebug.org/wizard.php

在页面中需要粘贴进去php版本信息,也就是phpinfo()函数的信息,如下图:

ctrl A全选这个页面的信息,然后粘贴到第一个图片的页面中。

点击 analyse my phpinfo() output 按钮

将下载的DLL文件拷贝到指定目录,按照页面上的提示即可

到此为止,xdebug的下载和启用就完成了,重新运行 phpinfo.php

2 修改php.ini文件里的xdebug配置项

xdebug2:

[XDebug]
xdebug.profiler_output_dir="C:\phpstudy2018\PHPTutorial\tmp\xdebug"
xdebug.trace_output_dir="C:\phpstudy2018\PHPTutorial\tmp\xdebug"
zend_extension = "C:\phpstudy2018\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug.dll"

xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;开启远程调试
xdebug.remote_enable = 1
;客户机xdebug调试协议
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = "req"
xdebug.remote_host=127.0.0.1
;xdebug.remote_port默认值为9000,这里需要跟phpstorm配置一致,下面有说明
xdebug.remote_port=9000
;idekey 区分大小写
xdebug.idekey="PHPSTORM"

xdebug3:

[xdebug]
zend_extension = "C:\phpstudy2018\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug.dll"
xdebug.mode= "debug"			
#性能分析文件存放位置 
xdebug.output_dir = "C:\phpstudy2018\PHPTutorial\tmp\xdebug" 	
#步骤调试器,应该是步入步进步出的吧
xdebug.remote_handler = "dbgp" 	
xdebug.idekey="PHPSTORM"
xdebug.start_with_request = yes 
#由remote_host替换过来了,就写本机的就行
xdebug.client_host=127.0.0.1 		
#由remote_port替换过来了,调试端口
xdebug.client_port=9000  	

3 配置phpstorm

Ctrl Alt S快捷键打开设置,搜索xdebug,其中的Debug port确保不被其他应用占用,当程序无法进入断点时,可以考虑是否有其他应用占用了你本地的9000端口。

在DBGp Proxy中配置你的idekey,idekey和在php.ini配置文件中xdebug.idekey项的值一样,host是你的服务器ip或域名

【File】 ->【Settings】 ->【Languages & Frameworks】 ->【PHP】的servers中配置xdebug服务

测试一下配置是否成功

(如果不成功,根据报错去修改)

4 第一个调试

调试使用:

新建一个运行调试配置

新建php web page页面

照着这样填就好了。

开始调试:

设置断点,开启debug监听。

点击绿色的甲壳虫开始调试。

红色圆中有个对号,是说明改断点生效了

即可看到调试数据在下方显示。

补充--xdebug helper插件

使用该插件主要是为了弥补xdebug本身的局限,直接使用phpstorm xdebug调试的话,设置的断点需要每次都重头运行到断点处,而不能灵活的终止或者其他操作
xdebug helper就可以实现这个功能。需要终止的时候选择disable选项即可,而不需要从头开始。

安装使用:

直接搜索xdebug helper。安装成功后右键进入扩展选项

然后,前面正常配置

浏览器开启debug,发包即可

参考

https://blog.csdn.net/yinhangbbbbb/article/details/79247331

https://www.cnblogs.com/lightsrs/p/9612409.html

https://www.cnblogs.com/beidaxmf/p/14527335.html

到此这篇关于phpstorm动态调试的文章就介绍到这了,更多相关phpstorm动态调试内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

phpstorm动态调试环境部署过程的更多相关文章

  1. Html5实现首页动态视频背景的示例代码

    这篇文章主要介绍了Html5实现首页动态视频背景的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. ios – 在Swift中动态创建uiviewcontroller

    我想动态创建UIViewController而不创建类或使用Mainstoryboard.我希望它以编程方式发生.这可能吗?

  3. 使用iOS故事板动态调整UILabel的高度

    我有一个标签,它是使用iOSStoryboard布局创建的.但是,标签的内容是动态的,可以在运行时更改.如何确保根据标签中的内容调整标签的高度.我试过了:将行数设置为0设置编辑器–>适合内容的大小.但它们不起作用.标签中的文本仅以单行打印,因此某些文本不会出现在屏幕上.任何帮助将受到高度赞赏.解决方法试试这种方式你的标签应该是0的行数给标签赋予高度约束并选择高度约束然后设置大于等于,它将根据内容自动调整高度

  4. ios – 如何以编程方式动态地对UIButton的背景图像进行着色?

    我正在开发一个应用程序–或者更确切地说是一些可重用的“框架”,我很乐意在它工作时分享它.在此应用程序中,用户应该能够从颜色主题列表中进行选择.因此,应用程序必须能够以某种相当动态的方式对其UI元素进行着色.对于按钮,所有着色都不起作用.必须在此处提供正确着色的背景图像.但是为每个人准备一套背景图像只是第二好的.它不够动态和灵活.最后,解决方案可能归结为为所选和正常状态提供一个单色(灰色)梯度图像,

  5. ios – Firebase动态链接中的customURLScheme是什么?

    在documentation中它说要将以下行添加到我的AppDelegate.swift:根据我的理解,这应该是您在info.plist中添加的相同链接.但是,我很困惑为什么在quickstart-iosrepo他们决定将其等同于“dlscheme”.任何人都可以帮我理解这个方案究竟是什么?

  6. ios – 在动态构建的分段控件的导航栏中自动调整大小

    控制器将UISegmentedControl添加到导航栏.分段控件添加到控制器的viewDidLoad方法的导航栏中,但实际的段是在调用viewDidLoad后动态创建的.显示视图时,我无法自动调整分段大小.他们都被挤压,likeinthispost,虽然这里的决议不适用.如果在将分段控件添加到导航栏的右侧项目之前添加了段,则会自动调整它们的大小并在显示视图时看起来很好.这是我的代码的精简版本,如下所示.我错过了什么?

  7. Autolayout iOS 6动态表格单元格高度

    我有UITableviewCell子类.在这个单元格中,我有2个标签和一个显示评级星的视图.我想要lbl评论的动态高度来适应所有的文本.它应该扩大&根据评论的长度收缩高度.我已经实现了这一点,但没有AutoLayout如下现在我使用AutoLayout功能.如何使用Autolayout实现这一点?

  8. 动态模拟iOS动态类型系统文字大小(UIContentSizeCategory)

    解决方法多么尴尬!

  9. ios – 链接动态(Cocoa Touch)框架内的静态库

    我有一个链接到谷歌地图的动态框架(据我所见,它仍然是一个静态库,如果不是这样,只是一个框架包装).问题是,框架与静态库链接,并且似乎直接包含其代码,因为我不需要在使用框架的应用程序中链接或嵌入Google地图,并且一切正常.除非我在应用程式内使用Google地图.无论是在编译阶段获得“架构XY的未定义符号”,还是将GoogleMaps与之链接起来,然后在应用启动期间在调试控制台中收到警告墙,如:C

  10. ios – 在分组的表视图中混合静态和动态部分

    可能需要保持静电细胞的强大性能?在表视图的相同.xib文件中直接设计每个静态单元格,并为它们设置插座是否更好?(虽然这不允许重用我的自定义单元格设计…

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部