前言
近日接了个CURD项目,在实现docx转pdf时出了点小问题,需要使用XDebug进行调试。
在一般情况下,只要使用包管理工具安装“php-ext-xdebug”之类的包即可。
然而Mac下的包管理,使用Homebrew搜索“php”,却没有相关结果。
经过一番搜索,发现pecl可安装“xdebug”。
配置环境变量
在使用pecl前,需要先配置环境变量。(在使用brew安装php时有相关提示,如果已配置可忽略该步骤。)
echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.bash_profile
注意,这里我使用的是brew提供的php7.2版本。
安装XDebug
最新版本的XDebug源码可以在pecl的网站中找到。(目前是2.9.6)
将文件下载下来,然后在终端执行以下命令。
pecl install xdebug-2.9.6.tgz
这时安装已经完成,但需要修改一下配置文件。
vi /usr/local/etc/php/7.2/php.ini
刚打开配置文件就见到了诡异的情况,第一行是加载扩展的配置。
zend_extension="xdebug.so"
[PHP]
;;;;;;;;;;;;;;;;;;;
; About php.ini ;
;;;;;;;;;;;;;;;;;;;
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.
...
首先将这行配置删除,然后到文件尾部添加以下内容。
[xdebug]
zend_extension="xdebug.so"
xdebug.remote_enable = On
xdebug.remote_port = 9000
xdebug.remote_host = "localhost"
保存并重启“httpd”。(如果你使用的是Apache)
brew services restart httpd
到这里,XDebug的安装配置便完成了。
断点调试(PhpStorm)
首先找到“Preferences”-“Languages & Frameworks”-"PHP"-"Servers",添加当前开发环境所使用的服务器,保存。
然后点击“Run”-“Edit Configurations”菜单,在新窗口点击左上角“+”,添加“PHP Web Page”项;再在右边选中之前添加的服务器,以及配置好所使用的浏览器;最后确定保存即可。
在代码区打上断点,然后点击PhpStorm右上角的“Start Listening for PHP Debug Connections”(电话图标);再点击右上角的“Debug”图标即可。
接口调试
如果你需要使用Postman之类的接口测试工具,流程同上,首先点击“Debug”图标;然后在打开的浏览器地址栏中可见到“?XDEBUG_SESSION_START=23333”的字样。
这时只需要将这个“23333”复制,然后在接口测试工具中添加Header项 Cookie: XDEBUG_SESSION=23333
,便可以正常调试了。