Ответ 1
Попробуйте это после выполнения обновления для композитора:
php artisan cache:clear
Я использовал 'composer update', который обновил несколько пакетов. Во время процесса обновления веб-сайт по-прежнему функционирует. Однако после того, как он говорит: "Скомпилированный файл служб удален", веб-сайт не загружается и вместо этого говорит:
Exception in ProviderRepository.php line 190:
The bootstrap/cache directory must be present and writable.
Самое странное, когда я снова запускаю "композиторское обновление", веб-сайт снова начинает работать, пока файл скомпилированных служб не будет удален, и в этот момент он снова выдаст ту же ошибку. Я уже пробовал обычные вещи, которые должны выполняться при появлении этой ошибки (chown -R все для правильного пользователя/группы и chmod все файлы и папки 664 и 775 соответственно).
Я не знаю, что делать дальше, поскольку ошибка не кажется "правильной".
Попробуйте это после выполнения обновления для композитора:
php artisan cache:clear
В файле каталога Laravel запустите:
sudo chmod -R 775 bootstrap/cache/
Краткая версия. Если вы загружаете что-то вроде AWS eb cli, убедитесь, что развертывается папка начальной загрузки/кеширования (не говоря о ее содержимом).
Некоторые предпосылки моего ответа
Я использую Amazon Web Services Elastic Beanstalk для размещения моего проекта Laravel. Поскольку я только начал использовать Laravel, у меня нет большого представления о его функционировании. Два дня назад Мои новые развертывания все вываливались на полпути с сообщением об ошибке OP.
Ранее в тот день я понял, что не использовал
php artisan config:cache
для кэширования конфигураций, чтобы ускорить работу. И я добавил то же самое в предложениях composer.json "post-install-cmd" и "post-update-cmd".
И я также добавил выражение в файле .ebignore, чтобы не загружать содержимое /bootstrap/cache (поскольку его содержимое зависит от среды aka, мои настройки localhost не имеют никакого значения на моем производственном сервере)
И facepalm я не понял, что это остановит загрузку загрузочной/кеш-папки (как, например, git, eb cli игнорирует пустые папки).
Итак, когда я начал развертывать ночью. Развертывания предназначались для краха.
Итак, теперь я только что разместил файл с пустыми местами (скажем) .gitkeep в bootstrap/cache. И развертывания снова работают:)
(Хотя проблема была настолько простой, что я понял причину после ssh-ing и выкапывал экземпляр EBS EC2 для некоторых сладких часов сна ~.)
Я использую cmder на Windows 10 в режиме без повышенных прав (без прав администратора). команда php artisan cache: clear у меня не сработала. Папка bootstrap/cache не существует. Я создал эту папку и удалил ее только для чтения из папок начальной загрузки и начальной загрузки/кэша. И composer install, и composer update теперь работают.
Вы можете сделать это первым:
php artisan cache:clear
если это не сработает! Вы должны установить разрешение 775, как показано ниже:
sudo chmod -R 775 bootstrap/cache/
Если веб-сервер (например, Apache или Nginx) используется в качестве front-end, решение состоит в том, чтобы сделать каталог bootstrap/cache
принадлежащим группе веб-серверов, Для Nginx:
$ sudo chgrp -R nginx bootstrap/cache
это работает для меня запустить в папке проекта
sudo chmod -R 777 bootstrap/cashe
чем бежать
composer update
чем бежать
cache:clear