Mac系統(tǒng) Visual Studio Code PHP7 xDebug 調(diào)試配置

一直沒(méi)用過(guò)xDebug,習(xí)慣于用echo、log調(diào)試好多年。
今日研究Laravel,了解其原理、設(shè)計(jì)模式后,依舊看不懂調(diào)用順序,所以還是裝個(gè)xDebug,用單步跟一下來(lái)進(jìn)一步了解。

一、mac系統(tǒng),直接brew安裝

Molsen$ brew install homebrew/php/php71-xdebug

安裝后提示:

To launch php-fpm on startup:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php71/homebrew.mxcl.php71.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php71.plist
...
brew services start homebrew/php/php71

// 看下版本
Molsen$ php -v
PHP 7.1.11 (cli) (built: Oct 27 2017 11:00:43) ( NTS )

// 看下 php.ini 文件的位置
Molsen$ php -i | grep php.ini
Cannot load Xdebug - it was already loaded
Configuration File (php.ini) Path => /usr/local/etc/php/7.1
Loaded Configuration File => /usr/local/etc/php/7.1/php.ini

// 查看xdebug安裝目錄
Molsen$ cat /usr/local/etc/php/7.1/conf.d/ext-xdebug.ini
[xdebug]
zend_extension="/usr/local/opt/php71-xdebug/xdebug.so"

// 編輯php.ini,增加配置
Molsen$ vim /usr/local/etc/php/7.1/php.ini

php.ini 增加以下配置

zend_extension="/usr/local/opt/php71-xdebug/xdebug.so"
xdebug.profiler_enable = on
xdebug.trace_output_dir = "/data/logs/xdebug"
xdebug.profile_output_dir = "/data/logs/xdebug"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_host = "localhost"
xdebug.remote_port = 9000
xdebug.idekey = "phpStorm"

保存并退出,重啟php-fpm brew services restart homebrew/php/php71

// 查看 xdebug 的php擴(kuò)展是否安裝成功
Molsen$ php -i |grep xdebug
Cannot load Xdebug - it was already loaded
/usr/local/etc/php/7.1/conf.d/ext-xdebug.ini
xdebug
xdebug support => enabled
...
// 能看到這些就是裝好了

二、VS Code 配置

  1. 安裝 PHP Debug 擴(kuò)展
  2. 左側(cè)調(diào)試按鈕 - 左側(cè)頂部調(diào)試[Listen for XDebug],設(shè)置
{
    // 使用 IntelliSense 了解相關(guān)屬性。 
    // 懸停以查看現(xiàn)有屬性的描述。
    // 欲了解更多信息,請(qǐng)?jiān)L問(wèn): https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

查看9000端口的監(jiān)聽情況

Molsen$ lsof -i:9000
COMMAND     PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
php-fpm   70380 Molsen    6u  IPv4 0xc7008b2dba54edf9      0t0  TCP localhost:cslistener (LISTEN)
php-fpm   70383 Molsen    0u  IPv4 0xc7008b2dba54edf9      0t0  TCP localhost:cslistener (LISTEN)
php-fpm   70383 Molsen    3u  IPv4 0xc7008b2dade35ad1      0t0  TCP localhost:cslistener->localhost:58760 (CLOSE_WAIT)
php-fpm   70383 Molsen    7u  IPv6 0xc7008b2d9fe87689      0t0  TCP localhost:58761->localhost:cslistener (ESTABLISHED)
php-fpm   70384 Molsen    0u  IPv4 0xc7008b2dba54edf9      0t0  TCP localhost:cslistener (LISTEN)
Code\x20H 72517 Molsen   27u  IPv6 0xc7008b2d9fe87bc9      0t0  TCP *:cslistener (LISTEN)
Code\x20H 72517 Molsen   31u  IPv6 0xc7008b2db38bdbc9      0t0  TCP localhost:cslistener->localhost:58761 (ESTABLISHED)

我是在配置 Visual Studio Code 多次失敗的情況下,已經(jīng)放棄了它,然后轉(zhuǎn)向配置phpstrom的時(shí)候,突然發(fā)現(xiàn)VS Code已經(jīng)可以用了。。。沒(méi)找到原因。

最后編輯于
?著作權(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ù)。

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

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