Xdebug MacOS Big Sur M1(ARM)

Xdebug MacOS Big Sur M1(ARM)

老实说,我已尽一切努力使它正常工作。我对 MacOS 有点陌生,但我开始掌握它了。

我在 mac 上安装了 Xdebug,XAMPP 和 VSCode 作为编辑器。它仍然无法正常工作,我认为它没有连接。

php.ini

[XDebug]
zend_extension = /Applications/XAMPP/xamppfiles/lib/php/extensions/xdebug.so
xdebug.remote_port = 9003
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "/Applications/XAMPP/xamppfiles/temp"
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_enable = On
xdebug.trace_output_dir = "/Applications/XAMPP/xamppfiles/temp"

VSCode launch.json:

      "type": "php",
      "request": "launch",
      "port": 9003

是的,我的文件就在那个确切的位置。 如果有人对发生的事情有任何了解,我会很高兴知道。

更新 所以我检查了我的错误日志,我遇到了这个问题:

[12-Oct-2021 07:00:06 UTC] PHP Warning: Failed loading Zend extension 'xdebug' (tried: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20190902/xdebug (dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20190902/xdebug, 9): image not found), /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so (dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so, 9): no suitable image found. Did find: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so: mach-o, but wrong architecture /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so: mach-o, but wrong architecture)) in Unknown on line 0

网站上说 xdebug 只支持自制软件。但是用 homebrew 安装 php 和 XAMPP 是不一样的。我开始认为我不能同时使用 XAMPP 和 XDebug,而必须使用集成的 apache。

X调试向导:

Install the pre-requisites for compiling PHP extensions. On your Mac, we only support installations with 'homebrew', and brew install php && brew install autoconf should pull in the right packages."

当我在终端中查找 php 版本时,它得到的是自制软件中的版本,所以我将其删除。可能是当我使用 ./configure 时,它​​使用了自制软件的路径。这可能是图像不正确的原因。

不管是什么问题,我都找不到任何解决办法,试了很多东西

经过几天的努力,我终于明白了。 您需要做的是:

第一步: 检查终端中的 PATH

which php

第 2 步: 如果这不是您当前的 http 服务器,例如 XAMPP 或 MAMP,请通过创建 ./bash_profile 来更正它 MAMP 示例:https://gist.github.com/irazasyed/5987693 XAMPP 示例:https://gist.github.com/djandyr/c04950a1375e96814316

第 3 步: 再次检查 php 版本(重复步骤 1)。 如果这是您的 http 服务器的版本,那么就可以了。

第 4 步: 输入终端

php -v

第 5 步: 如果您的 xDebug 无法加载,它现在会告诉您原因。 (或在错误日志中)。 正如我所说,我有一台 M1 Macbook,但我认为 xDebug 不支持 M1。

第 6 步: 安装 xDebug 终端机:

arch -x86_64 sudo pecl install xdebug

第 7 步: 现在重新启动并尝试你的 phpinfo.

调试愉快!

这条消息中有线索:

mach-o, but wrong architecture

在 M1 上,您的 PHP 可以针对 x86_64 或 arm64 架构进行编译。 pecl 工具无法猜测它是哪一个,所以如果你的 PHP 是用 x86_64 编译的并且默认编译器设置是 arm64,那么你会得到上面的警告。

这意味着,有时您必须 运行 PECL 具有:

arch -x86_64 sudo pecl install xdebug

arch -x86_64 部分将设置环境以将 Xdebug 编译为 x86_64 二进制文件。

您可以使用以下方法检查 PHP 的架构:

file /full/path/to/php