如何在服務(wù)器上安裝和配置Yasd調(diào)試器來調(diào)試Swoole項目
環(huán)境檢查與準備
登錄寶塔面板和服務(wù)器終端,首先確認已安裝的 PHP 版本(通常在 /www/server/php/ 目錄下),記下要調(diào)試的 PHP 版本號(如 7.4、8.0)。檢查 Swoole 擴展是否已安裝,如果未安裝需要先安裝。確保系統(tǒng)已安裝必要的編譯工具:gcc、g++、make、cmake、autoconf 等。CentOS 系統(tǒng)使用 yum 安裝,Ubuntu/Debian 使用 apt 安裝。特別要注意 cmake 版本需要 3.5 以上,如果版本過低需要從源碼編譯升級。
服務(wù)器安裝yasd
1.安裝yasd
登錄寶塔面板和服務(wù)器終端,首先確認服務(wù)器已安裝 cmake 3.5 以上版本,如果沒有需要先安裝或升級。然后從 GitHub 下載 yasd 源碼到服務(wù)器,進入源碼目錄。使用寶塔已安裝 PHP 對應(yīng)的 phpize 命令來準備編譯環(huán)境,這一步很關(guān)鍵,必須使用寶塔路徑下的 phpize(如 /www/server/php/74/bin/phpize)。接著創(chuàng)建單獨的 build 目錄,運行 cmake 進行配置,這里需要指定正確的 PHP 配置路徑和包含目錄。最后執(zhí)行 make 命令進行編譯,編譯完成后運行 make install 完成安裝。
按照官方文檔,Yasd調(diào)試器官方文檔
yum install boost boost-devel git clone https://github.com/swoole/yasd.git cd yasd phpize --clean && phpize && ./configure --with-php-config=/www/server/php/74/bin/php-config && make clean && make && make install #/www/server/php/74/bin/php-config 寶塔php7.4的php-config路徑

2.查看是否編譯成功
編譯結(jié)束后,檢查 yasd 可執(zhí)行文件是否生成。通常安裝成功后,yasd 會安裝在 /usr/local/bin/ 或指定的安裝目錄下??梢酝ㄟ^運行 yasd --version 命令查看版本信息來確認安裝是否成功。同時也要檢查是否生成了 yasd 的 PHP 擴展文件(yasd.so)。

3.成功之后記得修改php.ini,改完之后重載配置文件
打開寶塔對應(yīng) PHP 版本的 php.ini 配置文件,在文件末尾添加 yasd 擴展的加載指令。需要設(shè)置 yasd 為遠程調(diào)試模式,配置調(diào)試服務(wù)器監(jiān)聽的 IP 地址和端口號(通常使用 19000 端口)。還需要設(shè)置相關(guān)的調(diào)試參數(shù),如日志級別、斷點文件路徑等。配置完成后,需要在寶塔面板中重載 PHP 配置,或者通過命令行重啟 PHP-FPM 服務(wù)使配置生效。

4.重啟之后記得也重啟一下swoole
修改配置后,必須重啟 Swoole 服務(wù)。根據(jù)你的 Swoole 項目啟動方式,如果是常駐進程,需要先停止當(dāng)前運行的 Swoole 服務(wù),然后重新啟動。重啟時系統(tǒng)會加載新的 yasd 配置。觀察啟動日志,確保沒有錯誤信息,特別是要確認 yasd 擴展已成功加載。
5. 檢查Swoole服務(wù)運行狀態(tài)
啟動成功后,檢查 Swoole 服務(wù)運行狀態(tài),確保沒有報錯信息,這說明服務(wù)器端 yasd 配置已經(jīng)完成。此時需要在服務(wù)器防火墻和寶塔面板安全設(shè)置中放行 19000 端口。如果是云服務(wù)器,還需要在云服務(wù)商的安全組規(guī)則中添加 19000 端口的入站允許。
在本地phpstrom上設(shè)置


1.添加服務(wù)器信息,設(shè)置連接、映射目錄
打開 PHPStorm,進入設(shè)置界面,在 Deployment 選項中添加新的服務(wù)器配置。設(shè)置服務(wù)器名稱、類型選擇 SFTP,填寫服務(wù)器 IP 地址、SSH 端口號、用戶名和密碼或密鑰。配置本地項目目錄與服務(wù)器目錄的映射關(guān)系,這是調(diào)試能否成功的關(guān)鍵,必須確保本地文件路徑與服務(wù)器文件路徑正確對應(yīng)。


