我使用了'composer update',它更新了一些软件包。在更新过程中,网站仍然有效。但是,在显示“已删除已编译的服务文件”之后,网站不会加载,而是说:
Exception in ProviderRepository.php line 190:
The bootstrap/cache directory must be present and writable.
最奇怪的是,当我再次运行'composer update'时,网站再次开始工作,直到删除已编译的服务文件,此时它再次抛出相同的错误。我已经尝试了当出现此错误时应该执行的常规操作(chown -R all to right user / group and chmod all files and files 664和775)。
我不知道该怎么做,因为错误似乎不正确。
答案 0 :(得分:122)
运行编辑器更新后尝试此操作:
php artisan cache:clear
答案 1 :(得分:8)
在Laravel目录文件中,运行:
sudo chmod -R 775 bootstrap/cache/
答案 2 :(得分:3)
简短版:如果使用 AWS eb cli 等内容进行上传,请验证是否 bootstrap / cache 文件夹(不讨论其内容)展开。
我的回答背后的一些背景
我正在使用亚马逊网络服务' Elastic Beanstalk来托管我的Laravel项目。当我刚开始使用Laravel时,我对其功能并不太了解。两天前我的新部署都因OP的错误消息而中途崩溃。
那天早些时候,我意识到我没有使用
php artisan config:cache
缓存配置以加快速度。我在 composer.json " post-install-cmd "中添加了相同内容。和" post-update-cmd "条款。
我还在 .ebignore 文件中添加了声明,以便不上传 / bootstrap / cache 的内容(因为其内容取决于环境又名我的localhost配置对我的生产服务器没有意义)
并且 facepalm 我没有意识到这会阻止 bootstrap / cache 文件夹被上传(就像git,eb cli忽略空文件夹)。
所以,当我开始在夜间部署时,部署意味着崩溃。
所以,现在我刚刚在 bootstrap / cache 中放置了空占位符(例如) .gitkeep 文件。部署再次工作:)
(虽然这个问题很简单,但我知道了为了一些甜蜜的睡眠时间而匆匆挖掘和挖掘EBS EC2实例之后的原因〜。)
答案 3 :(得分:2)
解决此错误的最佳方法是: 1.打开您的项目文件夹 2.移至引导目录 3.创建一个名为“ cache”的空文件夹 4.然后做php artisan缓存:清除 这肯定可以工作
答案 4 :(得分:1)
我在Windows 10上以非提升模式(Non-Admin)使用cmder。 命令php artisan cache:clear不适用于我。 文件夹引导程序/缓存不存在。 我创建了该文件夹,并从bootstrap和bootstrap / cache文件夹中删除了只读。 composer安装和composer更新现在都可以使用。
答案 5 :(得分:1)
对我来说,我是在引导程序中手动创建缓存文件夹的。
答案 6 :(得分:0)
如果将Web服务器(例如 Apache 或 Nginx )用作前端,解决方案是使Web拥有目录bootstrap/cache
服务器组。对于 Nginx :
$ sudo chgrp -R nginx bootstrap/cache
答案 7 :(得分:0)
对我来说工作在项目文件夹中
sudo chmod -R 777 bootstrap/cache
比运行
composer update
比运行
cache:clear
答案 8 :(得分:0)
sudo chmod -R ug+rwx storage bootstrap/cache
希望这可以解决问题。
答案 9 :(得分:0)
尝试在项目根目录中执行以下命令
composer update
然后做
composer dumpautoload
这将避免弄乱缓存文件的必要性 可能会导致全新的问题
答案 10 :(得分:0)
在运行作曲家更新后也可以尝试以下操作:
php artisan config:clear
答案 11 :(得分:0)
我不认为我之前做错了什么,并且没有关于现金清算的游戏是有意义的。但正如它声称的那样,/ bootstrapp中没有'cache'文件夹。必须手动创建它。现在一切都好起来了
答案 12 :(得分:0)
bootstrap/cache
目录存在
mkdir -p bootstrap/cache/
php artisan config:cache