我刚刚将我的 L5.2 应用程序推送到生产服务器。我做了一些更改,但突然出现以下错误:
PHP Fatal error: Declaration of IlluminateAuthSessionGuard::basic($field = 'email')
must be compatible with
IlluminateContractsAuthSupportsBasicAuth::basic($field = 'email', $extraConditions
= Array) in /home/forge/domain.com/bootstrap/cache/compiled.php on line 461
该应用程序在本地和暂存服务器上运行良好。
只需删除引导/缓存/编译.php文件
rm bootstrap/cache/compiled.php
然后运行 composer dump-autoload
和
php artisan clear-compiled
它应该工作
我解决了。
我不得不做:
rm bootstrap/compiled.php
我想你已经在生产上运行了composer update
。您应该composer.lock
复制到生产服务器(如果您还没有这样做)并运行composer install
以安装与本地主机上完全相同的版本
您还应该运行php artisan clear-compiled
因为它也可能是问题所在。
是的,正如其他人所说,删除该文件可以解决错误。
但就我而言,该文件会在 1 分钟后一次又一次地自动生成。(因此,为了保持网站运行,我需要一遍又一遍地手动删除该文件:))
所以这是我所做的:
打开了引导程序/编译.php,删除了所有内容并撤销了该文件的写入权限。
这对我来说效果很好。
我知道它最坏/临时的解决方案,但除非我们知道该问题的确切原因和更好的解决方案,否则我们可以使用此解决方案。
但是,我不建议任何人将此解决方案用于生产站点,但您可以将其用于像我的情况这样的演示站点。