目錄
1?下載并安裝Xdebug
2 配置PHPstorm扩氢,連接虛擬機PHP
3 配置Xdebug
4 建立PHP服務
5?驗證服務
6 處理發(fā)現的問題
1 下載并安裝Xdebug
通過命令查詢是否安裝了xdebug擴展
# php -v
如果版本信息中沒有包含xdebug信息鞋邑,則表示沒有安裝xdebug擴展
通過apt-get安裝xdebug
# sudo apt-get install xdebug
安裝成功后一般會在/usr/lib/php目錄下找到xdebug的擴展文件xdebug.so迅涮,如果沒有就通過下面這個命令來查找
# sudo find / -name "xdebug.so"
我當時找到好幾個目錄续徽,就逐個嘗試畏妖,把xdebug.so填到php.ini后傅瞻,再通過查看php版本來驗證版本是否匹配踢代。因為是配置cli的php.ini文件,所以不需要重啟php-fpm嗅骄。
下面是配置的命令
# sudo vim /etc/php/7.2/cli/php.ini
加入以下內容
[xdebug]
zend_extension="/usr/lib/php/20170718/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=192.168.10.10
xdebug.remote_port=9000
最終在20170718這個目錄跟我的PHP 7.2.11版本成功匹配上胳挎,通過查看PHP版本發(fā)現xdebug版本是v2.6.1。
在完成cli的php.ini配置后掸读,也需要在fpm的php.ini寫入相應的命令串远,并完成php-fpm的重啟。
2 配置PHPStorm儿惫,連接虛擬機PHP
完成Xdebug擴展安裝后柳刮,開始連接PHPStorm和虛擬機,打開PHPStorm的設置肢执,搜索并點擊PHP贴浙,進入PHP設置區(qū)域。
設置PHP版本為7.2铛铁,下一步點擊...符號隔显,選擇PHP的cli命令文件却妨。初始打開一般是空的,需要點擊+號括眠,選擇要連接虛擬機或本地的php命令彪标。
點擊From Docker, Vagrant, Vm, WSL,Remote... 選項后彈出選擇器,接著點擊Vagrant 選項掷豺,然后第一個目錄是選擇Vagrantfile所在的目錄捞烟,選擇成功后PHPStorm會自動查找虛擬機的PHP目錄,如果查找失敗当船,就要自己選擇正確的命令位置题画。
這里要注意的是,Homestead的Vagrant虛擬機中德频,會在多個PHP版本中給配置一個默認的PHP版本苍息。配置設置版本的代碼在homestead.rb文件中。
在完成虛擬機PHP路徑配置后竞思,配置界面會實時同步PHP的版本信息,需要注意PHP的版本信息以及Xdebug版本信息是否也預期的一致蒸绩,如果不一致則需要繼續(xù)檢查php腳本路徑等衙四。
如果版本信息一致,則繼續(xù)完成Xdebug擴展文件的填寫患亿,填入Debugger Extension輸入框中传蹈。而下面的配置項則可以不填。
3 配置Xdebug
在完成PHP配置后步藕,回到PHP配置界面惦界。
選擇Debug,進入DBGp Proxy界面咙冗,完成Xdebug的連接配置沾歪。其中Host是虛擬機的IP地址,IDE key和Port可以通過phpinfo信息中的Xdebug信息中獲取到雾消。
完成xdebug的連接配置后灾搏,即可以驗證xdebug服務是否生效×⑷螅回到debug配置的主界面狂窑,檢查xdebug配置是否準備就緒。無誤后點擊Validate進行驗證桑腮。
在驗證界面中輸入其中一個服務的本地web目錄泉哈,輸入服務的訪問地址。點擊Validate開始驗證,當所有驗證項都通過時丛晦,即表示xdebug服務成功開啟奕纫。校驗成功后,即可點擊Start Listening按鈕烫沙,打開Xdebug的監(jiān)聽了匹层。
4 建立PHP服務
接著進入PHP下面的server界面,為第一個PHP服務都建立一個server斧吐。目錄右邊的目錄必須為虛擬機中的項目絕對路徑又固。Debugger處選擇為Xdebug。
完成多個PHP服務配置后煤率,回到PHPstorm主界面,點擊右上角Edit Configurations...開啟PHP應用乏冀。在開啟應用界面中蝶糯,需要再次點擊Validate來驗證Xdebug是否可用。
5?驗證服務
打開瀏覽器或者API工具辆沦,打好斷點昼捍,開始美妙的開發(fā)之旅,再也不用每次調試都要鍵入exit()來打斷點了肢扯。優(yōu)雅又省心妒茬。
6 處理發(fā)現的問題
1、Xdebug的連接蔚晨,DBGp Proxy配置中乍钻,IP地址為vagrant虛擬機連接的IP地址。
2铭腕、composer無法通過PHPStorm連接虛擬機中的composer腳本银择,如果宿主機器不安裝composer就無法通過PHPStorm來完成依賴包的更新。
3累舷、在通過composer腳本更新依賴包的時候浩考,gmp這個擴展無法通過apt直接進行安裝,最后是下載了PHP7.2.11的源碼包被盈,在ext目錄中找到gmp目錄析孽,通過phpize進行安裝。在configure時需要判斷 php-config的版本是不是跟php_cli腳本同一個版本只怎。
# /usr/bin/phpize
#?./configure --with-php-config=/usr/bin/php-config
# make & make install
將生成的gmp.so擴展文件放入fpm的php.ini配置中袜瞬。