Minikube with PhpStorm and Xdebug



我开发了一个基于PHP的应用程序。这个应用程序实际上在Kubernetes中运行,主要在我的机器上使用minikube。我使用PhpStorm作为IDE,也使用Xdebug进行调试。

从我的研究中我知道,当你用Xdebug启动PhpStorm时,它会开始监听一个端口(默认为9000(。当我连接到我的容器(在minikube中(时,我能够使用netcat:在9000端口访问IDE

nc <my_ip_adress> 9000

这显示了一条消息,告诉我连接是打开的,这样我就可以从容器中访问IDE。

然后,当我尝试使用Xdebug时,它不起作用,Xdebug也不会在断点处停止。我猜IDE也应该到达容器,我不确定,也不知道如何做到这一点。

有人已经用minikube和PhpStorm/Xdebug设置了这种配置吗?

要使xdebug工作,它只需要连接到客户端主机。客户端(在本例中为phpstorm(也不需要连接到您的pod。

我有相同的设置使用docker为mac。我做了什么让它工作:

  1. 将xdebug.client_host配置更改为host.docker.internal,该配置在minikube/etc/host中自动定义,可以访问主机资源
  2. 确保在php.ini xdebug.idkey中定义了正确的xdebug密钥
  3. 确保我使用xdebug助手扩展,并在那里定义了相同的idekey
  4. 确保我使用9003在phpstorm中侦听,phpstorm是xdebug3的默认端口

如果您尝试调试包含xdebug_info()的脚本,它会告诉您Xdebug尝试做什么(如果有的话(。

您也可以通过设置xdebug.log=/tmp/xdebug.logxdebug.log_level=10来创建一个日志文件,然后这个日志文件将显示更详细的内容

请注意,尽管可以打开连接,但您可能没有权限进程。端口9000也由PHP-FPM使用,这就是为什么Xdebug 3现在默认使用9003的原因。

最新更新