【php】Xdebug+vscode 遠程調(diào)試

環(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

通過源碼自己編譯安裝

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

參考:

編譯安裝php調(diào)試工具xdebug

PHP怎么安裝擴展?

https://segmentfault.com/a/1190000019775071

https://my.oschina.net/bubifengyun/blog/753752

配置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

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

相關(guān)閱讀更多精彩內(nèi)容

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