前言
php是脚本型程序 每次出错都要手动exit断点程序不是很方便
哪里有需求哪里就有生产,Xdebug可以实现对php的断点调试。下面将我个人的安装经历分享给大家。
运行环境 Windows 、lamp、phpstorm 、chrome (配置方法一样 Ubuntu也通用)
一、首先安装xdebug
安装xdebug比较简单 ,运行php -i >phpinfo.txt 或者 echo phpinfo();将全部信息贴到https://xdebug.org/wizard.php这个网站提示的文本域中点击这里写图片描述
如下图红色的框是网站提示的安装步骤,黄色的框是我已安装的信息(可以忽略)。
补充在编辑php.ini文件的时候多添加几行
[XDebug]
xdebug.profiler_output_dir="F:\phpStoudy\PHPTutorial\tmp\xdebug" xdebug.trace_output_dir="F:\phpStoudy\PHPTutorial\tmp\xdebug" zend_extension="F:/phpStoudy/PHPTutorial/php/php-5.6.27-nts/ext/php_xdebug.dll" ;允许收集传递给函数的参数变量 xdebug.collect_params=on ;允许收集函数调用的返回值 xdebug.collect_return=on ;启用代码自动跟踪 xdebug.auto_trace=on ;性能优化,本文用不到,选择关闭(不关闭,会以约每分钟几百M的速度产生大量日志文件,用不上一天你的硬盘就哭了) xdebug.profiler_enable = Off //关掉性能检测分析 ;指定性能分析信息文件的名称 xdebug.profiler_output_name = cachegrind.out.%t.%p ;远程端口,指phpstorm配置的端口 xdebug.remote_port=10000 ;指定远程调试的处理协议 xdebug.remote_handler = "dbgp" ;是否允许远程终端,这个必须开启 xdebug.remote_enable = on ;远程IP地址,就算你phpstorm所在的IP。如果你是在本地的话直接写127.0.0.1就可以了 xdebug.remote_host=127.0.0.1 xdebug.idekey = PHPSTORM //这里是调试器的关键字
二、安装chrome xdebug helper插件
打开 chrome的webstore搜索 xdebug 我已经添加了。需要FQ 可以下个vpn 蓝灯 慕风都可以 或者配置host
安装完之后 浏览器会有一个小甲虫这里写图片描述右击点击选项 选择phpstorm 点击save退出
备注:
安装完 可以打印phpinfo 查看xdebug信息 ,或者php -v 查看下有没有xdebug信息
三、配置phpstorm
1、php设置 选择自己的php版本
菜单栏 file->setting->Languages&Frameworks->php
选择当前php版本的的php.exe的位置
2、设置Servers
3 设置debug 勾选一下 会忽略端口冲突等信息
4下拉选择 Edit Configurations,配置服务器信息,添加项目调试开发地址
填写网站的访问地址
然后点击ok这步就好了
5 打开Tools->deployment->Configuration
弹出一下deployment窗口
配置好了点击OK即可
配置完后可以点击 Web server root URL: 输入框后面的 Open 试试看是不是可以弹出这个网址,假如弹出了表示配置成功,然后点击OK完成这一步的配置。
[注意]:配置完phpstorm后需要重启一下apache才会生效。
四、启用xdebug
1、点击phpstorm右上角的电话 绿色波纹就是开始监听了
2、右击浏览器右上角的小甲虫 选择debug
3、设置断点
4、访问设置断点的控制器 phpstorm会弹出调试信息 可以点 调试下一个断点
五、其他情况说明
1、端口占用(9000 port is busy)
解决方法:更换端口
那就编辑php.ini换个端口对应的 file->setting->php-> debug 也要换掉
重新启动下php 再调试看看。
2、无法映射到服务器文件( file path is not mapped to any file path on server. edit path mappings to fix the problem )
解决方法:配置项目在服务器的绝对路径