一、前言
这周学长给的任务需要调试 php,之前写的菜鸡代码出 bug 都是打印出来调试的,是时候规范一下了。另外 vscode 真好用!
二、Xdebug配置
php 集成环境和 vscode 装好之后,在浏览器访问 phpinfo 页面,然后全选复制到 https://xdebug.org/wizard,点击 Analyse my phpinfo() output 按钮,将得到的结果逐条执行
php.ini 文件还要再填加两项设置,这里我的设置和在网上查找的其他教程不同,可能是由于 xdebug 版本不同导致的,按照其他不成功设置的报错查找官方文档 https://xdebug.org/docs/upgrade_guide 得到的结果如下
xdebug.mode=debug xdebug.start_with_request=yes
重启服务器,配置成功后 phpinfo 页面出现 xdebug 信息
三、VSCode配置
安装 php debug 插件,并在文件->首选项->设置->用户->扩展->php->在 setting.json 中编辑
这里改成 php.exe 路径,注意双斜线
{ "php.validate.executablePath": "D:\Major\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe" }
www 目录下新建 phptest 文件夹,在文件夹下创建 debugtest.php 文件输入如下代码测试 debug 功能
<?php for ($i=1; $i<=5; $i++) { echo "The number is " . $i . "<br>"; } ?>
选择 Launch currently open script,打上断点,点击运行->启动调试,如果配置有问题,这里会显示报错信息,再根据报错信息调整,这里调试没问题之后选择 Listen for XDebug 选项,打上断点,浏览器刷新一下就可以看见 vscode 成功监听到调试(launch.json 默认 9000 端口,根据报错修改为 9003 端口)
四、其他细节
PHP Intelephense 插件方便跟进函数,但是插件要求 php 版本大于 7,且设置环境变量,安装完毕后 setting.json 设置如下
{ "php.validate.executablePath": "D:\Major\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe", "php.executablePath": "D:\Major\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe" }
phpstudy 在浏览器不显示目录时,修改 vhosts.conf 配置文件,将 Options FollowSymLinks ExecCGI 注释,添加 Options +Indexes +FollowSymLinks +ExecCGI 并重启apache
参考文章:
https://segmentfault.com/a/1190000019475551
https://www.cnblogs.com/neverth/p/11760932.html