Мой код на производстве, и я побежал
php artisan config:clear
После этого мой код не был запущен. Страницы указателей и все остальные страницы отображались на белом экране и дали 500 ошибок внутреннего сервера в firebug. Когда я попытался запустить
php artisan
это дало мне ошибку, поскольку
PHP Fatal error: Call to undefined method Closure::__set_state() in /var/www/live/vendor/config.php on line 56
Мой код в производстве! Файл /vendor/config.php не присутствовал раньше, что случилось с этим кодом? Вы столкнулись с такой ошибкой? Я предоставил все разрешения для хранения / папки и поставщика /. Любая помощь / руководство были бы высоко оценены.
Я столкнулся с подобной проблемой в прошлом, не знаю, что вызвало ее, но теперь вы можете удалить config.php
из /vendor
она не сломает ваш код.
И ваш код начнет работать.
У меня были подобные проблемы, когда я запускал php artisan config:cache
. По-видимому, это проблема, когда приложение пытается загрузить файлы кэшированной конфигурации, в которых есть закрытие. Это не будет исправлено в Laravel, так как плохой практикой является закрытие в файлах конфигурации. См. Этот вопрос Github
Как я решил это, это отменить это.
Удалите кеш для конфигурации.
Он находится здесь
bootstrap/cache/config.php
ИЛИ
vendor/config.php
Вот что я сделал для ее решения:
1. Перейдите в /vendor/tymon/jwt-auth/src/config/config.php и замените строки для storage
и auth
с помощью
'auth' => 'Tymon \ JWTAuth \ Providers \ Auth \ IlluminateAuthAdapter',
'storage' => 'Tymon \ JWTAuth \ Providers \ Storage \ IlluminateCacheAdapter'
php artisan config/cache
php artisan jwt:generate
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"
и это должно сделать это!
Среди других корневых причин эта ошибка возникает из-за вызова php artisan config:cache
когда закрытие определено внутри любого файла конфигурации, который Laravel пытается загрузить. Laravel не позволяет закрывать файлы конфигурации; видеть:
https://github.com/laravel/framework/issues/9625
Удаление результирующего файла кеша, обычно расположенного в bootstrap/cache/config.php
, «исправляет» ошибку.
Долгосрочным решением является устранение закрытия всех файлов конфигурации. Проблемный файл конфигурации может быть определен путем проверки строки нарушения, как указано в сообщении об ошибке.
Если нарушающий файл является сторонним, лучше всего открыть проблему с библиотекой, чтобы проблема была исправлена вверх по потоку.
Изменение файла config.php
внутри vendor/tymon/jwt-auth/src/config
для этого
'auth' => Tymon\JWTAuth\Providers\Auth\IlluminateAuthAdapter::class`
и это
'storage' => Tymon\JWTAuth\Providers\Storage\IlluminateCacheAdapter::class`
перед запуском php artisan config:cache
работал для меня.