2016-01-14 1 views
1

Я просто нажал мое приложение L5.2 на рабочий сервер. Я сделал несколько изменений, но неожиданно я получил следующую ошибку:L5.2 PHP Неустранимая ошибка: декларация Illuminate Auth SessionGuard :: basic

 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

Если что-то преуспевает в одной среде и не в другом, сосредоточьтесь на том, что отличается между вашей средой. – swa66

ответ

0

Я полагаю, что вы выполнили composer update по производству. Вы должны скопировать composer.lock на сервере производства (если вы еще не сделали этого) и запустить composer install установить ту же самую версию у вас на локальном хосте

Вы должны также запустить php artisan clear-compiled, потому что это может быть также проблема.

2

Я решил.

я должен был сделать:

rm bootstrap/compiled.php 
+0

Это также работает для меня. Это как-то связано с кешем. –

+1

Что сработало для меня, было удаление '' 'app/bootstrap/cache/compiled.php''', а затем запуск' '' composer dump-autoload -o''' – user2710915

+0

Да, удаление этого файла разрешает ошибку, но через несколько минут он снова генерируется - автоматически? Как решить это навсегда? –

0

Да, как другой сказал, удаление этого файла решает эту ошибку.

Но в моем случае этот файл генерируется снова и снова автоматически через 1 минуту. (Таким образом, чтобы продолжать работать сайт мне нужно вручную удалить этот файл снова и снова :))

Так вот что я сделал:

Открыт что самозагрузки/compiled.php, удаляется все содержимое и аннулировать разрешение на запись для этого файла.

И это очень сработало для меня.

Я знаю его наихудшее/временное решение, но если мы не знаем точной причины этой проблемы и лучшего решения, мы можем использовать это решение.

Однако я не рекомендую никому использовать это решение для производственных сайтов, но вы можете использовать его только для демонстрационного сайта, такого как мой случай.

8

просто удалите файл начальной загрузки/кэш/compiled.php

rm bootstrap/cache/compiled.php затем запустить composer dump-autoload и

php artisan clear-compiled

он должен работать