一、 安裝Xdebug
1. 確認環境
官網的Homestead預設安裝了多個版本的php,所以首先應該確認當前伺服器使用的是哪一個版本。
命令列裡的php與網站執行時的php是不一樣的,伺服器使用的是php-fpm,所以不要在命令列下使用phpinfo()
或php --version
來獲取版本(我之前在這裡被坑了好久)。
正確的方法應該是,在Homestead中隨意找一個能執行的頁面,在頁面controller的第一行插入phpinfo();
,然後會在該頁面的最前面會插入伺服器使用的php資訊。
2. 安裝Xdebug
Xdebug官方提供了一個檢測工具,只需要提供phpinfo()
的資訊,就可給你一個詳細的xDebug安裝步驟。頁面地址:xdebug.org/wizard.php;
將第一步裡的phpinfo頁面的資訊複製貼上到工具頁面的輸入框裡(複製哪些?全部吧,從標題PHP Version
一直拖滑鼠選擇複製直到最後php licence
)。然後點選Analyse my phpinfo() output
,然後頁面會給出詳細的步驟,然後安裝步驟一步步做就好。
3. 配置Xdebug
因為Homestead是在虛擬機器裡,要在宿主機內除錯需要開啟遠端除錯。
在/etc/php/7.2/fpm/conf.d/
目錄下新建xdebug.ini
檔案,修改xdebug的配置。
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.scream=0
xdebug.cli_color=1
xdebug.show_local_vars=1
複製程式碼
然後重啟服務
sudo service php7.2-fpm restart
複製程式碼
再開啟phpinfo
頁面,如果看到有xdebug
的表格,即表示安裝成功。再檢查表格內的遠端除錯是否已開啟,正確的話即配置成功。
二、配置PhpStorm
-
開啟 Perferences -> Languages&Frameworks -> PHP,首先選擇專案的php版本,之後在CLI Interpreter
-
點選後面的
...
,在左側欄頂部點選+
,選擇From Docker, Vagrant, VM, Remote
-
選擇Vagrant,
Vagrant Instance From
選擇Homestead所在的資料夾,確認返回 -
在CLI Interpreter裡選擇新新增的
Remote PHP
-
開啟Preferences -> Languages&Frameworks -> PHP -> Servers,給自己的專案新增新Server項,Host填入Homestead裡配置的路徑,Debugger選擇
Xdebug
,勾上Use path mappings
,在右邊Absolute path on the server
填入該專案在Homestead內的絕對路徑,是以/home/vagrant/...
開頭的 -
點選Run -> Start Listening for PHP Debug Connection,開啟監聽,或者是點選右上角那個電話圖示
三、配置瀏覽器外掛
- PhpStorm推薦了幾個Xdebug瀏覽器外掛,選擇所用瀏覽器對應版本即可
- 安裝後瀏覽器右上角多了個甲蟲圖示,點選後選擇
Debug
即開啟除錯
四、完畢
在編輯器內設定好斷點,同時確保瀏覽器的外掛為Debug
狀態,就能盡情debug了