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 的配置完毕。