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

目录

  • 概述
  • 配置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(),部分截图如下

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

我的电脑显示是NTS版本。

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

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

xdebug NTS与TS版本区分

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

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

[xdebug]zend_extension="F:AppServphp5extphp_xdebug-2.4.1-5.6-vc11.dll" #指定Xdebug扩展文件的绝对路径

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

extension = "F:AppServphp5extphp_xdebug-2.4.1-5.6-vc11.dll"

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

extension = "F:AppServphp5extphp_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

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

出现这个表明php支持xdebug

设置phpstorm

第一步:打开phpstorm的设置

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

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

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

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

点击apply按钮,保存设置

第三步:设置GBDP

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

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

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

第四步:设置主机Host

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

第五步:选择主机Host

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

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

(2)选择主机

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

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

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

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

第七步:开启调试模式

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

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

【需要注意:】

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

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

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

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

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

php7进阶到架构师相关阅读

https://www.kancloud.cn/gofor/gofor

最后,欢迎大家留言补充,讨论~~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月7日 上午9:28
下一篇 2023年4月7日 上午9:44

相关推荐