2.設(shè)置php的CLI解釋器,用服務(wù)上的信息
在 PHPStorm 的 PHP 設(shè)置中,添加遠程 CLI 解釋器。選擇從 Docker、Vagrant 等配置,但實際上要選擇遠程服務(wù)器。配置 SSH 連接信息,使用與部署相同的認證方式。設(shè)置完成后,PHPStorm 會獲取服務(wù)器上的 PHP 版本信息和配置路徑,確保這里顯示的 PHP 版本與服務(wù)器實際版本一致。

3.設(shè)置xdebug信息
進入 PHPStorm 的調(diào)試設(shè)置,選擇 DBGp Proxy 作為調(diào)試器類型。設(shè)置 IDE 密鑰(可以自定義),主機填寫本地機器 IP,端口設(shè)置為 19000。配置路徑映射,這里要特別注意,映射關(guān)系必須正確,否則斷點無法命中。還可以設(shè)置最大連接數(shù)、超時時間等高級選項。

端口映射
xshell中要設(shè)置映射端口

調(diào)試的時候需要啟動xshell的服務(wù)器
由于 yasd 調(diào)試服務(wù)器運行在遠端服務(wù)器的 19000 端口,本地 PHPStorm 無法直接訪問,需要通過 SSH 隧道進行端口轉(zhuǎn)發(fā)。打開 Xshell 或其它 SSH 客戶端,創(chuàng)建到服務(wù)器的連接。在連接屬性中,設(shè)置隧道規(guī)則,將本地 19000 端口轉(zhuǎn)發(fā)到服務(wù)器的 19000 端口。這樣當(dāng) PHPStorm 連接到本地的 19000 端口時,流量實際上通過 SSH 隧道轉(zhuǎn)發(fā)到了服務(wù)器的 yasd 調(diào)試服務(wù)器。
調(diào)試
1.啟動ssh對話框
首先啟動 Xshell 連接到服務(wù)器,確保端口轉(zhuǎn)發(fā)隧道已建立??梢酝ㄟ^ netstat 命令檢查本地 19000 端口是否處于監(jiān)聽狀態(tài)。保持這個 SSH 連接窗口開啟,不要關(guān)閉,否則隧道會斷開。

2.進入網(wǎng)站目錄
通過 SSH 連接到服務(wù)器后,切換到 Swoole 項目的根目錄。檢查項目文件,確保代碼是最新版本。也可以在這里查看日志文件,了解之前的運行狀態(tài)。

3.命令啟動 swoole
在服務(wù)器命令行中,使用特定的調(diào)試參數(shù)啟動 Swoole 服務(wù)。通常需要在啟動命令中添加 yasd 的調(diào)試選項,讓 Swoole 在調(diào)試模式下運行。啟動后,觀察控制臺輸出,應(yīng)該能看到 yasd 調(diào)試器已初始化的提示信息。


可以了

4.斷點測試
回到本地 PHPStorm,在代碼中設(shè)置斷點。點擊 PHPStorm 的調(diào)試按鈕開始監(jiān)聽。觸發(fā) Swoole 服務(wù)的相應(yīng)接口或功能,當(dāng)執(zhí)行到斷點位置時,PHPStorm 會自動捕獲并進入調(diào)試模式。此時可以查看變量值、調(diào)用棧,進行單步調(diào)試等操作。調(diào)試完成后,記得在服務(wù)器上正常停止 Swoole 服務(wù)。

完美解決swoole不能用xdebug調(diào)試的問題
總結(jié)
整個流程需要注意網(wǎng)絡(luò)穩(wěn)定性,特別是在進行端口轉(zhuǎn)發(fā)時。調(diào)試過程中如果遇到斷點不命中問題,需要檢查目錄映射是否正確、yasd 配置是否生效、以及防火墻設(shè)置是否允許連接。
到此這篇關(guān)于如何在服務(wù)器上安裝和配置Yasd調(diào)試器來調(diào)試Swoole項目的文章就介紹到這了,更多相關(guān)服務(wù)器安裝Yasd調(diào)試Swoole內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何在Linux系統(tǒng)上安裝cpolar內(nèi)網(wǎng)穿透
cpolar作為一款體積小巧卻功能強大的內(nèi)網(wǎng)穿透軟件,不僅能夠在多種環(huán)境和應(yīng)用場景中發(fā)揮巨大作用,還能適應(yīng)多種操作系統(tǒng),本文主要介紹了cpolar在Linux系統(tǒng)下的各種應(yīng)用類型,感興趣的可以了解下2023-08-08
BT寶塔Linux服務(wù)器管理助手架設(shè)VPS面板(安裝及初始設(shè)置應(yīng)用)
這篇文章主要介紹了BT寶塔Linux服務(wù)器管理助手架設(shè)VPS面板也是就是BT寶塔助手安裝及初始設(shè)置應(yīng)用演示,需要的朋友可以參考下2017-04-04

