PhpStorm连接docker容器内的php XDebug进行断点调试

chinaitv 2019-06-28

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扩展

相关推荐