写在前面的
- 使用背景:公司的架构为api+wab为两个独立的项目,service单独独立了出来,为专门跟数据库进行交互, 这样在开发的过程中service层的数据不能直接反馈到 api或者wab, 只能用trace来打印日志 非常不便。
- 开发过程中 需要不断打印输出结果如果你厌烦了dump echo print trace 等打印的方式不妨试试xdebug的断点打印
– 先放成果图
安装xdebug
- 在自己的安装环境输入指令
php -i
-
复制输出的指令至Xdebg检测官网看自己的环境适合安装哪个版本的xdebug 根据提示进行安装 如下楼主为例
-
得到自己适合的版本 (按照官网给出的提示一步步操作具体如下)
-
下载
wget http://xdebug.org/files/xdebug-3.0.4.tgz
- 解压
tar -xvzf xdebug-3.0.4.tgz
- 安装
cd xdebug-3.0.4 #进入解压目录
/usr/local/php/bin/phpize #这里按照你自己的phpize地址
看到
./configure --with-php-config=/usr/local/php/bin/php-config #同样这里按照你自己php-config地址
make
cp modules/xdebug.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718
- 可编辑php.ini 或者按照官网提示新建 99-xdebug.ini 注意新建文件的地址(楼主按照官网的进行 这样方便以后维护)
/usr/local/php/conf.d/99-xdebug.ini # 将一下地址复制进新的文件中
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip
xdebug.remote_host = 172.20.16.1 # 说明下 如果是win下的wsl 系统 这里的host 是需要从终端中的ipconfig 中获取wsl 的ipv4 如下图
xdebug.remote_port = 9000
xdebug.remote_log = /mnt/d/Code/Log/wsl/xdebug/xdebug.log
xdebug.idekey = PHPSTORM
xdebug.mode=debug,trace,profile
xdebug.start_with_request = yes
; SERVER_ENV=develop
打开phpinfo页面看到
-
从上图可以看到 xdebug 的端口为9003 idekey 为PHPSTORM 这里记下 下面会用到
-
接下来 我们配置phpstorm 首先我们先打开api的项目进行配置 这里着重需要注意的是 一定要配置好映射 拆解的步骤如下图
- 配置php解析器 楼主用的是wsl (win10 下的ubantu20 子系统)
得到如下 - 配置debug端口 如下图
- 配置php解析器 楼主用的是wsl (win10 下的ubantu20 子系统)
- 配置 DBGp 如下图
- 配置service 如图重点已经圈 host为楼主配置的host 楼主用的是tp5.2 所以在Absolute path 中在public 下增加了映射
5. 最后在此处进行验证
如上图 证明已经成功了90%
6. 最后需要在phpstorm顶部配置 如下图
6. 至此 配置完毕 接下来我们验证下
- 首先我们先打开debug监听 如下为打开状态
- 打开断点
- postman 访问接口(postman 不需要增加别的xdebug的相关东西 正常访问即可)如下
4. 结果如下 即表示可正常使用