MAMP Apache服务器配置Xdebug时出现xdebug_info()未定义报错
MAMP环境下
xdebug_info()函数未定义的排查方案 触发Call to undefined function xdebug_info()报错的核心原因是PHP运行进程未成功加载Xdebug扩展。即便确认编辑了对应路径的php.ini,只要扩展加载环节任意步骤出错,Xdebug提供的所有函数都不会注册到PHP运行时,可按以下步骤逐一排查:
- 校验扩展文件有效性
执行命令检查目标so文件是否存在、是否具备Apache运行用户的可读权限:ls -l /Applications/MAMP/bin/php/php7.4.12/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so
若文件不存在、或权限配置不允许进程读取,扩展会直接加载失败。 - 验证PHP进程的扩展加载状态
在对应Web站点根目录放置phpinfo页面,访问后查看已加载扩展列表中是否存在Xdebug条目;也可以直接调用该PHP版本的二进制程序执行php -m检查,若列表中无Xdebug,说明扩展加载环节已经出错,可执行php -v查看启动阶段输出的扩展加载报错信息。 - 核对版本兼容性
编译的Xdebug文件必须和PHP 7.4.12的编译ABI完全匹配。高版本Xdebug已停止对旧版PHP的支持,若下载了不兼容的Xdebug版本,会触发加载失败,不会注册任何Xdebug相关函数。 - 确认配置写入位置的准确性
MAMP环境下,CLI模式和Apache Web模式的PHP往往会加载不同路径的php.ini文件。需要通过phpinfo页面的“Loaded Configuration File”项,逐字符匹配自己编辑的配置文件路径,避免出现配置写入非目标环境配置文件的问题。同时要检查zend_extension配置行没有被注释、路径书写没有语法错误。
注:当前配置中写入的
xdebug.remote_enable是Xdebug 2.x版本的语法,即便扩展加载正常,在Xdebug 3.x版本中该配置也不会生效,但这不属于函数未定义的核心诱因。
内容的提问来源于stack exchange,提问作者user1163234
相关产品推荐
相关产品推荐

