總結:折騰了半天其實就3步,
1.配置debug埠號:
phpstorm或idea,settings->languages & frameworks-> php->debug:配置debug埠號與虛擬機器php xdebug 預設埠號一致(可以修改)。
2.配置servers:
點選 “+” add 一個伺服器
name 隨便取,host與本地的虛擬主機域名一致,port 選 80, Debugger 選Xdebug
勾選:Use Path mappings (select if the server is remote or symlinks are used)
重要: File/Directory 左邊是本地的目錄,右邊填寫虛擬機器的目錄:
比如 左邊:C:\Users\Administrator\code\專案
右邊,/home/vagrant/code/專案
此時就已經完成了:設定一個斷點,直接在瀏覽器或者postman上面訪問本地虛擬機器的虛擬目錄繫結的域名。
快捷鍵除錯:f7:單步除錯一步步來;f8:分塊除錯跳過當前函式
3.開啟除錯
訪問專案時加上引數 如:?XDEBUG_SESSION_START=PHPSTORM
Chrome 可以安裝外掛 xdebug helper
常用操作:
如何修改xdebug配置,主要是埠號
在專案裡面用phpinfo();
檢視當前 php.ini 所在的位置(因為homestead裡面有多個php)
vagrant up # 啟動虛擬機器
vagrant ssh # 進入虛擬機器
nginx -t # 查詢nginx配置檔案所在的位置
cd /etc/nginx/sites-available/ # 查詢專案配置
開啟nginx配置檔案,找到當前專案的phpfpm如:fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
開啟phpinfo();
裡面找到php.ini 的位置(homestead php的擴充套件檔案其實在另一個目錄,也可以從phpinfo();
裡找到)此目錄為:/etc/php/7.2/cli/conf.d
,此目錄的檔案都是超連結
檢視有沒20-xdebug.ini
如果有 就可以開啟看埠號(預設為9000),可以修改,修改完重啟php,命令為
sudo service php7.2-fpm restart #具體的phpfpm版本在nginx配置檔案的fastcgi_pass裡面看 用ps aux | grep php 檢視程式發現有很多個phpfpm,從5到7都有
如果沒有,取另一個目錄裡面找也就是超連結到的原始檔案路徑
類似:20-xdebug.ini -> /etc/php/7.2/mods-available/xdebug.ini
開啟 /etc/php/7.2/mods-available/xdebug.ini
如果沒有則表示沒有xdebug模組。如果有則:ln -s /etc/php/7.2/mods-available/xdebug.ini /etc/php/7.2/fpm/conf.d/20-xdebug.ini
同樣要重啟php服務
如果沒有,則表示homestead沒有裝xdebug
操作完成! 是不是很簡單
如何安裝xdebug:
根據官方文件找到xdebug的github.com地址
官網 github倉庫
找到其中一個版本,注意,最高版本有坑,謹慎選擇(可以把phpini貼到xdebug官網上檢測 xdebug下載版本檢測):
我們選到homestead預設的xdebug版本並下載
cd /home/vagrant
wget https://github.com/xdebug/xdebug/archive/2.7.2.tar.gz
tar -zxvf 2.7.2.tar.gz xdebug-2.7.2/
cd xdebug-2.7.2/
phpize
./configure --enable-xdebug
make
make install # 安裝完畢,會告訴你xdebug目錄
touch /etc/php/7.2/mods-available/xdebug.ini
以下是phpxdebug配置,
zend_extension=目錄/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9010
xdebug.max_nesting_level = 512
xdebug.idekey = PHPSTORM #(POSTMAN 加上?XDEBUG_SESSION_START=PHPSTORM,Chrome Xdebug helper 外掛的 IDE key PhpStorm配置為PHPSTORM)
配置完了,記得超連結sudo ln -s /etc/php/7.2/mods-available/xdebug.ini /etc/php/7.2/fpm/conf.d/20-xdebug.ini
重啟phpfpm sudo service php7.2-fpm restart
附錄:
f9 : Resume Program,表示將繼續執行,直到下一個中斷點停止。
ctrl+f2 : Stop,表示中斷當前程式除錯。
f8: Step Over,跳過當前函式。 f8
f7 : Step Into,進入當前函式內部的程式(相當於觀察程式一步一步執行)。
alt+shift+f7 : Force Step Into,強制進入當前函式內部的程式。
shift+f8 : Step Out,跳出當前函式內部的程式。
alt+f9 : Run to Cursor,定位到當前游標。
Variables : 可以觀察到所有全域性變數、當前區域性變數的數值
Watches : 可以新增變數,觀察變數隨著程式執行的變化。
本作品採用《CC 協議》,轉載必須註明作者和本文連結