解决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 相关文章推荐
zen cart新进商品的随机排序修改方法
Sep 10 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
php摘要生成函数(无乱码)
Feb 04 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
基于PHP对XML的操作详解
Jun 07 PHP
PHP实现的带超时功能get_headers函数
Feb 10 PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
php使用for语句输出三角形的方法
Jun 09 PHP
Smarty变量用法详解
May 11 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 PHP
PHP7变量处理机制修改
Mar 09 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
laravel框架使用极光推送消息操作示例
Feb 15 #PHP
You might like
层叠菜单的动态生成
2006/10/09 PHP
php 操作调试的方法
2012/07/12 PHP
php发送post请求的三种方法
2014/02/11 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
php表单处理操作
2017/11/16 PHP
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
js数组的基本使用总结
2021/01/18 Javascript
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
法定代表人授权委托书范本
2014/10/07 职场文书
Go语言-为什么返回值为接口类型,却返回结构体
2021/04/24 Golang
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL