vagrant默認已經安裝好xdebug,可經過phpinfo()來確認。php
下面是配置的步驟:git
Xdebug 與 PhpStorm 如何與 vagrant 進行溝通?shell
xdebug 與 phpstorm 之間的通訊是client-server模式。其中 xdebug 是 client, 他須要訪問 phpstorm。而 vagrant 就是他們之間溝通的橋樑。瀏覽器
配置xdebug服務器
首先經過命令行鏈接上vagrantapp
vagrant ssh
再輸入命令ssh
netstat -r
記住Gateway那一項的IP,一般是:
phpstorm
10.0.2.2
打開xdebug配置文件ide
cd /etc/php5/mods-available
vi xdebug.ini
將該文件內容改成:工具
zend_extension=/usr/lib/php5/20131226/xdebug.so xdebug.idekey="debugit" xdebug.remote_host=10.0.2.2 xdebug.remote_port=10000 xdebug.remote_enable=1 xdebug.remote_autostart=0 xdebug.remote_handler="dbgp"
配置phpstorm,讓他可以接受來自xdebug的請求
ctrl+alt+s 打開phpstorm 配置窗口,進入 Languages & Frameworks -> PHP -> Debug頁面,將xdebug的端口設爲10000,並確認勾選 can accept external connection項。點擊apply保存。
對於phpstorm,vagrant至關於一個遠程服務器,因此須要爲phpstorm添加這個服務器以便通訊。進入 Languages & Frameworks -> PHP -> server頁面,填寫你的 vagrant 服務器信息,重要的是將你的本地代碼與虛擬機代碼映射起來(只須要映射 項目根目錄 與 站點根目錄)
添加一個php解釋器,進入 Languages & Frameworks -> PHP 頁面
寫博客時我已經導入完成了,正常狀況下,第一次設置須要手動導入vagrant自帶的php解釋器。點擊Interpreter右側的[...]按鈕,彈出如下窗口:
點擊+新建一個解釋器,Remote選擇Vagrant,Remote目錄就是你鍵入vagrant ssh的目錄,接下來填寫可執行php文件的目錄,若是填寫正確,點擊右側藍色同步按鈕後,就會自動識別出解釋器的版本信息。
建立一個phpstorm debug 配置
在IDE的工具欄點擊Run->Edit Configurations
點擊+建立一個PHP Web Application,爲他起一個名字,並將Server設置爲以前建立的Vagrant,點擊apply保存。
點擊 Run->start listening for php debug connections:
最後,在vagrant本地目錄下重啓虛擬機:
vagrant reload
在IDE設置好斷點,並點擊 Run->Debug 'Vagrant'就能夠進行調試了。
此時能夠清楚地看到棧信息,因爲代碼在斷點處中止執行,瀏覽器報 504 Timeout。
以上,phpstorm8 + vagrant + xdebug 的配置完畢。