PHP 致命错误:未捕获错误:使用 Laravel 5.8 和 PHP 7.4 调用未定义的函数 Whoops\Exception\xdebug_is_enabled()

d3v*_*r0w 9 php xdebug laravel composer-php whoops

希望你做得很好,我正在做一个 Laravel 项目,几个月以来我一直没有工作,发现任何时候出现异常,我都会收到以下错误:

[2021 年 1 月 15 日星期五 15:51:11] PHP 致命错误:未捕获错误:调用 /var/www/html/project/vendor/filp/whoops/src/Whoops/Exception 中未定义的函数 Whoops\Exception\xdebug_is_enabled() /Inspector.php:254

堆栈跟踪:

#0 /var/www/html/project/vendor/filp/whoops/src/Whoops/Exception/Inspector.php(175): Whoops\Exception\Inspector->getTrace()
#1 /var/www/html/project/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php(280): Whoops\Exception\Inspector->getFrames()
#2 /var/www/html/project/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php(197): Whoops\Handler\PrettyPageHandler->getExceptionFrames()
#3 /var/www/html/project/vendor/filp/whoops/src/Whoops/Run.php(296): Whoops\Handler\PrettyPageHandler->handle()
#4 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(345): Whoops\Run->handleException()
#5 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(324): Illuminate\Foundation\Exceptions\Handler->renderExceptionWithWhoops()
#6 /var/www/html/project/ in /var/www/html/project/vendor/filp/whoops/src/Whoops/Exception/Inspector.php on line 254
Run Code Online (Sandbox Code Playgroud)

有没有人以前见过这个错误并知道解决它的方法?先谢谢了。

d3v*_*r0w 21

原来我遇到了这个问题,发现只需将 "filp/whoops": "^2.0" 更新为 "filp/whoops": "^2.9" 问题就解决了。

  • 您应该将此标记为正确答案。遇到了同样的问题,也通过更新到 2.9 解决了。 (2认同)

Hua*_* Ng 7

如果您运行 2.9 之前的任何版本的“filp/whoops”,请 sudo pecl install -f xdebug-2.9.8 安装以前的版本,因为 xdebug 3 及以后删除了 xdebug_is_enabled 功能。https://xdebug.org/docs/upgrade_guide

然后将“zend_extension=/usr/lib/php/20190902/xdebug.so”添加到 php.ini

"filp/whoops": "^2.9" 应该能够支持 xdebug 3,因为它检查 xdebug_is_enabled 是否存在,因为 2.9.1 正在检查 xdebug_is_enabled 函数 https://github.com/filp/whoops/compare/2.9。 0...2.9.1 https://github.com/filp/whoops/commit/dc30a4cb68b45a5fb65e190cf0a6b58d3d3ef096

如果您已将 zend_extension=/usr/lib/php/20190902/xdebug.so" 添加到 php.ini,请在安装 xdebug-2.9.8 之前将其删除,因为它会导致安装错误

另外,不要只更改composer.lock中的包版本,它实际上不会更改包版本,因为文件下载链接也在composer.lock中。