mac系统xampp+phpstorm环境安装xdebug

最近需要使用php进行开发,与java,c#这些不同,php需要额外安装xdebug才能使用IDE断点调试,折腾了一天才装好,所以记录一下,希望可以帮助碰到相同问题的朋友。

系统环境
  • 操作系统:macOS Catalina 10.15.7

  • 开发IDE:phpstorm

  • 环境:XAMPP,PHP Version 8.1.12,操作系统的PHP Version为7.3.29

安装xampp

这个很简单,去官网下载dmg安装就行,点击下载xampp

安装xdebug
  1. 查看PHPInfo

打开xampp,然后启动Apache Web Server,浏览器输入http://localhost(xampp默认端口号是80,如果修改了,加上端口号再访问),然后点击菜单“PHPInfo”,在新打开的页面中,直接Ctrl+A全选,然后Ctrl+C复制。

  1. 下载xdebug

打开xdebug网站,将刚才复制的内容粘贴到文本框中, 然后点击“Analyse my phpinfo() output”按钮,会自动解析信息给出需要下载的xdebug版本,如下图:

点击xdebug-3.2.0.tgz下载压缩包到本地合适位置。

  1. 生成xdebug.so

如下图所示,按照xdebug给出的步骤一步一步执行理论上就可以顺利生成xdebug.so文件。

不出意外的话,这个时候是肯定要出意外了,我在执行第2步的时候就出了问题,等了大半天,终于看到控制台都下载完了的时候,显示安装php依赖包出错了,如下图:

刚开始以为是网络问题,重新执行一遍,结果还是这个错误,网上搜了一下,最后手动使用brew install apr将这个依赖装上了,OK,再来一遍,这次不报找不到apr了,报找不到ca-certificates,是的,你没有看错,就是上图中绿色字体的第二个,好吧,这下明白了,这些依赖包居然不自动下载安装,于是乎手动brew install绿色字体的所有依赖,再次执行brew install php && brew install autoconf,这次没有任何意外了。

继续,到了关键的第5步,没错,不出意外的话,嗯,又要出意外了,而且是大意外,就这个折腾了我老长时间,当我满心欢喜的敲入phpize后,刚才熟悉的No such file or directory又出现了,然后xdebug官网截图中的Zend Module Api No与Zend Extension Api No都是空的,请看下图:

关于这个问题,网上的帖子也不少,但方案基本就那几个,不能说相似吧,只能说一模一样,对我一点毛用都没有,这里我就不说了,能看到我这篇文章的朋友,那些方案应该都试过了。

最终我的解决方案如下:

  1. 安装Xcode

从App Store中下载安装即可,安装完最好是正常打开一次,然后再退出就可以了。

  1. 安装xcode-select

控制台执行以下命令安装。

xcode-select --install
  1. 查看sdk路径

控制台输入命令xcrun --show-sdk-path,我的路径如下图:

  1. 复制并修改phpize文件

将phpize文件复制一份到解压缩后的xdebug目录下,我的是xdebug-3.2.0文件夹,命令如下:

sudo cp /usr/bin/phpize /Users/username/xdebug/xdebug-3.2.0

然后修改复制后的phpize文件:

cd /Users/username/xdebug/xdebug-3.2.0
nano ./phpize

找到includedir那一行内容:

includedir="`eval echo ${prefix}/include`/php"

复制第3步sdk路径,修改includedir的值:

includedir="/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/php"

保存后,执行phpize:

./phpize

此时,不出意外的话,应该可以看到下图内容了:

如果出意外了,比如说我这种专业意外选手,可能会出现下图内容:

说找不到config.m4,这个问题很好解决,说明你的phpize文件不在解压后的xdebug目录下,这就是我第4步中要将phpize复制到解压后的xdebug目录下的原因,它里面有config.m4文件,当时我是将phpize随便复制到了一个文件夹中,所以毫无意外的又出现了意外。

  1. 见证奇迹的时刻

再依次执行xdebug官网的第6、7步,这次应该是真的不会有意外了,至少我顺利的生成了xdebug.so文件,到这里基本上就结束了。

配置环境
  1. 复制生成的xdebug.so文件到xampp中

