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、運行查看是否成功
  • 如下圖顯示則是成功了:

如果有什麼問題可以留言,歡迎互相交流共進步。

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