这是一个深深的坑。网上的教程要么太老,要么太多错误的地方,试过了很多步骤都没成功,所以,这个坑我觉决定亲自填一下。
1. 下载、安装和配置xdebug
下载
去官网下载最新的source源码,我写这篇文章的时候,最新版是xdebug-2.3.2。
这是下载地址:http://www.xdebug.org/files/xdebug-2.3.2.tgz
安装
源码下载完成后,解压,并安装到php的扩展当中。
cd /xdebug
phpize
./configure
make
sudo make install
配置php.ini
[xdebug]
zend_extension = xdebug.so
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_mode = "req"
xdebug.remote_port = 9001
xdebug.idekey = "PHPSTORM"
重启下php-fpm
kill -USR2 `cat /usr/local/var/run/php-fpm.pid`
2. 配置PHPstorm
这一步是最坑爹的,一定要小心配置,也有很多坑。分几步:
配置xdebug
phpstorm -> preferences 打开设置页面:
然后,再选择 Languages -> php -> Debug 下,将Xdebug 下的Debug port 改成9001
,和php.ini
中设置的一致。
OK。xdebug端口配置好了,我们再配置一下Phpstorm下的2种运行模式web
和cli命令行
这2种模式下的项目运行。
debug也只是针对某一个页面在做的。我们以index.php
页面为例,先打开index.php
,在最右上角,点击Edit Configurations
打开设置页面:
第一种是在web网页端运行的,我们就改名叫web
吧,在Javascript debug
下,填入我们这个项目的运行URL
,我这里直接填的localhost
。
这样子,我们点击运行
按钮,就会用chrome
浏览器打开http://localhost:8080/learnlaravel5/public/index.php
页面了。
还一种是命令行模式运行。在php script
下,我们就改名叫cli
。File
下,填入我们当前文件的绝对路径。
安装JetBrains IDE Support
好,2种模式都搞好了,一般我们是在web模式下调制,所以,我们先选择web
模式,再将最右边的电话debug按钮
点击打开,最后,点击中间的虫子
按钮:
会帮我们打开chrome
浏览器到http://localhost:8080/learnlaravel5/public/index.php
页面,同时,phpstor底部弹层报错了,提示我们要安装JetBrains IDE Support
扩展:
Waiting for connection from JetBrains IDE Support extension for Chrome (IDE port 63342).
ok, 我们点击这个连接进去,是chrome 应用市场的下载页面,估计国内的环境打不开,要开个代理:
安装完成后,就会有个JB
的logo了。
然后,我们再按照刚才的步骤来一次,浏览器就会出现这样子:
同时我们在index.php
加了一个断点后,现在就已经出现了断点调试信息,表示我们已经成功了。注意:是在index.php
这一栏。现实的。
同样,由于我们也配置了cli
的环境,我们当然也是可以在cli
模式下运行和debug的:
注意:xdebug,只允许一个进程在跑,所以,当你打开另一个的时候,记得将起他的全部关掉。