网站首页 > 基础教程 正文
最近几个月把所有项目都迁过来 VS Code 了(除了因为Unity调试问题反而用回了 Visual Studio),PHP也就抛弃了最强的 PhpStorm 。
这段时间抽空在帮朋友处理PHP项目,然而从来没有用过PHP调试功能的我,突然发现一个项目的bug,但是却怎么也打印不出东西,并且又不抛出错误。这就很离谱。于是乎,又开始填补自己的知识盲区,咱也要用上PHP的调试功能。
配置 PhpStudy
我使用的是WNMP环境,web服务器是 Nginx ,Apache 环境也是一样的流程。
使用默认版本PHP
使用默认版本的PHP就相当简单了,直接打开 XDebug调试组件 即可。
配置好了就可以跳过下面的部分,直接去看 配置 VS Code 。
使用自定义版本PHP
要不说我这个人做东西怎么慢呢,因为经常想要知道 为什么 和 别的方法。所以我并没有使用默认的PHP版本,而是顺便想要更新到PHP 7.x的最新版。
下载新版PHP
先到官方网站下载最新的 PHP 7.4.33 - https://windows.php.net/download,我使用的是 nts 版本。下载完成以后放到 phpstudy 的相应目录下,例如 X:\path\to\phpstudy_pro\Extensions\php 。文件夹名称修改为相同规则,例如 php-7.4.33nts 。
下载并配置XDebug
刚才下载的包里是不包含 XDebug 插件的,我们需要自己去下载和配置。
XDebug 官方网站有个非常贴心的功能,就是将本地 php_info 输出的信息,粘贴到输入框后,可以帮你分析出要下载的版本,并给出下载地址。到网址 https://xdebug.org/wizard 输入,然后点击 *Analyse my phpinfo() output* 按钮即可。
把下载好的dll插件拷贝到刚才 php-7.4.33nts\ext 目录中,然后在 php.ini 中加上以下信息(直接加在最末尾即可,确保是在 OPCache 配置的后面):
|
记得把 zend_extension 的值改为你插件实际所在的路径和实际的名称。
测试配置是否成功
首先重启web服务器(无论 Nginx 还是 Apache),然后用 phpinfo() 打印PHP信息,看是否有 XDebug 插件。
配置 VS Code
确保 VSCode 中已经下载 PHP Debug 插件。可以搜索下载,也可以点击这里跳转后下载 - https://marketplace.visualstudio.com/items?itemName=xdebug.php-debug 。
打开 文件->首选项->设置 , 在配置中添加如下内容:
|
最后直接点击 *运行和调试* 按钮,在创建的 launch.json 里添加一个配置,或者找到已存在的配置来修改:
|
相关资源下载
老规矩,我在 二机联盟-知识星球 存了一份我自己配置好的 php7.4.33nts ,只需要修改一下 XDebug dll插件路径即可。同时这个包也配置好了 Memcached ,如果服务器没有安装,或者不需要启用,注释掉相关内容即可。
打开调试,一切豁然开朗,还顺手解决了原有框架的一个问题,舒坦
[2022年12月25日原始发布于本作者博客]
点击“阅读原文”可恢复文章内所有链接哦!
- 上一篇: Web安全之URL跳转漏洞
- 下一篇: php安全编程?python暴力破解,论python的牛逼性
猜你喜欢
- 2024-11-27 php安全编程?python暴力破解,论python的牛逼性
- 2024-11-27 CVE-2024-4577 PHP CGI 远程代码执行漏洞分析
- 2024-11-27 Web安全之URL跳转漏洞
- 2024-11-27 01.linux上安装宝塔部署PHP项目
- 2024-11-27 教程 | 从零开始开发一个PHP留言板(三)——页面制作
- 2024-11-27 WordPress网站被利用xmlrpc.php攻击解决办法
- 2024-11-27 Nginx 反向代理学习及实例笔记
- 2024-11-27 phpMyAdmin使用教程(图文详解)
- 2024-11-27 CentOS8 安装数据库管理工具之phpMyAdmin5.1.1
- 2024-11-27 WordPress清爽简约型博客主题:Arbitrary
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)