swoole 使用 xdebug 實(shí)現(xiàn)調(diào)試模式(PHPSTORM)

1、安裝sdebug插件

  • 說明: swoole的官方編程須知中已經(jīng)說到了,swoole與常規(guī)版本的 xdebug 不兼容,主要是由于大量全局變量的使用違背了協(xié)程的規(guī)范,可以見此網(wǎng)址的說明:https://wiki.swoole.com/wiki/page/851.html
  • 另外如果想斷點(diǎn)調(diào)試基于swoole的項(xiàng)目,專門衍生出了一個(gè) sdebug,供調(diào)試swoole項(xiàng)目。安裝流程參見:https://github.com/mabu233/sdebug
1.1、克隆
  • 將對(duì)應(yīng)的 sdebug 文件克隆下來(任意位置都行,臨時(shí)文件用于引入php中)
git clone https://github.com/swoole/sdebug.git
  • 進(jìn)入sdebug文件中
cd sdebug
1.2、編譯
  • 運(yùn)行phpize (或者 如果phpize不在您的路徑中的情況下:/path/to/phpize )
phpize 
  • ./configure --enable-xdebug (如果php-config不在您的路徑中需要找到對(duì)應(yīng)的路徑 )
./configure --enable-xdebug --with-php-config=/www/server/php/72/php-config
  • make 命令運(yùn)行
make clean && make && make install

2、配置

2.1、配置 php.ini
  • 進(jìn)入到php.ini的目錄
cd www/server/php/72/etc
  • 打開php.ini
vi php.ini
  • 將下列的配置寫入文件最下面幾行(按住鍵盤的PgDn即可快速向下翻頁)
;開啟xdebug支持遠(yuǎn)程調(diào)試
xdebug.remote_enable=1
;遠(yuǎn)程調(diào)試的主機(jī),一般都是docker宿主機(jī)器,本地調(diào)試就是本機(jī),ip可以通過`docker inspect 容器名獲得`
xdebug.remote_host=127.0.0.1
;遠(yuǎn)程調(diào)試機(jī)器的端口,一般是9000,和后面講到的phpStorm里面保持一致
xdebug.remote_port=9000
;idekey 對(duì)接調(diào)試的密鑰,和后面phpStorm里面的務(wù)必保持一致
xdebug.idekey=PHPSTORM
;自動(dòng)觸發(fā)調(diào)試,可以將這個(gè)值設(shè)為1;
xdebug.remote_autostart=1
;更多參數(shù)介紹請(qǐng)參見這里 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主端口一致
  • 絕對(duì)路徑需要配置,不然調(diào)試時(shí)候會(huì)報(bào)錯(cuò),我這里寫的是項(xiàng)目在子系統(tǒng)中的路徑

3、調(diào)試

3.1、選擇調(diào)試的服務(wù)并打開監(jiān)聽
3.2、調(diào)試時(shí)候的順序
  • 第一步:點(diǎn)擊打開Debug 'debug'(也就是那個(gè)昆蟲)或者快捷鍵 Shift+F9
  • 第二步:開啟 swoole 服務(wù),如果當(dāng)前打開過則關(guān)掉之后開啟
  • 第三步:在對(duì)應(yīng)的地方打上斷點(diǎn)
  • 第四步:請(qǐng)求對(duì)應(yīng)打斷點(diǎn)的接口/URL 即可調(diào)試
3.3、運(yùn)行查看是否成功
  • 如下圖顯示則是成功了:

如果有什么問題可以留言,歡迎互相交流共進(jìn)步。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容