官網的Homestead默認安裝了多個版本的php,因此首先應該確認當前服務器使用的是哪個版本。php
命令行裏的php與網站運行時的php是不同的,服務器使用的是php-fpm,因此不要在命令行下使用phpinfo()
或php --version
來獲取版本(我以前在這裏被坑了很久)。瀏覽器
正確的方法應該是,在Homestead中隨意找一個能運行的頁面,在頁面controller的第一行插入phpinfo();
,而後會在該頁面的最前面會插入服務器使用的php信息。bash
Xdebug官方提供了一個檢測工具,只須要提供phpinfo()
的信息,就可給你一個詳細的xDebug安裝步驟。頁面地址:xdebug.org/wizard.php;服務器
將第一步裏的phpinfo頁面的信息複製粘貼到工具頁面的輸入框裏(複製哪些?所有吧,從標題PHP Version
一直拖鼠標選擇複製直到最後php licence
)。而後點擊Analyse my phpinfo() output
,而後頁面會給出詳細的步驟,而後安裝步驟一步步作就好。php7
由於Homestead是在虛擬機裏,要在宿主機內調試須要打開遠程調試。app
在/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
複製代碼
而後重啓服務php-fpm
sudo service php7.2-fpm restart
複製代碼
再打開phpinfo
頁面,若是看到有xdebug
的表格,即表示安裝成功。再檢查表格內的遠程調試是否已打開,正確的話即配置成功。工具
打開 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,開啓監聽,或者是點擊右上角那個電話圖標
Debug
即開啓調試在編輯器內設置好斷點,同時確保瀏覽器的插件爲Debug
狀態,就能盡情debug了