PhpStorm连接容器内的XDebug进行断点调试
php进行断点调试尽管不像其他语言那样方便,但是有些是有确实有其用处,比如调试循环内的数据异常时。在php于phpstorm都安装在同一环境下时,配置phpstorm的xdebug调试并不是多困难的事情,但是如果你使用了docker容器来安放你的php环境时,他们之间的配合工作就不是那么简单容易的了,下边介绍一下如何使phpstorm连通docker容器内的php xdebug
请注意,该方法由于需要docker容器能够与宿主机进行网络通信,因此对于mac上的docker容器不可用(mac的docker使用linux vm技术实现,默认无法与本地网络实现通信,但是也可以通过其他方式曲线救国,这里不讲),但是mac上的phpstorm可以使用该方法连接远程linux服务器上的docker容器内的php xdebug
配置docker容器内的php xdebug环境
在docker容器中安装好php-pecl-xdebug扩展之后,编辑/etc/php.d/下的*-xdebug.ini文件(如果没有该文件也可以直接写在php.ini文件末尾)
- 将xdebug.remote_enable参数设置为1
- 将xdebug.remote_host参数设置为你的宿主机IP(如果你的phpstorm安装在你的宿主机,否则指向你phpstorm所在机器的IP)
- 将xdebug.remote_port参数设置为你要使用的端口(默认为9000)
配置phpstorm
- 打开phpstorm的设置:PhpStorm->Preferences(command + ,)
- 配置languages & Frameworks->PHP->Debug页面中xdebug项的debug port为你容器中xdebug设置的端口
- 配置languages & Frameworks->PHP->Servers页面,添加Server
配置phpstorm的debug
- 打开phpstorm的设置:run->Edit configurations
- 添加一个PHP Web Appliation
- 将右上角的小电话的图标设置为监听状态就可以启用XDEBUG调试程序了
浏览器扩展
php的xdebug需要监听请求中的特定参数才能启用xdebug调试,这里推荐安装一个浏览器扩展,该扩展在启用时可以保存此参数并附加到每个页面中以便调试
- 火狐浏览器可以安装:The easiest xdebug扩展
- chrome浏览器可以安装:XDebug Helper扩展
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。