phpstorm配置Xdebug最完整教程,绝对成功

100人浏览   2025-01-18 00:15:05

目录

  • 概述
  • 配置xdebug扩展
  • 设置phpstorm
  • php7进阶到架构师相关阅读

概述

这是关于php进阶到架构之核心技术与实践学习的系列课程:phpstorm配置Xdebug最完整教程,绝对成功

学习目标:

成功搭建php 的xdebug开发环境,便于本地调试,提高开发效率

配置xdebug扩展

本文以windows环境为例,其他的linux和mac等环境同理。

本文配置phpstrom支持xdebug断点调试,不需要浏览器安装扩展程序即可php程序断点调试

xdebug官网下载地址:
https://xdebug.org/download.php

第一步:根据自己电脑的php版本下载对应的xdebug版本

【注意:区分ts和nts版本

TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。

NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。

如何确定自己电脑支持的是NTS还是TS?

运行phpinfo(),部分截图如下

我的电脑显示是NTS版本。

xdebug官网下载列表NTS版本与TS版本的区分如下图:

xdebug NTS与TS版本区分

根据自己系统支持选择对应的(php版本+NTS/TS)

第二步:在php.ini配置,让php支持xdebug

[xdebug]
zend_extension="F:\\AppServ\\php5\\ext\\php\_xdebug-2.4.1-5.6-vc11.dll" #指定Xdebug扩展文件的绝对路径

【注意:下面的配置是错误的】

extension = "F:\\AppServ\\php5\\ext\\php\_xdebug-2.4.1-5.6-vc11.dll"

由于php支持模块,一般都是在php.ini文件中配置extension=xxx.dll,我就是犯了这样的错误

extension = "F:\\AppServ\\php5\\ext\\php\_xdebug-2.4.1-5.6-vc11.dll

这样配置,导致xdebug配置始终不成功,花了大半天才发现这个错误,都是血泪的教训呀

xdebug在php.ini中完整配置如下:

xdebug.profiler_enable=on  #是否启用Xdebug的性能分析,并创建性能信息文件
xdebug.remote_enable = on  #是否开启远程调试
xdebug.remote_handler = dbgp  #指定远程调试的处理协议
xdebug.remote_host= 127.0.0.1  #指定远程调试的主机名
xdebug.remote_port = 9001  #指定远程调试的端口号,避免9000端口和php-fpm冲突
xdebug.idekey = PHPSTORM  #指定传递给DBGp调试器处理程序的IDE Key

重启服务器,运行phpinfo(),看是否支持xdebug

出现这个表明php支持xdebug

设置phpstorm

第一步:打开phpstorm的设置

第二步:在设置中搜索xdebug,设置端口号9001

注意这个需要和php.ini中xdebug.remote_port 配置保持一致)

点击apply按钮,保存设置

第三步:设置GBDP

其中的IDE_key需要和php.ini中xdebug.idekey配置保持一致,

设置主机,可以自定义,如localhost,这是个名称,需要在下一步具体设置点击apply按钮,保存设置

第四步:设置主机Host

第五步:选择主机Host

(1)点击下图所指的位置

(2)选择主机

第6步:在你运行项目的入口文件添加以下代码

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {
    setcookie('XDEBUG_SESSION', 1, time() + 86400);
}

这样就保证浏览器不需要添加debug扩展

第七步:开启调试模式

最后一步:在需要调试的php代码处打断点,进行调试

【需要注意:】

第一次不会触发断点调试,原因是下面代码第一次运行,不存在XDEBUG_SESSION的cookie值。

再次运行,就会触发断点调试

setcookie('XDEBUG_SESSION', 1, time() + 86400);

出现这个,恭喜你配置成功!可以愉快地开发玩耍最好的语言php了!



相关推荐