http://blog.hsojo.com/2020/06/01/PHPXDebugOnMac/
版权声明:本文为博主原创文章,转载请注明出处。
前言
近日接了个CURD项目,在实现docx转pdf时出了点小问题,需要使用XDebug进行调试。
在一般情况下,只要使用包管理工具安装“php-ext-xdebug”之类的包即可。
然而Mac下的包管理,使用Homebrew搜索“php”,却没有相关结果。
经过一番搜索,发现pecl可安装“xdebug”。
配置环境变量
在使用pecl前,需要先配置环境变量。(在使用brew安装php时有相关提示,如果已配置可忽略该步骤。)
1 2 |
echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.bash_profile |
注意,这里我使用的是brew提供的php7.2版本。
安装XDebug
最新版本的XDebug源码可以在pecl的网站中找到。(目前是2.9.6)
将文件下载下来,然后在终端执行以下命令。
1 |
pecl install xdebug-2.9.6.tgz |
这时安装已经完成,但需要修改一下配置文件。
1 |
vi /usr/local/etc/php/7.2/php.ini |
刚打开配置文件就见到了诡异的情况,第一行是加载扩展的配置。
1 2 3 4 5 6 7 8 9 |
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. ... |
首先将这行配置删除,然后到文件尾部添加以下内容。
1 2 3 4 5 |
[xdebug] zend_extension="xdebug.so" xdebug.remote_enable = On xdebug.remote_port = 9000 xdebug.remote_host = "localhost" |
保存并重启“httpd”。(如果你使用的是Apache)
1 |
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
,便可以正常调试了。