前言:
此篇笔记是来自同事小爱同学的整理,原文在github上(点击阅读原文,看着会舒服许多),为了访问方便(不科学上网很难加载出图片),经同意后复制到自己博客,在此也特别感谢他的帮助配置。
第一次配置还可以参考这篇文章,手把手教学,二者结合能极大提高配置成功率。
phpstuyd+phpstorm实现单步调试:https://www.kancloud.cn/tstayang/image/909004
正文:
搭建过很多次开发环境了,但每次在调试这一块还是会多少耗费一点时间。 所以便有了这篇关于PHPSTORM调试的笔记。
在进行调试之前,首先要做的是下载并安装Xdebug,然后再做相应的配置。如果使用集成环境,那么可以跳过这一步,通常都自带了Xdebug。
下载Xdebug(Windows)
xdebug官网
如何选择符合自己PHP的版本的Xdebug,可以通过下面这种方法来判断。
使用Xdubug官方提供的一个检测工具
在命令行中输入:
Mac
$ php -i | pbcopy
Linux
$ php -i | xsel
Windows
$ php -i | clip
将输出的phpinfo信息填入,然后就会自动检测该版本的PHP 所对应的Xdebug,如下图(这里以Windows 为例):
点击下载相应的文件。
安装并配置Xdebug
将下载好的文件放进指定目录 …\php\ext
配置php.ini文件,这里需要注意的是:要找到正确的php.ini文件。如果你不确定是哪一个,可以参考下面这个方法:
打印出phpinfo(),找到字段Loaded Configuration File根据后面的路径去找就没错了。
打开找到的php.ini配置文件,在最后面加上以下代码:
Windows
[XDebug]
zend_extension = “C:\xampp\php\ext\php_xdebug-2.6.1-7.2-vc15.dll” #这个地址指向 xdebug所在的文件路径
xdebug.profiler_enable = 1
xdebug.remote_enable = 1
xdebug.remote_port=9001
xdebug.idekey=PHPSTROM
xdebug.remote_host = localhost
其中:
xdebug.remote.host如果是本地调试,填localhost就好。
xdebug.remote_port为调试所监听的端口,通常默认使用 9001 ,需要和PHPStorm 中的 Debug port 相同。
下载并安装Xdebug(Mac)
Mac 下安装Xdebug,有两种方式:
使用pecl命令
通过源码编译
使用 pecl
Pecl 是 PHP 的包管理器。
这里以PHP5.6为例,需要安装最新2.5.x版本的Xdebug,因为这是PHP5.6提供支持的最后一个版本。
$ pecl install xdebug-2.5.5
源码编译
源码获取的方式和上面Windows 的方式是一样的,将输出的phpinfo粘贴至输入框,然后下载对应版本的Xdebug。
$ tar -xvzf xdebug-2.9.4.tgz
$ cd xdebug-2.9.4.tgz
$ phpize
$ ./configure
$ make
$ cp modules/xdebug.so /usr/lib/php/extensions/xdebug
启用Xdebug
无论是通过哪种方式安装,在正式使用之前,都需要手动启用该模块。
找到对应版本的 php.ini 文件并编辑,在配置文件中的最后部分加上以下内容:
[XDebug]
zend_extension="/usr/local/lib/php/extensions/xdebug/xdebug.so"
xdebug.profiler_enable = 1
xdebug.remote_enable = 1
xdebug.remote_port=9001
xdebug.idekey=PHPSTORM
xdebug.remote_host = localhost
重启PHP即可。
如何检查Xdebug 是否启用?
$ php -m | grep xdebug
xdebug
在PHPStorm中配置Xdebug
Mac
File->Setting->PHP->Debug,确保PHPStorm 已经找到了Xdebug。
在刚才的配置没错的前提下,这里是可以看到已经成功安装了Xdebug的。
如果显示没有安装,请检查上面两步操作有无问题。
File->Setting->PHP->Debug
Debug port 与php.ini配置文件中的xdebug.remote_port的对应参数保持一致。
File->Setting->PHP->Server,这三个参数的值和php.ini中的保持一致。
配置域名
这里根据实际情况配置,我本地使用80 端口作为项目访问端口,所以这里填的是80。
配置调试参数
Run->Web Server Debug Validation,检查是否配置成功。
确保项目文件路径和本地域名能正常访问,如果一切正常则能看到输出。
Windows
Windows 下的PHPStorm 配置和Mac 几乎差不多,保证一下几点是正常的基本上没啥问题。
确保PHPStorm 启用了对应版本的 Xdebug。
PHPStorm 的调试信息与php.ini文件中保持一致。
项目文件路径和本地域名能正常访问。
Xdebug 调试端口并非一定要用9001,只要保持php.ini与PHPStorm 的保持一致就好了。
在PHPStorm中使用Xdebug
有两种方式使用Xdebug:
直接在编辑器中开始调试。
通过在请求地址中附加xdebug 的请求参数来调试,这招通常用来处理一些前后端分离的联动调试。
参考链接
PhpStrom Xdebug 配置与使用
如何在Mac 上为不同版本的PHP 开启Xdebug
配置Xdebug-官方教程
Xdebug 官网
Xdebug 检测工具
补充:
如果启用了在php.ini中启用了xdebug.remote_autostart,请使用、
xdebug.remote_autostart = 0
当这个等于1时会影响到phpmyadmin的运行