问题描述
我将我的 Homestead 盒子从 20.04 存储库更新到了最新的官方版本。一切安装正常,似乎工作正常,但我的应用程序现在完全坏了。我过去升级过 Homestead 没有任何问题。
我运行的任何命令都会返回:
PHP Fatal error: Uncaught Error: Call to a member function connection() on null in /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP:1498
Stack trace:
#0 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1464): Illuminate\Database\Eloquent\Model::resolveConnection()
#1 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1271): Illuminate\Database\Eloquent\Model->getConnection()
#2 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1188): Illuminate\Database\Eloquent\Model->newBaseQueryBuilder()
#3 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1224): Illuminate\Database\Eloquent\Model->newModelQuery()
#4 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1177): Illuminate\Database\Eloquent\Model->newQueryWithoutScopes()
#5 /home/vagrant/code/REMOVED in /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP on line 1498
我无法运行任何 artisan 命令,Composer 也无法完成创建正确的自动加载文件。
浏览网页界面显示:
Fatal error: Uncaught Error: Call to undefined method ComposerAutoloaderInit4ae805320ff6a78bd9cc38b042c51006::getLoader() in /home/vagrant/code/REMOVED/vendor/autoload.PHP:7 Stack trace: #0 /home/vagrant/code/REMOVED/bootstrap/autoload.PHP(3): require_once() #1 /home/vagrant/code/REMOVED/public/index.PHP(34): require_once('/home/vagrant/c...') #2 {main} thrown in /home/vagrant/code/REMOVED/vendor/autoload.PHP on line 7
MariaDB 正在运行,仍然使用默认的 homestead/secret 用户和 pass。 .env 和所有代码也与升级前相同。还在 Nginx 和 CLI 中使用 PHP 7.4。
我不知道该做什么或去哪里寻找。有什么想法吗?
[编辑]
我已启用 MariaDB 常规日志以查看传入的连接尝试,但 Laravel 甚至不尝试连接,因此这不是数据库问题。
解决方法
我已经部分了解了。 Linux 没有显示整个错误,当我在我的 Mac 本地运行 artisan 命令时,它指向一些试图执行数据库查询以获取设置值的包。
由于某种未知原因而失败。我拆除了线路,一切顺利。缓存 .env,运行 dump-auto 并重新启动 FPM,一切正常,加载 1 个页面。
所有后续页面加载都会引发 PHP 错误:
Fatal error: Uncaught Error: Call to undefined method ComposerAutoloaderInit4d864c59644e635478404aa0440854b7::getLoader() in /home/vagrant/code/REMOVED/vendor/autoload.php:7 Stack trace: #0 /home/vagrant/code/REMOVED/bootstrap/autoload.php(3): require_once() #1 /home/vagrant/code/REMOVED/public/index.php(34): require_once('/home/vagrant/c...') #2 {main} thrown in /home/vagrant/code/REMOVED/vendor/autoload.php on line 7