在PHPStorm中调试PHP代码

之前一直通过echo,var_dump,print_r等将变量输出来调试PHP,效率奇低。而使用xdebug,就可以直接在IDE中调试PHP了。

安装xdebug

下载xdebug

请下载对应PHP版本的xdebug

1
2
3
wget wget http://xdebug.org/files/xdebug-2.2.1.tgz
tar xzvf xdebug-2.2.1.tgz
cd xdebug-2.2.1

安装xdeubg

1
2
3
4
/usr/local/webserver/php/bin/phpize
./configure --enable-xdebug --with-php-config=/usr/local/webserver/php/bin/php-config
make
cp modules/xdebug.so /usr/local/webserver/php/lib/php/extensions/

修改 php.inivi /usr/local/webserver/php/etc/php.ini

在最底下加入以下内容:

1
2
3
4
5
6
7
8
[XDEBUG]
zend_extension='/usr/local/webserver/php/lib/php/extensions/xdebug.so'
xdebug.remote_enable=on
; 此地址为IDE所在IP
xdebug.remote_host=xxx.xxx.xxx.xxx
xdebug.remote_port=9000
; 可以是任意Key,这里设定为PHPSTORM
xdebug.idekey='PHPSTORM'

配置IDE

我是用的IDE是PHPStorm,所以以下配置均根据PHPStorm进行,其他如Netbean和Eclipce类似

在Settings里面,选择PHP -> Debug,在xdebug里填入刚才设定的端口,确定即可。

phpstorm-xdebug

设置好后,点击 Run -> Start Listen PHP Debug Connections 开启监听即可。

配置浏览器

Firefox浏览器可以安装 easy Xdebug ,Chrome上安装 Xdebug helper 。安装好后,在IDE Key 上填上 PHPSTORM (需要和配置一样)即可。

xdebug-key

开始Debug

设置完成后,在PHPStorm里添加相应的断点,然后用刚配置好的浏览器访问相应页面,首次打开PHPStorm会提示是否接收来自PHP所在服务器的连接。如下图,Debugger窗口已经出现了调试信息:

debug-information