前言

近日接了个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,便可以正常调试了。