Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔投掷';引导/缓存目录必须存在且可写';更新后出错_Php_Laravel_Laravel 5_Composer Php - Fatal编程技术网

Php 拉威尔投掷';引导/缓存目录必须存在且可写';更新后出错

Php 拉威尔投掷';引导/缓存目录必须存在且可写';更新后出错,php,laravel,laravel-5,composer-php,Php,Laravel,Laravel 5,Composer Php,我使用了“composer update”,它更新了一些软件包。在更新过程中,网站仍在运行。但是,在它说“已删除已编译的服务文件”后,网站不会加载,而是说: Exception in ProviderRepository.php line 190: The bootstrap/cache directory must be present and writable. 最奇怪的是,当我再次运行“composer update”时,网站再次开始工作,直到已编译的服务文件被删除,此时它再次抛出相同的

我使用了“composer update”,它更新了一些软件包。在更新过程中,网站仍在运行。但是,在它说“已删除已编译的服务文件”后,网站不会加载,而是说:

Exception in ProviderRepository.php line 190:
The bootstrap/cache directory must be present and writable.
最奇怪的是,当我再次运行“composer update”时,网站再次开始工作,直到已编译的服务文件被删除,此时它再次抛出相同的错误。我已经尝试了在出现此错误时应该执行的常规操作(chown-R将所有内容发送给正确的用户/组,chmod分别发送所有文件和文件夹664和775)


我不知道该怎么办,因为错误似乎不“正确”…

在您的Laravel目录文件上,运行:

sudo chmod -R 777 bootstrap/cache/

运行composer更新后,请尝试以下操作:

php artisan cache:clear
php artisan config:clear
Short version:如果使用类似于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的内容(因为它的内容依赖于环境a.k.a我的本地主机配置在我的生产服务器上没有意义)

facepalm我没有意识到这会阻止引导/缓存文件夹被上传(就像git一样,eb cli会忽略空文件夹)。
因此,当我开始在夜间部署时,部署注定要崩溃。

所以,现在我刚刚在bootstrap/cache中放置了空占位符(比如).gitcept文件。部署又开始工作:)
(虽然问题很简单,但我在ssh和挖掘EBS EC2实例后意识到了原因~.~)

如果将web服务器(例如ApacheNginx)用作前端,则解决方案是使目录
bootstrap/cache
归web服务器组所有。对于Nginx

 $ sudo chgrp -R nginx bootstrap/cache

在windows 10上以非提升模式(非管理员)使用cmder进行Im。 命令php artisan缓存:清除对我不起作用。 文件夹引导/缓存不存在。 我创建了该文件夹,并从引导文件夹和引导/缓存文件夹中删除了readonly。
composer安装和composer更新现在都可以工作。

它可以在项目文件夹中运行

 sudo chmod -R 777 bootstrap/cache
比跑

 composer update
 cache:clear
比跑

 composer update
 cache:clear

希望这能解决问题

解决此错误的最佳方法是: 1.打开项目文件夹 2.移动到引导目录 3.创建名为“缓存”的空文件夹 4.然后执行php artisan缓存:清除
这将确实有效

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

composer update
那就做吧

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

在运行composer更新后也可以尝试以下方法:

php artisan cache:clear
php artisan config:clear

我想象不出我以前在这件事上做错了什么,没有一场关于现金结算的游戏是有意义的。但正如它声称的那样,在/bootstrap中没有“缓存”文件夹。必须手动创建它。现在一切又恢复正常了

对于我来说,我在引导程序中手动创建了缓存文件夹。

  • 首先确保
    引导/cache
    目录存在(如果不创建新目录)
    mkdir-p引导/cache/
  • 然后运行
    php-artisan-config:cache

我忘了说“composer update”也将laravel框架从5.4.18更新到了5.4.21。在我的例子中,
mkdir-p bootstrap/cache/&&sudo chown-R user bootstrap/cache/
我很确定777'在web服务器上的任何文件夹都不是一个安全方面的好主意。此外,775应该而且已经起作用了。对不起,我不清楚。775在过去工作过。目前我仍然有同样的问题,正如我在原始帖子中所说的,我已经尝试了775'ing和664'ing。问题就在于:我修复了错误所说的应该修复的问题,但我仍然遇到了相同的问题。必须是
sudo chmod-R 777 bootstrap
,然后才能正常运行。Waaa可能太晚了,但这是一个简单的解决方案。我忘了告诉你,但是谢谢你!这里有一个警告是恰当的。在生产环境中运行此操作之前,请停止并问问自己是否真的要清除缓存。否则,你可能会像我一样破坏你的应用程序。不工作?我没有一个缓存文件夹在引导文件夹里你实际上救了我的命!此外,如果此解决方案无法立即运行,请检查是否运行了类似于OPCache的程序,您可能需要重新启动PHP-FPM/清除OPCache缓存。:)这不是bootstrap/cashe,而是bootstrap/cache。如果你能告诉我你为什么对我的答案投了反对票,那将是非常感谢的。因为正如我所看到的,它解决了一个特定的问题。