環(huán)境
-
php 7.2.26
-
Xdebug 2.9.8
-
centos 7.8 + 寶塔面板
其他工具
vscode, Xshell
Xdebug 安裝
Linux 與 windows Xdeug安裝方式不同,這里只關(guān)注 liunx 下的安裝方式
通過 pecl 安裝
pecl install xdebug
// 如果安裝了多個版本的php,
// 應(yīng)該去對應(yīng)的PHP版本安裝目錄下的 /bin/pecl 運行命令
// 如: /www/server/php/72/bin/pecl
通過源碼自己編譯安裝
下載xdebug源碼
wget http://www.xdebug.org/files/xdebug-2.9.8.tgz
Github: https://github.com/xdebug/xdebug編譯
tar xzf xdebug-2.9.8.tgz // 解壓
cd xdebug-2.9.8
/www/server/php/72/bin/phpize // 我用的是這個目錄,可根據(jù)具體PHP安裝目錄自行調(diào)整
// 配置 php-config 路徑 同樣在php的 bin 目錄下
./configure --with-php-config=/www/server/php/72/bin/php-config
make // 執(zhí)行完生成的文件夾在 ./modules/xdebug.so
make test
// 這里可能會遇到一個問題需要在 php.ini 文件中取消禁用 proc_open 函數(shù)
make install
參考:
配置Xdebug
# 在 php.ini 中添加一下內(nèi)容
[Xdebug]
# 根據(jù)擴展實際存放路徑填寫
zend_extension= "/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1
//可酌情添加
#xdebug.idekey=VSCODE
#xdebug.profiler_enable=1
#xdebug.default_enable=1
配置 VsCode
安裝 php debug 插件
-
添加配置
注:在插件自動生成的配置中 添加 pathMappings, 修改后臺的配置如下
{ // 使用 IntelliSense 了解相關(guān)屬性。 // 懸停以查看現(xiàn)有屬性的描述。 // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9006, // 沒有被占用的端口 // 遠程目錄->本地目錄 目錄映射 "pathMappings": { "/www/wwwroot/xdebug.myname.com": "${workspaceRoot}", } }, ] }
建立 ssh 隧道
確保能通過 ssh 連上服務(wù)器
確保 xdebug 配置的端口已放行。阿里云、騰訊云需要將端口添加到安全組
Xshell 新建會話
我們新建一個會話,填好名稱、主機信息。注意:勾選連接異常關(guān)閉時自動重新連接,間隔可自己設(shè)置,這里是60秒

image-20201116171530067.png
不分配終端
為安全起見,服務(wù)器上用于建立隧道的用戶,可以被被設(shè)置為不允許通過Shell登錄的。如果設(shè)置了,那我們需要設(shè)置Xshell在進行SHH連接時不分配終端。

image-20201116171700647.png
添加一個遠程(R)隧道
我們添加一個遠程(R)隧道,則將云服務(wù)器的9090端口,映射到localhost:9090端口,從而達到將云服務(wù)器9090端口的數(shù)據(jù)轉(zhuǎn)發(fā)到本地xdebug對應(yīng)的9090端口的目的。

image-20201116172325070.png
輸入日志
為了能了解隧道的運行情況,我們設(shè)置Xshell輸出隧道相關(guān)的日志。

image-20201116172655894.png
建立ssh隧道參考
https://blog.csdn.net/weixin_41245990/article/details/107325629