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

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 的反向代理 swoole|swoole 使用 xdebug 实现调试模式(PHPSTORM)
    文章图片
  • 配置 Servers
  • 需要改为Xdebug模式
  • 端口需要和你跑swoole主端口一致
  • 绝对路径需要配置,不然调试时候会报错,我这里写的是项目在子系统中的路径
swoole|swoole 使用 xdebug 实现调试模式(PHPSTORM)
文章图片
3、调试 3.1、选择调试的服务并打开监听 swoole|swoole 使用 xdebug 实现调试模式(PHPSTORM)
文章图片
3.2、调试时候的顺序
  • 第一步:点击打开Debug 'debug'(也就是那个昆虫)或者快捷键 Shift+F9
  • 第二步:开启 swoole 服务,如果当前打开过则关掉之后开启
  • 第三步:在对应的地方打上断点
  • 第四步:请求对应打断点的接口/URL 即可调试
3.3、运行查看是否成功


  • 如下图显示则是成功了: swoole|swoole 使用 xdebug 实现调试模式(PHPSTORM)
    文章图片
【swoole|swoole 使用 xdebug 实现调试模式(PHPSTORM)】如果有什么问题可以留言,欢迎互相交流共进步。

    推荐阅读