解决windows上php xdebug 无法调试的问题


Posted in PHP onFebruary 19, 2020

有时候我们在使用php和nginx进行开发的时候,会出现这样的情况,明明扩展已经安装,但是就是无法调试成功。这个时候我们就要耐心去分析问题产生的原因。

第一步:查看php的版本比如是否是x64还是x86,看看xdebug是否激活,可以通过phpinfo();来查看扩展是否激活。

第二步:使用php -m再次检查xdebug是否安装。

这个时候可能会遇到 xdebug must be loaded as zend extension 。这个是因为我们在php.ini中配置extension的时候需要改成zend_extension才行,也就zend_extension=php_xdebug.dll。

第三步:我们需要配置xebug的调试语句,也就是需要在php.ini中填入下面的语句

[XDebug]

xdebug.remote_enable = 1

xdebug.remote_autostart = 1

xdebug.remote_port=9090

xdebug.remote_host=127.0.0.1

这里有个非常重要的一个参数就是remote_port=9090,默认的话会是9000,但是如果填写9000这个端口,可能就会导致你的php无法调试,因为9000端口会被nginx占用做代理。

如何查看9000端口是否被占用,可以在命令行输入netstat -anp|findstr "9000"这个命令,如果有程序占用9000端口,就会显示出来,我们可以查看到他的pid,接下来我们通过tasklist|findstr "2342"(2343是刚才查到的pid)来找到是哪个进程占用的这个端口,如果可以关闭的话,就关闭,不能关闭的话,我们就需要修改我们的端口号,比如笔者这里修改为9090.

总结:编程就是一个不断遇到问题,不断解决问题的过程,可能同样的代码,不同的环境就会导致结果不同,同样的环境,不同的参数也会导致运行不同,我们需要做的就是不断加深我们的理解,学会查看错误日志,学会分析程序运行逻辑,这样才能克服重重困难,勇攀高峰。

这里比如调试的问题,我们首先就需要明白调试的原理是什么,它本质上是另起一个进程去监听我们的调试,它首先是php的一个扩展,php的好多功能都是通过扩展来实现的,比如常用的许多图形库,加密算法等。当激活扩展后,php就会和扩展交互,这里的xdebug就是通过获取到的php运行信息来进行调试的。

总结

以上所述是小编给大家介绍的解决windows上php xdebug 无法调试的问题,希望对大家有所帮助,也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP.MVC的模板标签系统(三)
Sep 05 PHP
Ha0k 0.3 PHP 网页木马修改版
Oct 11 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
PHP 文件编程综合案例-文件上传的实现
Jul 03 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
thinkphp学习笔记之多表查询
Jul 28 PHP
PHP 正则表达式小结
Feb 12 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
Oct 08 PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
PHP中命名空间的使用例子
Mar 22 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 #PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 #PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 #PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 #PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 #PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 #PHP
php 函数中静态变量使用的问题实例分析
Mar 05 #PHP
You might like
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
桌面中心(二)数据库写入
2006/10/09 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
Python找出list中最常出现元素的方法
2016/06/14 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
浅谈Python类的__getitem__和__setitem__特殊方法
2016/12/25 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
替换python字典中的key值方法
2018/07/06 Python
Python之Class&Object用法详解
2019/12/25 Python
Python 解析简单的XML数据
2020/07/24 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
怎样在程序里获得一个空指针
2015/01/24 面试题
财务出纳岗位职责
2014/02/03 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
思想作风建设心得体会
2014/10/22 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
python基础之文件操作
2021/10/24 Python