XDebug测试环境
- CentOS Linux release 7.7.1908 (Core)
- VMware® Workstation 15 Pro
- 免费版7.5.1
- PHP-7.4
- XDebug 2.8
- PHPStorm 2020.3.3
宝塔安装XDebug
- 进入宝塔点击软件商店已安装找到PHP设置
- 点击安装扩展找到xdebug插件安装

- 点击左侧配置文件进行插件配置

zend_extension=/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/xdebug.soxdebug.remote_port=9018xdebug.remote_autostart=1xdebug.auto_trace=1xdebug.remote_host="192.168.1.100"xdebug.remote_enable=1xdebug.idekey = "PHPSTORM"
XDebug配置详细说明
zend_extension_ts
zend_extension=/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so // linuxzend_extension=/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/xdebug.dll // win
remote_port
xdebug.remote_port=9018
这个端口是xdebug试着去连接远程主机的。9000是一般客户端和被绑定的debug客户端默认的端口。许多客户端都使用这个端口数字
remote_autostart
xdebug.remote_autostart=1
一般来说,你需要使用明确的HTTP GET/POST变量来开启远程debug。而当这个参数设置为On,xdebug将经常试图去开启一个远程debug session并试图去连接客户端,即使GET/POST/COOKIE变量不是当前的
auto_trace
xdebug.auto_trace=1
默认值0。用于设定在脚本运行前是否自动跟踪方法的调用信息。设置xdebug.trace_enable_trigger 1而不是使用此设置
remote_host
xdebug.remote_host="192.168.1.100"
remote_enable
xdebug.remote_enable=1
idekey
xdebug.idekey = "PHPSTORM"
默认值=complex 指定传递给DBGp调试器处理程序的IDE Key
更多
在上面的Xdebug配置中,我们只配置了6个常用的配置选项。当然,Xdebug还支持更多的配置参数,详情见下表。配置参数选项
参数值类型与默认值 参数选项描述xdebug.auto_trace boolean类型,默认值=0 是否在脚本运行之前自动调用相关追踪函数。xdebug.cli_color integer类型,默认值=0 该参数自2.2版本开始引入。如果值=1,当处于CLI模式或连接虚拟控制台时,Xdebug将高亮显示var_dumps()和堆栈输出,;在Windows中,这需要安装ANSICON工具。如果值=2,不管是否处于CLI模式或连接虚拟控制台,Xdebug都会高亮显示var_dumps()或堆栈输出;这种情况下,你可能会看到转义后的代码。xdebug.collect_assignments boolean类型,默认值=0 该参数自2.1版本开始引入。用于控制是否为函数跟踪添加变量赋值功能。xdebug.collect_includes boolean类型,默认值=1 控制是否在跟踪文件中写入include()、include_once()、require()、require_once()等函数中用到的文件名。xdebug.collect_params integer类型,默认值=0控制在调用函数时,是否收集传递给函数的参数信息。如果参数值过大,这可能会占用大量的内存;不过,在Xdebug 2中不会出现该问题,因为Xdebug 2将相关数据写入磁盘中,而不是占用内存。如果值=0,则不显示任何信息。如果值=1,只显示类型和大小信息,例如:string(6)、array(8)。如果值=2,将显示类型和大小,以及全部信息的工具提示。如果值=3,将显示变量的全部内容。如果值=4,将显示变量的全部内容和变量名。xdebug.collect_return boolean类型,默认值=0 控制是否在追踪文件中写入函数调用的返回值。xdebug.collect_vars boolean类型,默认值=0 控制是否收集指定作用域中的变量信息。由于需要反向工程PHP的操作码数组,因此Xdebug的分析速度可能比较慢。xdebug.coverage_enable boolean类型,默认值=1 该参数自2.2版本开始引入。控制是否允许通过设置内部结构来启用代码覆盖率功能。xdebug.default_enable boolean类型,默认值=1 当发生异常或错误时,是否默认显示堆栈信息。xdebug.dump.* string类型,默认值=Empty 这里的*可以是COOKIE, FILES, GET, POST, REQUEST, SERVER, SESSION中的任意一个。用于指定发生错误时是否显示超全局变量数组中的索引变量信息。比如,你想要显示请求的IP地址和请求方式,可以设置为xdebug.dump.SERVER=REMOTE_ADD,REQUEST_METHOD多个索引变量用英文逗号隔开,如果要输出其中的所有变量,可以直接用*,例如:xdebug.dump.GET=*xdebug.dump_globals boolean类型,默认值=1 控制是否显示通过xdebug.dump.*定义的所有超全局变量的信息。xdebug.dump_once boolean类型,默认值=1 如果出现多个错误,控制超全局变量信息是在所有错误中显示,还是只在第一个错误中显示。xdebug.dump_undefined boolean类型,默认值=1 控制是否显示超全局变量中未定义的值。xdebug.extended_info integer类型,默认值=1 是否强制进入PHP解析器的"extended_info"模式,这将允许Xdebug以远程调试器对文件或行添加断点。开启此模式将拖慢脚本的允许速度,该参数只能在php.ini中设置。xdebug.file_link_format string类型,默认值=, 自2.2版本开始引入。用于指定堆栈信息中用到的文件名称的链接样式,这允许IDE通过设置链接协议,直接点击堆栈信息中的文件名称,即可快速打开指定的文件。例如:ZendStudio://%f@%l(%f表示文件路径,%f表示行号)。xdebug.force_display_errors integer类型,默认值=0 自2.3版本开始引入。是否强制显示错误信息。xdebug.force_error_reporting integer类型,默认值=0 自2.3版本开始引入。是否强制显示所有错误级别的信息。xdebug.halt_level integer类型,默认值=0 自2.3版本开始引入。指定出现那些错误级别的错误时,中止程序运行。例如:xdebug.halt_level=E_WARNING|E_NOTICE|E_USER_WARNING|E_USER_NOTICE(也仅支持上述4种错误级别)。xdebug.idekey string类型,默认值=*complex* 指定传递给DBGp调试器处理程序的IDE Key。xdebug.manual_url string类型,默认值=http://www.php.net 仅2.2.1以下版本可用,用于指定从函数堆栈和错误信息链接到的帮助手册的基本URL。xdebug.max_nesting_level integer类型,默认值=100 指定递归的嵌套层级数。xdebug.overload_var_dump boolean类型,默认值=1 自2.2版本开始引入,当php.ini中的html_error设为1时,Xdebug是否默认使用自身的改进版本来重载var_dump()。xdebug.profiler_append integer类型,默认值=0 当多个请求映射到相同文件时,指定是覆盖之前的调试信息文件还是追加内容到该文件中。xdebug.profiler_enable integer类型,默认值=0 指定是否启用Xdebug的性能分析,并创建性能信息文件。xdebug.profiler_output_dir string类型,默认值=/tmp 指定性能分析信息文件的输出目录xdebug.profiler_output_name string类型,默认值=cachegrind.out.%p 指定性能分析信息文件的名称xdebug.remote_enable boolean类型,默认值=0 是否开启远程调试xdebug.remote_handler string类型,默认值=dbgp 指定远程调试的处理协议xdebug.remote_host string类型,默认值=localhost 指定远程调试的主机名xdebug.remote_log string类型,默认值= 指定远程调试的日志文件名xdebug.remote_mode string类型,默认值=req 可以设为req或jit,req表示脚本一开始运行就连接远程客户端,jit表示脚本出错时才连接远程客户端。xdebug.remote_port integer类型,默认值=9000 指定远程调试的端口号xdebug.trace_options integer类型,默认值=0 指定对于之后的请求,追踪文件是追加内容还是覆盖之前内容。xdebug.trace_output_dir string类型,默认值=/tmp 指定追踪文件的存放目录xdebug.trace_output_name string类型,默认值=trace.%c 指定追踪文件的名称
开放宝塔对应端口
配置PHPStrom
- 点击File->setting

- 找到Languges & Frameworkes 这一项

- 点击PHP->Debug 安装浏览器Xdebug helper调试插件


- 设置XDebug调试端口号

- 设置虚拟机地址及端口IEDKey

HOST 为虚拟机地址
- 设置远程本地虚拟机网站项目路径映射以及访问host

左边为本地项目路径,右边为虚拟机项目路径
配置完成后点击ok进行保存配置基本完成
调试使用
- 点击代码左侧选择需要调试的位置

- 点击开始启动调试服务为绿色

- 浏览器开启Xdebug helper插件

- 访问设置代码断点位置的页面即可

