Xdebug 在 Mac m1 上安装失败

leo*_*ail 9 php xdebug

我正在尝试在我的 Mac m1 上安装 Xdebug,我按照此页面(https://xdebug.org/docs/install)进行安装。这是我遵循的步骤:

步骤1 => 转到cmd:arch -x86_64 sudo pecl install xdebug

step2 => 去php.ini删除这行代码

zend_extension="xdebug.so"
Run Code Online (Sandbox Code Playgroud)

步骤3 => 转到 php.ini 添加此内容

[xdebug]
zend_extension=/opt/homebrew/lib/php/pecl/20190902/xdebug.so
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port="9003"
Run Code Online (Sandbox Code Playgroud)

步骤4 => 转到cmd:php -v

错误显示:

在此输入图像描述

我怎么解决这个问题?谢谢

Der*_*ick 17

这里发生的情况是,您构建了x86_64扩展的构建,但自制程序可能使用了该arm64e架构。这些架构不兼容。

您可以通过以下方式验证您的 PHP 架构:

file `which php`
Run Code Online (Sandbox Code Playgroud)

如果是这样arm64e,那么您需要文档中的原始命令:

sudo pecl install xdebug
Run Code Online (Sandbox Code Playgroud)

如果是x86_64,那么您需要针对 Apple 的双架构修改命令:

arch -x86_64 sudo pecl install xdebug
Run Code Online (Sandbox Code Playgroud)

对于它的价值,文档说:在 Apple M1 硬件上,您可能需要使用...,而不是必须

  • @leojail您可以运行`sudo pecl install -f xdebug`来覆盖它,或者运行`sudo pecl uninstall xdebug`来先删除它。 (4认同)
  • 感谢您的回答,我使用文件`which php`后,其响应Mach-O 64位可执行文件arm64,所以我需要使用“sudo pecl install xdebug”重新安装,问题是如何卸载当前的xdebug?谢谢!! (2认同)
  • 在尝试了几个小时后,我刚刚遇到了这个错误。[这个网站](https://patriqueouimet.ca/tip/installing-php-and-pecl-extensions-on-macos)也因为pecl错误而帮助了我 (2认同)

Kyl*_*enn 15

截至 2023 年 07 月 1 日的 Macbook M1 解决方案

  1. arch -arm64 pecl install xdebug
  • 如果ERROR: failed to mkdir /opt/homebrew/Cellar/php/8.2.4/pecl/20220829,运行rm /opt/homebrew/Cellar/php/8.2.4/pecl然后重新运行上面的命令
  1. 这将以一条路径成功结束。记下它,您很快就会需要它:
Build process completed successfully
Installing '/opt/homebrew/Cellar/php/8.2.4/pecl/20220829/xdebug.so'
Run Code Online (Sandbox Code Playgroud)
  1. php --ini
  2. 打开所示的 ini 文件:open /opt/homebrew/etc/php/8.2/php.ini
  3. 删除第一行(如果它说了有关 xdebug 的内容)
  4. 导航到conf.d目录(来自php --ini)cd /opt/homebrew/etc/php/8.2/conf.d
  5. touch xdebug.ini
  6. open xdebug.ini
  7. 添加以下代码。将扩展路径编辑为步骤 2 中的路径
;XDebug
zend_extension="/opt/homebrew/Cellar/php/8.2.4/pecl/20220829/xdebug.so"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9003
;xdebug.mode=profile
xdebug.output_dir="/tmp"
Run Code Online (Sandbox Code Playgroud)

运行php --version应该会显示一行关于 xdebug 的内容(就像这样with Xdebug v3.2.1