php 为什么Xdebug不能与XAMPP一起工作,即使它说它安装在终端中?

wkftcu5l  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(82)

我的大学课程要求我使用XAMPP,但我无法让Xdebug使用它。
我用的是MacBook Air M2。我遵循了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
zd287kbt

zd287kbt1#

@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 and XAMPP path issue
在那之后,当我使用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是为不同的体系结构编译的。因此,我下载了xdebug的x86_64版本,使用:

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就可以工作了!:)

相关问题