解决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 array_flip() 删除数组重复元素
Jan 14 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
PHP实现在线阅读PDF文件的方法
Jun 23 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
Sep 29 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
php 中phar包的使用教程详解
Oct 26 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
让你的PHP,APACHE,NGINX支持大文件上传
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
php 函数中静态变量使用的问题实例分析
Mar 05 #PHP
You might like
yii框架源码分析之创建controller代码
2011/06/28 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
javascript中Object使用详解
2015/01/26 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
解决option标签selected="selected"属性失效的问题
2017/11/06 Javascript
基于vue实现分页效果
2017/11/06 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
Python遍历pandas数据方法总结
2018/02/09 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
Django多数据库联用实现方法解析
2020/11/12 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
秋季开学典礼主持词
2014/03/19 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers