swoole 使用 xdebug 实现调试模式(PHPSTORM) 1、安装sdebug插件 2、配置 3、调试

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、运行查看是否成功
  • 如下图显示则是成功了:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章