美文网首页PHP开发PHP经验分享PHP从入门到放弃
swoole 使用 xdebug 实现调试模式(PHPSTORM

swoole 使用 xdebug 实现调试模式(PHPSTORM

作者: 华仔233 | 来源:发表于2020-10-09 10:10 被阅读0次

    1、安装sdebug插件

    • 说明: swoole的官方编程须知中已经说到了,swoole与常规版本的 xdebug 不兼容,主要是由于大量全局变量的使用违背了协程的规范,可以见此网址的说明:https://wiki.swoole.com/wiki/page/851.html
    • 另外如果想断点调试基于swoole的项目,专门衍生出了一个 sdebug,供调试swoole项目。安装流程参见:https://github.com/mabu233/sdebug
    1.1、克隆
    • 将对应的 sdebug 文件克隆下来(任意位置都行,临时文件用于引入php中)
    git clone https://github.com/swoole/sdebug.git
    
    • 进入sdebug文件中
    cd sdebug
    
    1.2、编译
    • 运行phpize (或者 如果phpize不在您的路径中的情况下:/path/to/phpize )
    phpize 
    
    • ./configure --enable-xdebug (如果php-config不在您的路径中需要找到对应的路径 )
    ./configure --enable-xdebug --with-php-config=/www/server/php/72/php-config
    
    • make 命令运行
    make clean && make && make install
    

    2、配置

    2.1、配置 php.ini
    • 进入到php.ini的目录
    cd www/server/php/72/etc
    
    • 打开php.ini
    vi php.ini
    
    • 将下列的配置写入文件最下面几行(按住键盘的PgDn即可快速向下翻页)
    ;开启xdebug支持远程调试
    xdebug.remote_enable=1
    ;远程调试的主机,一般都是docker宿主机器,本地调试就是本机,ip可以通过`docker inspect 容器名获得`
    xdebug.remote_host=127.0.0.1
    ;远程调试机器的端口,一般是9000,和后面讲到的phpStorm里面保持一致
    xdebug.remote_port=9000
    ;idekey 对接调试的密钥,和后面phpStorm里面的务必保持一致
    xdebug.idekey=PHPSTORM
    ;自动触发调试,可以将这个值设为1;
    xdebug.remote_autostart=1
    ;更多参数介绍请参见这里 https://xdebug.org/docs/all_settings
    xdebug.remote_connect_back=1
    xdebug.remote_handler=dbgp
    xdebug.max_nesting_level=250
    
    2.2、配置PHPSTORM
    • 配置 DBGp 的反向代理
    • 配置 Servers
    • 需要改为Xdebug模式
    • 端口需要和你跑swoole主端口一致
    • 绝对路径需要配置,不然调试时候会报错,我这里写的是项目在子系统中的路径

    3、调试

    3.1、选择调试的服务并打开监听
    3.2、调试时候的顺序
    • 第一步:点击打开Debug 'debug'(也就是那个昆虫)或者快捷键 Shift+F9
    • 第二步:开启 swoole 服务,如果当前打开过则关掉之后开启
    • 第三步:在对应的地方打上断点
    • 第四步:请求对应打断点的接口/URL 即可调试
    3.3、运行查看是否成功
    • 如下图显示则是成功了:

    如果有什么问题可以留言,欢迎互相交流共进步。

    相关文章

      网友评论

        本文标题:swoole 使用 xdebug 实现调试模式(PHPSTORM

        本文链接:https://www.haomeiwen.com/subject/wsokpktx.html