phpstorm + xdebug 斷點除錯

Rakishly發表於2020-01-09

環境說明

宿主機deepin系統,用的是docker-compose 搭建laravel

php.ini 新增 xdebug 模組

  • 下載xdebug模組
  • 首先列印phpinfo() 全選複製到 https://xdebug.org/wizard 這個連結的文字域中 並且點選這個按鈕生成
    phpstrom + docker + xdebug 斷點除錯

phpstrom + docker + xdebug 斷點除錯
點選下載

注:由於我之前下載2.7.1版本的,並且適用php 7.1,固這裡不下載2.9

解壓並進入xdebug目錄

tar -xvzf xdebug-2.9.0.tgz
cd xdebug-2.9.0

編譯並生成.so檔案

phpize # 生成configure檔案
./configure --enable-xdebug # 配置
make && make install # 編譯並生成

複製 xdebug.so模組到指定目錄

cd modules/ 
mkdir /usr/local/bin/modules 
cp xdebug.so /usr/local/bin/modules 

找到 php.ini 檔案 在最後插入

[xdebug]
zend_extension=/usr/local/bin/modules/xdebug.so
xdebug.profiler_enable=on #開啟效能監控(一般在正式環境不建議開啟)
xdebug.trace_output_dir="/usr/local/php/xdebug_trace" #程式執行順序日誌
xdebug.profiler_output_dir="/usr/local/php/xdebug_profiler" #程式執行效能日誌
xdebug.default_enable=0
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=192.168.5.24
xdebug.remote_port=9000
xdebug.remote_connect_back=0
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log=/usr/local/php/xdebug/remote.log

zend_extension 這個值就是xdebug.so的目錄,xdebug.remote_host是電腦ip,xdebug.idekey 這個值要跟phpstrom編輯器設定的一致

重啟 php 列印 phpinfo(),如果有下圖,表示成功

phpstorm + xdebug 斷點除錯

因為我用的是docker 剛開始沒有 php.ini 檔案
find / -name php.ini*

phpstrom + docker + xdebug 斷點除錯

進入/usr/local/etc/php,並且根據 php.ini-development 複製一份 php.ini

cd /usr/local/etc/php
mv php.ini-development php.ini

接下來配置phpstorm

|file|settings
這裡的 debug port 要跟上面 php.ini 裡面 xdebug.remote_port 的值一致
phpstrom + docker + xdebug 斷點除錯

配置DBGp Proxy,這裡IDE key 要跟下面瀏覽器debug配置的key一致
phpstrom + docker + xdebug 斷點除錯

配置servers,這裡的host,本地專案一般填localhost,埠要跟伺服器配置的一致,我的是宿主機81埠對映到docker容器 80埠,所以填81,Debugger 這裡選擇 Xdebug ,下面的File/Directory配置的是宿主機php專案所在目錄,而absolute path on the server配置的是Docker容器中的專案目錄
phpstrom + docker + xdebug 斷點除錯

配置 |Run|Debug Configurations
新增一個PHP Web Page
phpstrom + docker + xdebug 斷點除錯

谷歌瀏覽器安裝xdebug helper 外掛

安裝完成後,右鍵選擇"選項",IDE key選擇"PhpStorm",後面輸入"PHPSTORM"點選save按鈕即可:
phpstrom + docker + xdebug 斷點除錯

點選右上角這個電話蟲,設定斷點,瀏覽器重新整理,就可以進行斷點除錯
phpstrom + docker + xdebug 斷點除錯

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章