如何结合phpstorm配置在docker中的xdebug
2023-04-18 13:10:19 时间
作为一个资深的php开发者,我在之前的一篇文章里面也讲了如何搭建lnmp的docker镜像,这里不再赘述。在基于镜像运行容器中我也安装了xdebug,于是考虑用phpstorm来配置xdebug。
使用xdebug的好处很多:1.可以让开发者进行断点调试。2.并可以收集和显示运行阶段的变量和值。3.减少不必要的代码调试。这样php开发者就不用每次手动写代码进行断点调试,不用"var_dump"、"echo" 、"print_r"之类的输出语句打印变量。而且xdebug还提供了可以step in(步进)到调用函数内部,这样更方便进行debug。
首先给一个phpstorm和xdebug互相调用的图:
![0](https://img2022.cnblogs.com/blog/782095/202202/782095-20220224233707726-396361996.png)
由此可见,需要配置好docker中的xdebug的配置,还有就是IDE中的xdebug相关配置。
1.配置docker中的xdebug。
先进入docker容器,然后使用php --ini命令查找到xdebug的配置文件地址。
用vim打开20-xdebug.conf,增加如下所示的配置:
zend_extension=xdebug.so [XDebug] xdebug.start_with_request = yes ;xdebug.remote_handler = "dbgp" xdebug.remote_connect_back=1 xdebug.remote_enable=1 xdebug.client_host=192.168.3.6 xdebug.remote_port=9003 xdebug.remote_log = "/var/log/dnmp/php.xdebug.log" xdebug.idekey=PHPSTORM xdebug.mode=debug
其中xdebug.client_host是xdebug3的新配置,可以填写宿主机(就是你真实电脑)的ip,这是关键,千万不要填写什么172开头的,那是docker同网段的ip,不是本机真正的ip。如果你是的mac,可以用ifconfig查看你的en0的ip,其他操作系统的命令类似。
然后remote_port就是监听的端口号,建议用900x端口号,这样不会和常见已用的端口号重复。完成上面步骤,记得重启容器让配置生效。
2.phpstorm的配置很简单,先选择ide的preferences,然后选择debug选项面板,如图所示。
![0](https://img2022.cnblogs.com/blog/782095/202202/782095-20220224233708095-547512966.png)
然后再配置Server,如下图所示。
![0](https://img2022.cnblogs.com/blog/782095/202202/782095-20220224233707885-960671566.png)
最后配置php web page,用上一步配置好的server即可,如下图所示。
![0](https://img2022.cnblogs.com/blog/782095/202202/782095-20220224233707999-23604053.png)
然后就可以开始快乐地使用xdebug了。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击