为什么 Xdebug 不能与 XAMPP 一起使用,尽管它说它已安装在终端中?

问题描述 投票:0回答:1

我的大学课程要求使用 XAMPP,但我无法让 Xdebug 使用它。

我使用的是 M2 MacBook Air。我按照 Xdebug 向导列出的所有步骤进行操作,但没有成功。

XAMPP 目录和

opt/homebrew
目录中的 php.ini 文件都添加了以下行:

zend_extension=/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so
xdebug.mode=debug,develop
xdebug.client_port=9003
xdebug.client_host=172.17.0.1
xdebug.remote_handler=dbgp
xdebug.start_with_request=yes
xdebug.discover_client_host=0
xdebug.idekey=VSCODE
xdebug.show_error_trace = 1
xdebug.max_nesting_level=250
xdebug.var_display_max_depth=10
xdebug.log=/var/log/xdebug.log

xdebug.so
文件在该目录中,我已经检查过。

当我在终端中输入

php --version
时,它显示Xdebug已安装:

PHP 8.2.10 (cli) (built: Aug 31 2023 18:52:55) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies
    with Xdebug v3.2.2, Copyright (c) 2002-2023, by Derick Rethans
    with Zend OPcache v8.2.10, Copyright (c), by Zend Technologies

但是,当我转到 XAMPP

phpinfo.php
页面并将数据复制粘贴到 Xdebug 向导中时,它一直告诉我 Xdebug 尚未安装。请帮助我!

Xdebug 向导输出:

Xdebug installed: no
Server API: Apache 2.0 Handler
Windows: no
Zend Server: no
PHP Version: 8.2.4
Zend API nr: 420220829
PHP API nr: 20220829
Debug Build: no
Thread Safe Build: no
OPcache Loaded: no
Configuration File Path: /Applications/XAMPP/xamppfiles/etc
Configuration File: /Applications/XAMPP/xamppfiles/etc/php.ini
Extensions directory: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829
php apache xampp xdebug
1个回答
0
投票

@YvesLeBorg 无法真正摆脱 XAMPP,因为我的大学教授要求我们使用它...... 不管怎样,非常感谢您对不同 PHP 版本的见解。

我卸载并删除了 CLI 检测到的 PHP,以免混淆它们,然后将这些行添加到我的

~./zshrc
文件中:

export XAMPP_HOME=/Applications/XAMPP
export PATH=${XAMPP_HOME}/bin:${PATH}
export PATH

...然后使用以下命令重新加载登录 shell:

$ exec $SHELL -l;

...它将 XAMPP PHP 安装识别为默认安装。 非常感谢这个帖子:Mac OSX PHP 和 XAMPP 路径问题

之后,当我使用

php -v
时,它向我展示了这个:

Failed loading /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so:  dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so, 0x0009): tried: '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so' (no such file), '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))
PHP 8.2.4 (cli) (built: Apr  6 2023 04:12:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.4, Copyright (c) Zend Technologies

...这表明来自 homebrew 和 XAMPP 的 PHP 是针对不同的架构编译的。因此,我使用以下方法下载了 x86_64 版本的 xdebug:

arch -x86_64 sudo pecl install xdebug

最后,我在 php.ini 中将新的 xdebug.so 的路径设置为:

zend_extension=/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so

之后 xdebug 就可以工作了! :)

© www.soinside.com 2019 - 2024. All rights reserved.