配置PHPStorm+Vagrant+Laravel的Xdebug調試環境

背景

還記得剛學PHP的時候使用var_dump()echodie()exit()等函數進行斷點調試,這種方法不但效率低、不直觀、並且很難發現錯誤出現的具體位置。自從使用了PHPStorm這款IDE後,開始使用Xdebug進行調試,效率很是高。我在網上沒有找到比較適合我開發環境的Xdebug配置教程,因而將具體的配置寫成了一篇博客,但願能幫到你們。php

個人開發環境

PHP:5.5
Xdebug:2.2.3
PHPStorm:2016.2.2
Vagrant:1.8.6
OS:Ubuntu 14.04 LTSubuntu

開始配置

一、Xdebug安裝

檢查Xdebug是否安裝

首先須要檢查Xdebug是否已經安裝,若是已安裝則跳過此步驟。方法很是簡單,能夠直接打開phpinfo()頁面,搜索xdebug。若是搜索結果以下圖的話,說明已經安裝了Xdebug:
圖片描述瀏覽器

安裝Xdebug

在Ubuntu中安裝PHP的擴展很簡單,只須要一個命令:服務器

sudo apt-get install php5-xdebug

安裝成功命令行會有以下提示:app

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libaio1
Use 'apt-get autoremove' to remove it.
The following NEW packages will be installed:
  php5-xdebug
0 upgraded, 1 newly installed, 0 to remove and 66 not upgraded.
Need to get 253 kB of archives.
After this operation, 982 kB of additional disk space will be used.
Get:1 http://cn.archive.ubuntu.com/ubuntu/ trusty/universe php5-xdebug amd64 2.2.3-2build1 [253 kB]
Fetched 253 kB in 2s (101 kB/s)         
Selecting previously unselected package php5-xdebug.
(Reading database ... 69439 files and directories currently installed.)
Preparing to unpack .../php5-xdebug_2.2.3-2build1_amd64.deb ...
Unpacking php5-xdebug (2.2.3-2build1) ...
Setting up php5-xdebug (2.2.3-2build1) ...
php5_invoke: Enable module xdebug for fpm SAPI
php5_invoke: Enable module xdebug for cli SAPI

這樣,咱們就安裝好了Xdebug。此時安裝程序應該自動幫咱們生成了Xdebug的配置文件,pathinfo()中也應該能夠搜索到Xdebug的結果。ide

配置Xdebug

咱們在pathinfo()裏能夠看到xdebug的配置路徑:
圖片描述函數

個人Xdebug配置文件路徑在「/etc/php5/fpm/conf.d/20-xdebug.ini」。若是你的pathinfo()中的Additional .ini沒有任何配置的話,那麼你的Xdebug配置應該在php.ini中。ui

接着,編輯Xdebug配置文件,在「zend_extension=xdebug.so」下面添加一些配置,最終以下:this

zend_extension=xdebug.so
xdebug.idekey = "vagrant"
xdebug.default_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9001
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_handler="dbgp"

到此,Xdebug配置部分已經好了。spa

PHPStorm配置

設置Xdebug的端口

在Languages & Frameworks -> PHP -> Debug 中找到配置,Debug port改爲Xdebug配置文件中的xdebug.remote_port同樣的端口號:
圖片描述

設置DBGp Proxy

在Languages & Frameworks -> PHP -> Debug -> DBGp Proxy,IDE key改爲Xdebug配置文件中對應的xdebug.idekey
圖片描述

添加一個Server

在Languages & Frameworks -> PHP -> Servers 中找到配置,點擊+添加一個Server,配置相似下圖:
圖片描述

根據本身開發環境修改配置:

Name是Server名稱,能夠隨便填寫;
Host爲你調試項目是訪問的IP或者域名.

Port爲你Web服務器的端口,通常爲80

除此以外還須要配置項目路徑的映射(path mapping),將項目的根目錄以及public目錄映射到Vagrant服務器中的絕對路徑。

配置調試運行環境

在菜單中找到 Run -> Edit Configurations,點擊窗口左上角的+添加PHP Web Application(2018.2以上版本選擇PHP Web Page):
圖片描述
圖片描述
圖片描述

根據本身開發環境修改配置:

Name是配置名稱,能夠隨便填寫;
Server選擇剛添加的那個Server;
Start URL無需改變;
Browser也無需改變。

開始調試

全部步驟都配置完後,咱們能夠點擊菜單中的 Run -> Start Listening for PHP Debug Connections 進行調試監聽。
圖片描述

這個操做能夠用IDE右上角的圖標代替:
圖片描述

這時咱們在代碼中添加斷點,而後在瀏覽器中訪問,調試效果以下:
圖片描述

經過Debug咱們能夠清晰的看到各參數、對象的值,還能夠深刻的跟蹤,很是方便。本教程到此就結束了,但願幫到了你們。

常見錯誤

Mapping

若是在添加Server時未配置映射,斷點調試時會提示以下錯誤:
圖片描述
解決方法就是按照添加一個Server步驟配置Mapping。

相關文章
相關標籤/搜索