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