Minikube 与 PhpStorm 和 Xdebug

Posted

技术标签:

【中文标题】Minikube 与 PhpStorm 和 Xdebug【英文标题】:Minikube with PhpStorm and Xdebug 【发布时间】:2022-01-18 10:54:34 【问题描述】:

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

我从研究中了解到,当您使用 Xdebug 启动 PhpStorm 时,它将开始侦听端口(默认为 9000)。当我连接到我的容器(在 minikube 中)时,我可以使用 netcat 访问 IDE 的 9000 端口:

nc <my_ip_adress> 9000

这会显示一条消息,告诉我连接已打开,因此我可以从容器访问 IDE。

然后,当我尝试使用 Xdebug 时,它无法正常工作,并且 Xdebug 不会在断点处停止。我猜 IDE 也应该到达容器,那部分我不确定,我不知道该怎么做..

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

【问题讨论】:

如何在 PHPStorm 和浏览器中开始调试? 你关注xdebug.org/docs/step_debug#starting和jetbrains.com/help/phpstorm/…了吗? 是的,上面的一切都被遵循了。该配置正在使用 docker-compose。自从我们用 minikube 替换了 docker-compose 后,它就不起作用了。对于您的第一个问题,在 PhpStorm 工具栏上,我单击“开始侦听 PHP 调试连接”按钮开始侦听传入的 PHP 调试连接。如果这回答了您的问题 您应该提供您已完成的步骤的准确可重复描述,包括问题中的日志和分析结果。 【参考方案1】:

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

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

请注意,虽然可以打开连接,但您可能没有正确进程。端口9000 也被PHP-FPM 使用,这就是Xdebug 3 现在默认使用9003 的原因。

【讨论】:

以上是关于Minikube 与 PhpStorm 和 Xdebug的主要内容,如果未能解决你的问题,请参考以下文章

k8s学习——minikube与kubernetes安装与启动

docker container和Minikube之间的链接

本地电脑安装minikube

微服务 - 搭建k8s(minikube)与简单wordPress实战

Spring Boot、Minikube、Istio 和 Keycloak:“无效参数:redirect_uri”

Docker 与 K8S学习笔记(十四)—— Minikube的安装