带有 PhpStorm 和 Xdebug 的 Minikube
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_info()
的脚本,它会准确告诉您 Xdebug 试图做什么,如果有的话。
您还可以通过设置 xdebug.log=/tmp/xdebug.log
和 xdebug.log_level=10
来创建一个日志文件,然后这个日志文件将更详细地显示发生的事情。
请注意,虽然可以打开连接,但您可能没有正确的进程。端口 9000
也被 PHP-FPM 使用,这就是 Xdebug 3 现在默认使用 9003
的原因。
要使 xdebug 工作,它只需要连接到客户端主机。也不需要客户端(在本例中为 phpstorm)连接到您的 pods。
我对 mac 使用 docker 进行了相同的设置。我做了什么让它起作用:
- 更改了xdebug.client_host configuration to host.docker.internal,在minikube/etc/host中自动定义,可以访问主机machine资源
- 确保我在 php.ini xdebug.idekey
中定义了正确的 xdebug 密钥
- 确保我使用 xdebug helper extension 并在那里定义了相同的 idekey
- 确保我使用 9003 在 phpstorm 中监听,这是 default port for xdebug 3
我开发了一个基于 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_info()
的脚本,它会准确告诉您 Xdebug 试图做什么,如果有的话。
您还可以通过设置 xdebug.log=/tmp/xdebug.log
和 xdebug.log_level=10
来创建一个日志文件,然后这个日志文件将更详细地显示发生的事情。
请注意,虽然可以打开连接,但您可能没有正确的进程。端口 9000
也被 PHP-FPM 使用,这就是 Xdebug 3 现在默认使用 9003
的原因。
要使 xdebug 工作,它只需要连接到客户端主机。也不需要客户端(在本例中为 phpstorm)连接到您的 pods。
我对 mac 使用 docker 进行了相同的设置。我做了什么让它起作用:
- 更改了xdebug.client_host configuration to host.docker.internal,在minikube/etc/host中自动定义,可以访问主机machine资源
- 确保我在 php.ini xdebug.idekey 中定义了正确的 xdebug 密钥
- 确保我使用 xdebug helper extension 并在那里定义了相同的 idekey
- 确保我使用 9003 在 phpstorm 中监听,这是 default port for xdebug 3