PHPstorm+Xdebug安装配置及问题

Xdebug的安装,phpstorm的Xdebug调试

环境

windows操作系统
PHP7.1.13
phpstorm版本2017.3

Xdebug安装配置

1.查看PHP版本对应的Xdebug版本
如图
如图
如图
查看页面源代码
如图
然后全选粘贴到框里分析
如图
查看结果下载.dll
如图
2.去xdebug官网下载对应php版本的xdebug放到php ext目录下面:D:\ phpStudy \ php \ php-7.1.13-nts \ ext
链接:https://xdebug.org/download.php

3.打开php.ini中添加如下代码

1
2
3
4
5
6
7
8
9
10
11
[XDebug]
xdebug.profiler_output_dir="F:\phpStudy\tmp\xdebug"
xdebug.trace_output_dir="F:\phpStudy\tmp\xdebug"
xdebug.remote_enable=1
xdebug.var_display_max_children=128
xdebug.var_display_max_data=51200000
xdebug.var_display_max_depth=5
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
zend_extension="F:\phpStudy\php\php-7.0.12-nts\ext\php_xdebug.dll"

phpstorm配置

指定本地PHP环境

File -> settings -> Languages&Frameworks -> PHP
如图
File -> settings -> Languages&Frameworks -> PHP -> Debug
如图
File -> settings -> Languages&Frameworks -> PHP -> Debug ->DBGp Proxy
如图

添加本地虚拟主机域名

File -> settings -> Languages&Frameworks -> PHP ->Servers
如图

首先我们需要对浏览器安装Xdebug helper插件,用于在请求中添加参数,类似:XDEBUG_SESSION_START = session_name。

更改配置
如图

运行项目

Run -> Edit Configurations
如图
运行项目之前打开监听
如图
打断点
如图
查看断点处数据
如图

1
2
3
4
5
6
7
8
9
左侧绿色三角形:Resume Program,表示将继续执行,直到下一个中​​断点停止。
左侧红色方形:停止,表示中断当前程序调试。
上方第一个图形示:Step Over,跳过当前函数。
上方第二个图形示:Step Into,进入当前函数内部的程序(相当于观察程序一步一步执行)。
上方第三个图形示:强制进入,强制进入当前函数内部的程序。
上方第四个图形示:Step Out,跳出当前函数内部的程式。
上方第五个图形示:Run to Cursor,定位到当前光标。
变量:可以观察到所有全局变量,当前局部变量的数值
手表:可以新增变量,观察变量随着程序执行的变化。

遇到一些异常

Debug session was finished without being paused

这样的报错,路径映射问题。
可能是因为请求的是:http://localhost:80/index.php ,而在PHPStorm中的debug servers配置的是127.0.0.1:80,这就导致了域名不相同了,所以只要改过来就可以了。

调试时从index.php第一行开始

如图
把前面的对勾去掉就可以了。

断点显示执行,debug控制台无断点信息

如图
说一下原因:
我用的PHP的xdebug扩展版本是2.7.2,
而当前的phpstorm版本为2017.3.4
当前phpstorm版本不支持xdebug版本
解决方案:
1.降低xdebug,(我重新安装xdebug2.6版本)
2.安装更高版本的phpstorm

两行警告

! The script ‘D:\phpStudy\PHPTutorial\WWW\test.php’ is outside the project.
! Click to set up path mappings
有的说编辑servers打上对勾
如图
我个人的看法是你当前打开的.idea文件夹不包括当前调试的文件。
比如:
我打开的文件夹manager,调试的test.php不在manager文件夹里
如图
然后我更换到WWW目录下进行调试,警告消失问题解决。
如图

…………..