- 确认你的
image
中已经安装并开启了xdebug
- 扩展的版本要跟你的
php
当前扩展版本一致 - 要确认你的
xdebug
的ini
文件正确加载了 - Phpstorm 的安装方式,网上太多了,这里不再赘述,文章开头提供的转载图片链接,也有详细的安装方式
下面是一张 xdebug
的运行图,供参考,
转载自:https://segmentfault.com/a/1190000011387666#articleHeader9
如何安装并开启 xdebug
提供以下的一些信息给你:
至于如何安装,因为每个人用的
image
不一样这里就不再赘述,利用搜索引擎你可以找到对应你系统的安装命令,你可以放在Dockerfile
中,这样当你执行docker-compose up -d
的时候就可以在build
的时候直接初始化到image
中下载你对应版本的
xdebug
,可以在这个网址https://xdebug.org/wizard.php
中的文本框中输入从你的php
容器命令行中执行php -i
打印出来的内容,粘贴进去之后点击下方Analyse my phpinfo() output
按钮,会得到你需要的东西。注意php -i
能执行成功的前提是你的php
的bin
目录已经加入到环境变量中
下面是我通过phpinfo()
之后截的一张图,关于 版本信息你可以注意以下图中的一些参数,
你可能需要注意到了有不同的 extention
。
extension
意为基于php引擎的扩展 zend_extension
意为基于zend引擎的扩展
而xdebug
是通过 zend_extension
扩展的
- 通常
php
的扩展 (即:.so 文件) 有两个地方存放
- 一个是
/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226
,注意最后no-debug-non-zts-20131226
这个目录可能基于版本号不同而变化 - 或者是这里
/usr/lib64/php/modules
- 你的 扩展的
ini
文件加载位置可以通过下面这张图看出来
xdebug
的ini
配置展示如下
1 | [Xdebug] |
估计用 docker
的最麻烦的就是 容器与宿主机的通讯问题,我是这样配置的可以调用成功 xdebug.remote_host=docker.for.mac.localhost
,参考资料,点击前往
这里提供一些其他的参考资料:
- https://gist.github.com/manuelselbach/8a214ae012964b1d49d9fb019f5f5d7b
- https://github.com/docksal/docksal/issues/389
- https://www.ashsmith.io/docker/get-xdebug-working-with-docker-for-mac/
Chrome
的小助手, 需要翻墙 点击安装