共计 1271 个字符,预计需要花费 4 分钟才能阅读完成。
用过 Java、C# 等静态语言的同学调试代码经常是打个断点,然后 <font color=red> 轻松调试 </font>,而 PHPer 调试代码时经常是
echo $a;exit;
非常的不方便,有的同学有时候打完断点没删就给 commit 上去了,这就造成了很多困扰,有没有办法更优雅的调试呢?那当然有的,这里用到一个 PHP 模块 xdebug,xdebug 安装教程,使用它进行 PHP 代码调试,能有效减少工作量和 BUG 调试时间,特别是在某些复杂的程序中,光靠看都无法找出问题
Xdebug 是一个开放源代码的 PHP 程序调试器 (即一个 Debug 工具),可以用来跟踪,调试和分析 PHP 程序的运行状况。
- 如果是集成环境,比如 phpstudy,就不需要自己安装了,直接环境 ->PHP-> 设置(<font color=red>PHP 版本号别搞混了 </font>)
- 这里设置下端口号,凭自己喜好就行,我设置了 9001
- 查看 phpinfo,搜索下,有 xdebug 模块就行了
接下来打开 phpstorm,ctrl+alt+ s 打开设置
来到 debug 设置,将端口改成前面你设置的端口号(其他默认即可,当然也可以开启,看不懂英文可以翻译一下)
在点开 Servers,点 + 号新建一个,名字随意,Host 填自己要 Debug 的域名(比如 localhost, 我这里填了一个虚拟域名),端口号默认 80 即可
然后右上角有一个 Edit Configurations,点击打开
点击加号,添加一个 PHP Web Page
name 随意,Server 选刚才你配置的,startUrl 是启动的接口地址,如果我要 debug 一个下单的接口,于是我把他填写了进去,然后点击箭头所指向的 Validate
第一个选项是调试本地的,第二个是调试远程的,我这里远程不讲了,免得搞晕你们
第一个输入框填写自己的项目目录,因为我这个是 tinkphp 框架,我把他指向了项目目录的 public 目录
第二个填写自己的域名,这里编辑器自动帮忙填写了
点击 Validate 按钮,phpstorm 会帮忙检测配置是否正确,如果有错请按照提示修改
最后点击右上角的这只臭虫,会自动打开浏览器进行调试,臭虫旁边的电话机如果变绿了表示正在监听 9001 端口
这时 phpstorm 会自动打开 debug 控制台,点击箭头自动下一步,左边点击红点可以打断点
<font color=skyblue> 如果想用 postman 呢?</font>
把这个参数拿过来
把这对 key-vlue 加入 postman 的参数内(后来测试不加也可以,这个参数可以不需要,以前用 chrome 的 xdebug helper 时会用到),点击 send 自动开启调试(postman 会一直处于发送状态中,直至断点调试完毕)
我写的教程希望以最简短的步骤让读者能运行起 xdebug,某些细节方面就忽略了,有兴趣的同学可以去网上查找更详细的配置和说明 <s>(当然没兴趣)</s>
问题总结
- 断点调试时,PHP 脚本执行超时后 Apache 自动断开连接,然后返回一个 500 错误
在 apache 的 http.conf 文件加入
FcgidIOTimeout 6000
正文完