Laravel更新后抛出'The bootstrap/cache directory must be present and writable'错误



我使用了'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 777 bootstrap/cache/

解决此错误的最佳方法是:

  1. 打开您的项目文件夹
  2. 移至bootstrap目录
  3. 创建一个名为cache
  4. 的空文件夹
  5. 然后做PHP artisan cache:clear

这将肯定有效

简短版本:如果使用 aws aws eb cli ex eb cli 验证如果 bootstrap/cache 文件夹(不谈论其内容(正在上传。部署。


我答案背后的一些背景

我正在使用Amazon Web Services的Elastic Beanstalk主持我的Laravel项目。当我刚开始使用Laravel时,我对其功能没有太多了解。两天后,我的新部署都通过OP的错误消息在中途崩溃。

那天早些时候,我意识到我没有使用

 php artisan config:cache

以缓存配置使事情更快。我在 composer.json 's" post-install-cmd "one_answers" tost-cmd-cmd "条款中添加了相同的内容。
我还在.ebignore 文件中添加了语句,以不上传/bootstrap/cache 的内容(因为其内容取决于环境 a.k.a 的本地主机配置在我的生产服务器上没有意义(

facePalm 我没有意识到这将阻止 bootstrap/cache 文件夹上传(就像git一样,eb cli忽略了空文件夹(。
所以,当我晚上开始部署时,部署本来是要崩溃的。

因此,现在我刚刚放置了空地持有人(Say( .gitkeek 文件 bootstrap/cache 。部署再次工作:)
(尽管问题是如此简单我,我在Bootstrap中手动创建了CACHE文件夹。

在运行了作曲家更新后,也可以尝试一下:

php artisan config:clear

在非高架模式下使用Windows 10上的CMDER(非ADMIN(。命令PHP手工艺缓存:Clear对我不起作用。文件夹引导/缓存不存在。我创建了该文件夹,并从Bootstrap和Bootstrap/Cache文件夹中删除了ReadOnly。作曲家安装和作曲家更新现在正在工作。

sudo chmod -R ug+rwx storage bootstrap/cache

希望这将解决问题。

它适合我在项目文件夹中运行

 sudo chmod -R 777 bootstrap/cache

比运行

 composer update

比运行

 cache:clear
  • 首先确保bootstrap/cache DIR如果不创建新的DIR mkdir -p bootstrap/cache/
  • 然后运行php artisan config:cache

简单。有一些应用程序可以阻止目录。例如Google Drive同步器,一个驱动程序同步器或使用Windows Explorer的任何其他应用程序。

删除缓存文件夹。再次创建。

尝试在项目root目录中执行以下命令

composer update

然后做

composer dumpautoload

这将避免与缓存文件混乱的必要性这可能会导致全新的问题

我不想像我以前对此做错了什么,而与那个现金的游戏没有任何游戏。但是正如它声称的那样,内部/bootstrapp中没有"缓存"文件夹。必须手动创建它。现在,一切都可以再次摇滚

我必须创建这五个文件夹才能再次运行工匠。

mkdir bootstrap/cache
mkdir storage/framework
mkdir storage/framework/cache
mkdir storage/framework/views
mkdir storage/framework/sessions

在这个相关问题中找到答案:"请提供有效的缓存路径"。Laravel中的错误

在我的情况下,我发现我的项目中的bootstrap/cache在新鲜的克隆期间缺少。

重新添加缓存目录手动解决了我的问题。

然后运行composer install现在工作正常。

OS:linux ubuntu

如果您使用的是Docker,也可以尝试以下操作:

services:
php:
    restart: always
    container_name: app-php
    user: 'www-data:www-data'
volumes:
    - ./:/var/www/html # synchronous

和开放端子

sudo chown -R $USER:$USER <your_project>

现在尝试以下尝试:

docker exec -it <your_container_name> /bin/bash
chown -R www-data:www-data bootstrap/
chown -R www-data:www-data storage/
ls -l # You are see folders/files USER/GROUP
php artisan cache:clear # success
php artisan route:clear # success
composer dump-autoload # success

如果Web服务器(例如 Apache nginx (被用作前端解决方案是使Web服务器组拥有的目录bootstrap/cache。对于 nginx

 $ sudo chgrp -R nginx bootstrap/cache

相关内容

  • 没有找到相关文章

最新更新