PHP Fatal error: Uncaught Error: Call to undefined function Whoops\Exception\xdebug_is_enabled() with Laravel 5.8 and PHP 7.4

PHP Fatal error: Uncaught Error: Call to undefined function Whoops\Exception\xdebug_is_enabled() with Laravel 5.8 and PHP 7.4

希望你做的很好,我正在做一个 Laravel 项目,我已经几个月没有工作了,发现每当出现异常时,我都会收到以下错误:

[Fri Jan 15 15:51:11 2021] PHP 致命错误:未捕获错误:调用 /var/www/html/project/vendor/filp/whoops/src/Whoops/Exception/Inspector.php 中的未定义函数 Whoops\Exception\xdebug_is_enabled() :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

有没有人以前见过这个错误并且知道修复它的方法? 预先感谢。

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

如果你 运行 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

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

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