Webman + XDebug 3.0 + PHPStorm调试

euii

Webman + XDebug 3.0 + PHPStorm调试

目录

PHP的debug3.0配置文件

[xdebug]
zend_extension="/opt/homebrew/opt/xdebug@8.1/xdebug.so"
# 以下新增
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port="9003"
xdebug.remote_handler=dbgp
;xdebug.start_with_request=yes
xdebug.show_local_vars = 1

PHPStorm里的设置

Servers设置

CLI Interpreters配置,注意Debugger那里,必须要有Xdebug的信息

Debug相关设置

注意这里的Port端口与xdebug.client_port 端口号相对应

HOST文件配置

vim /etc/hosts增加条目

127.0.0.1 yoursite.test

启动

方式一:打开小电话监听,直接在命令终端中执行

  1. PHPStorm里

2. 终端里

export XDEBUG_SESSION=1
#进入项目
php start.php start #启动

ctrl+c 中止

方式二:使用phpstorm内置的按钮

1. 创建一个配置


这里把参数改成 restart,解决重复启动的问题。
截图

2. 启动

正常开发的时候按小▶️ 启动。

需要调试的时候,先打开小电话📞,然后点击虫子按钮

在浏览器里或者curl访问特定的路由

3. 停止

点击 Stop All


PS:要提醒一点,如果打开小电话监听,webman就无法热重载了。不需要debug的时候请关闭小电话,

至于出现如下的提示:

Xdebug: [Step Debug] Could not connect to debugging client. Tried: 127.0.0.1:9003 (through xdebug.client_host/xdebug.client_port) :-(

只是告诉你,php在启动的时候要去连接9003的端口,没有连接上,并不影响正常的开发。这个消息在啥时候需要关注呢?就是当你的小电话打开了,还提示这个问题,你就想思考是不是IP和端口设置的有问题了。

7970 18 33
18个评论

WatcherLuo

  • 暂无评论
ikun

截图 按照你的步骤 启动webman报错

  • euii 2022-07-22

    这不是报错,先打开右上角的📞,让phpstorm去监听9003端口,然后再运行php,这样php启动的时候就会去连接9003了。

  • euii 2022-07-22

    这只是告诉你,无法连接那个9003端口,并不影响开发。php-cli模式下,貌似在配置xdebug后无论要不要调试启动的时候都会去连接端口。

  • ikun 2022-07-25

    你这个应该是本机调试环境 , 我的是webman运行在vagrant环境 然后进行端口映射

  • euii 2022-07-27

    解决就好,👍

li914

这是在苹果系统上配置的过程,在windows上配置,需要先下载 XDebug xdebug地址下载 然后按照大佬的过程,进行配置完成即可进入调试模式下
注意,启动服务,要执行 windows.php 文件即可
截图

  • li914 2022-07-23

    谢谢大佬分享

  • Freak 2022-09-26

    点虫子提示运行 'windows.php' 时出错: 未检测到调试器扩展是怎么回事?

江月闲谈

可以了 非常感谢

  • 暂无评论
owenzhang

感谢分享,有空试试

  • 暂无评论
dignfei

Gateway 不兼容,怎么办?https://www.workerman.net/q/8979

  • 暂无评论
indesigncs

我想问问各位大佬,为什么webman基于workerman 可以使用xdebug调试,而workerman 的应用却无法使用 xdebug调试 呢?难道xdebug3也可以调试 workerman 了??

  • indesigncs 2022-09-02

    今晚加班试了一下,原来正如我说,这样做连workerman 的应用也可以调试了,好开心

  • euii 2022-09-22

    👍

爱吃鱼

Xdebug 如何调试webman里 process进程代码?有方案不?

  • 暂无评论
jacknum1

我试了下感觉有bug,会重复打开webman的服务

  • euii 2023-02-21

    把配置文件中的start改成restart,解决重复启动的问题。

Ace华

给力,成功了,6666,顶上

  • 暂无评论
寄木

up 这个是本地调试,不支持跑在 docker 的调试吗?
我用的 windows + docker 试了不行,搞了半天也没成功。

  • euii 2023-06-20

    如果是docker,你的环境在容器里,xdebug.client_host 不是 127.0.0.1应该是容器的hostname,你把容器想象为远程的服务器,只是docker支持用hostname来替代IP地址。

Basil


GatewayWorker能用吗,启动的时候没报错,连接的时候报错了

  • 暂无评论
lsmir2

经过多次测试,在mac下 在控制器是断点是断不下来的 把执行逻辑扔到其他类上就可以了 原因未知

//文件路径 Controller\IndexController.php
<?php
namespace app\controller;

use app\Controller\Common;
class IndexController   {
    public function index(Request $request)    {
            return Common::test();
        }
    }
}

//Controller\Common.php
<?php
namespace app\controller;

class Common{
    public static function pay(Request $request)    {           
        $a=1;//这里下断点
        $b[0]=$a;
        $c=$b;
        return 0;
    }
    }
}
  • 暂无评论
ala3246875

可以用,谢谢

  • 暂无评论
abc

1

  • 暂无评论
sorshion

wsl2 + docker 可以吗?

  • lsmir2 2024-05-29

    windows 环境就可以了 何必那么麻烦呢

  • sorshion 2024-05-29

    因为我习惯这种开发方式了

  • lsmir2 2024-05-30

    我在 deepin 和 windows 环境都断点调试正常,只有mac 比较麻烦.docker 没试过 走远程调试的路子.可以试试

bug979

windows+phpstorm+xdebug 也没成功,下面是ini配置
extension = swoole.so
xdebug.mode=debug
xdebug.client_host=host.docker.internal
xdebug.discover_client_host=true
xdebug.start_with_request=yes
xdebug.client_port=9111
xdebug.remote_handler=dbgp
xdebug.idekey=xdebug

  • 暂无评论
zhezhebie

你们这搞得太复杂了,实际上只要配置下php.ini和phpstorm里面的port,以及指定一下cli Interpreter 就行了。

server那个配置是不需要的。

image-20240628151746054

年代过于久远,无法发表评论

euii

190
积分
0
获赞数
0
粉丝数
2022-07-19 加入
×
🔝