cp ./modules/xdebug.so /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20210902
  1. 修改xampp的php.ini文件

文件路径为/Applications/XAMPP/xamppfiles/etc/php.ini,在文件最后加上以下内容:

[xdebug]
zend_extension=/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20210902/xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host="localhost"
;这个端口号要和phpstorm中的保持一致
xdebug.client_port=9003
;调试器关键字
xdebug.idekey="PhpStorm"

要注意,xdebug3的配置项很多名称已经变了,网上大部分帖子的都是xdebug2的配置,是不行的,不能照搬,下面的是xdebug2的:

[xdebug]
zend_extension="/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20210902/xdebug.so"
xdebug.remote_autostart=On
xdebug.remote_enable=On
xdebug.remote_mode="req"
xdebug.remote_host="localhost"
xdebug.remote_port=9003
xdebug.remote_handler="dbgp"
xdebug.idekey="PhpStorm"

这个配置项的变更在xdebug官网都有,需要更多配置的可以自行去官网查看xdebug2升级xdebug3

  1. 配置PhpStorm

  1. 配置PHP

点击菜单PhpStorm->Preferences...

点击三个点按钮,打开CLI Interpreters配置页面;

取好名字,然后PHP为xampp中的路径。

  1. 配置Debug

配置Debug的端口号为xdebug.client_port的值,PhpStorm默认为9000,9003,我的xdebug.client_port=9003,所以端口号我没有修改。

配置DBGp Proxy,其中IDE key与xdebug.idekey的值保持一致,Host一般都是本地localhost,Port填你实际使用的端口号。

  1. 配置Servers

  1. 启动/调试配置

点击小三角->Edit Configurations...

点击“+”按钮,添加PHP Web Page配置,Server选择刚才配置好的服务,其它的按照实际项目填写即可。

  1. 启动调试

点击虫子按钮使用Debug模式启动项目,然后点击电话按钮,开启监听,不开启是无法进入断点的,至此,大功告成。


以上就是本人mac系统xampp+phpstorm安装xdebug进行断点调试的所有内容,附上最终解决方案参考的原文链接:

https://bbqsoftwares.com/blog/xdebug-catalina

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
本地环境的搭建和配置是进行开发工作的基础,以下是xamppphpstormxdebug和chrome的配置和断点调试的步骤: 1. 安装和配置XAMPP: - 下载并安装XAMPP,它是一个集成了Apache、MySQL和PHP的开发环境。 - 打开XAMPP控制面板,启动Apache和MySQL服务。 - 在浏览器地址栏输入localhost,确认XAMPP是否正常运行。 2. 安装和配置PHPStorm: - 下载并安装PHPStorm集成开发环境。 - 打开PHPStorm,创建或导入你的项目。 - 在设置中的PHP选项中配置PHP可执行程序路径,选择XAMPP中的php.exe文件。 - 配置项目的运行/debug配置,选择Xdebug作为调试引擎。 3. 配置Xdebug: - 打开xampp\php\php.ini文件,在文件末尾添加以下代码: ``` [Xdebug] zend_extension = path_to_xampp\php\ext\php_xdebug.dll xdebug.remote_enable = 1 xdebug.remote_handler = dbgp xdebug.remote_host = localhost xdebug.remote_port = 9000 ``` 4. 配置Chrome浏览器: - 在Chrome浏览器中安装Xdebug Helper插件。 - 点击插件图标,选择设置,将IDE Key设置为PHPStorm。 - 启用Xdebug Helper插件,并确保它为绿色以表示调试已启动。 5. 调试代码: - 在PHPStorm中设置断点,可以通过点击代码行号来设置断点。 - 在Chrome浏览器中访问你的网页应用。 - 当代码运行到断点处时,PHPStorm会自动跳转到调试模式并在IDE中显示当前状态。 - 你可以使用PHPStorm的调试工具栏来控制代码的执行、查看变量的值以及观察程序的执行流程。 通过以上步骤,你可以在本地环境中使用XAMPPPHPStormXdebug和Chrome进行代码的断点调试。你可以设置断点、监控变量的值,以及通过PHPStorm的调试工具栏控制代码的执行流程,这将有助于你更有效地调试和排除代码中的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值