一、利用pecl安装xdebug
xdebug 功能强大,可以追踪代码,断点调试等等。现在就来动手安装下它。我的环境:php是7.2版本, phpstorm是2019版本, xdebug是2.9.3版本。我是用pecl安装xdebug插件的,也可以直接去官网下载安装:https://xdebug.org/download.php 是xdebug的所有资源下载列表
1、pear/pecl 需要单独进行安装
curl -O https://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar
输入1,回车,配置pear路径为:/usr/local/pear(一定是这个路径哈,提示给的路径不行),回车
输入4,回车,配置命令路径为:/usr/local/bin(一定是这个路径哈,提示给的路径不行),回车
回车两次,其他让其默认,安装完成
pear version 检查pear安装是否成功
2、通过pecl安装xdebug扩展
sudo pecl install xdebug
当看到类似如下文字的,说明安装成功了
Build process completed successfully
Installing '/usr/local/Cellar/[email protected]/7.2.25/pecl/20170718/xdebug.so'
install ok: channel://pecl.php.net/xdebug-2.9.3
Extension xdebug enabled in php.ini
3、查看xdebug是否启用正确的2种方式:
a. php -m 看到列表有xdebug
b. phpinfo()查看是否真的安装成功了,但前提是需要重启php
4、php.ini中配置xdebug
zend_extension="xdebug.so" #mac是.so,windows是.dll
xdebug.idekey = "PHPSTORM"
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9018 #这个端口随便写,但最好不要用9000,防止和php(storm)的默认9000端口冲突,
xdebug.remote_enable = 1 #允许与远程web服务器连接,1允许,0不允许
基本上这5个核心配置配置好了就可以了,其他走xdebug的默认配置就好了。然后记得千万要重启php,用phpinfo()函数查看xdebug的这几个配置是否奏效。
a.浏览器(谷歌/火狐)安装xdebug插件
如果是谷歌浏览器:谷歌浏览器的应用商店,搜索xdebug,安装,就能在浏览器右上角看到xdebug小臭虫的标记了。
如果是火狐浏览器:火狐浏览器右上角三条横杠-->附加组件-->搜索xdebug,第一个Xdebug-ext就是了,点击安装,就能在浏览器右上角看到xdebug小臭虫的标记了。
b.配置xdebug:
点进去xdebug小臭虫-->首选项-->选择对应的IDEkey,就是刚在php.ini里配置的xdebug的idekey,点击"保存"
phpstorm--->preferences(首选项)
a. php版本配置成php7.2,--->Languages&Frameworks --->PHP,配置Php language level和CLI Interpreter,其中如果CLI Interpreter没有的话,这么点击该项最后的三个点去手动配置。
b. xdebug的端口配置成9018,--->Languages&Frameworks --->PHP->Debug
c.可选项,DBGp Proxy选项的需要下载DBGP proxy软件并运行的,目的是解决多个人同时的调试,如果是一个人本地调试就不用管它。--->Languages&Frameworks --->PHP->Debug--->DBGp Proxy
第4步这里的浏览器,我选择了火狐哈,也可以改成google
4、运行xdebug
详见左右两图。小电话是开启调试模式,电话旁边的小臭虫师开始调试执行。先是执行左边的图,然后把浏览器里的控制器/方法改为需要断点调试执行的test/index,就能很清楚看到每一步执行的结果了。
原因:phpstorm版本与xdebug版本不匹配。我刚开始phpstorm版本是2017,xdebug版本是2.9.3(2020年3月15日看是最新的)
解决:phpstorm版本果断升级到2019, 分分钟好了。