PhpStorm+Homestead+Xdebug除錯Laravel

Harlan2016發表於2018-01-19

一、 安裝Xdebug

1. 確認環境

官網的Homestead預設安裝了多個版本的php,所以首先應該確認當前伺服器使用的是哪一個版本。

命令列裡的php與網站執行時的php是不一樣的,伺服器使用的是php-fpm,所以不要在命令列下使用phpinfo()php --version來獲取版本(我之前在這裡被坑了好久)。

正確的方法應該是,在Homestead中隨意找一個能執行的頁面,在頁面controller的第一行插入phpinfo();,然後會在該頁面的最前面會插入伺服器使用的php資訊。

phpinfo

2. 安裝Xdebug

Xdebug官方提供了一個檢測工具,只需要提供phpinfo()的資訊,就可給你一個詳細的xDebug安裝步驟。頁面地址:xdebug.org/wizard.php;

將第一步裡的phpinfo頁面的資訊複製貼上到工具頁面的輸入框裡(複製哪些?全部吧,從標題PHP Version一直拖滑鼠選擇複製直到最後php licence)。然後點選Analyse my phpinfo() output,然後頁面會給出詳細的步驟,然後安裝步驟一步步做就好。

PhpStorm+Homestead+Xdebug除錯Laravel

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+Homestead+Xdebug除錯Laravel

二、配置PhpStorm

  1. 開啟 Perferences -> Languages&Frameworks -> PHP,首先選擇專案的php版本,之後在CLI Interpreter

    PhpStorm+Homestead+Xdebug除錯Laravel

  2. 點選後面的...,在左側欄頂部點選+,選擇From Docker, Vagrant, VM, Remote

    PhpStorm+Homestead+Xdebug除錯Laravel

  3. 選擇Vagrant,Vagrant Instance From選擇Homestead所在的資料夾,確認返回

  4. CLI Interpreter裡選擇新新增的Remote PHP

  5. 開啟Preferences -> Languages&Frameworks -> PHP -> Servers,給自己的專案新增新Server項,Host填入Homestead裡配置的路徑,Debugger選擇Xdebug,勾上Use path mappings,在右邊Absolute path on the server填入該專案在Homestead內的絕對路徑,是以/home/vagrant/...開頭的

  6. 點選Run -> Start Listening for PHP Debug Connection,開啟監聽,或者是點選右上角那個電話圖示

    PhpStorm+Homestead+Xdebug除錯Laravel

三、配置瀏覽器外掛

  1. PhpStorm推薦了幾個Xdebug瀏覽器外掛,選擇所用瀏覽器對應版本即可
  2. 安裝後瀏覽器右上角多了個甲蟲圖示,點選後選擇Debug即開啟除錯

四、完畢

在編輯器內設定好斷點,同時確保瀏覽器的外掛為Debug狀態,就能盡情debug了

相關文章