Laravel 5.2 - bootstrap/cache/services.php 文件丢失

17

在运行composer update/install之后,当我运行php artisan cache:clear时,出现了以下错误:

[ErrorException] file_put_contents({application-root-path}/bootstrap/cache/services.php): failed to open stream: No such file or directory

是否有任何命令可以重新缓存该文件?目前无论我运行什么php artisan函数都会遇到相同的错误。

p/s:如果您需要我提供任何进一步的信息进行调试,请在下面发表评论。


php artisan 命令可以在 CLI 中运行您的应用程序。当应用程序在 CLI 中运行时,我们无法使用某些服务器变量和其他许多内容。这就导致了错误的发生。请检查您的代码,并查看在应用程序中何处使用了 file_put_contents() 函数。 - sunny kashyap
5个回答

32

确保运行此命令:

sudo chmod 777 -R bootstrap/cache

2
好的,谢谢!如果目录不存在,请通过执行 mkdir bootstrap/cache 命令来创建它。 - Zachary Dahan
7
不要在那个文件夹上设置777权限,相反,设置正确的用户组并只允许该组写入权限。请参考这个答案:https://dev59.com/JF0a5IYBdhLWcg3wLV8G#37266353。 - Daan
5.4的有效响应。我最近从5.3升级后遇到了这个问题。 - jhmilan
1
sudo chmod -R 777 bootstrap/cache - Bishwarup Das

16

只需输入:

cd bootstrap/
mkdir cache
cd .. 
composer install

为了安全起见,官方建议不要将Composer作为root或sudo帐户运行。在此提供了详细的理由:https://getcomposer.org/root - aaronfarr

10

运行此命令

php artisan optimize --force

它会创建 services.phpcompiled.php


从 Laravel 5.5 开始,不再需要使用 PHP artisan optimize。 - Mohamed Naser

0
我是这样解决这个问题的: 如果有缓存目录,删除它并重新创建。

0

简单地进入 bootstrap 文件夹并创建一个名为 cache 的新文件夹 :)

右键点击缓存文件夹并勾选

文件夹已准备好归档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接