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
老实说,我已尽一切努力使它正常工作。我对 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