file_put_contents(... / bootstrap / cache / services.json):无法打开流:没有这样的文件或目录

时间:2017-02-16 22:51:54

标签: php laravel laravel-5

运行任何php artisan命令时,我一直收到此错误消息。

  

[ErrorException]
    file_put_contents(/Applications/MAMP/htdocs/code/bheng/md-bheng/bootstrap/cache/services.json):无法打开流:没有成功     h文件或目录

enter image description here

如何阻止它?

4 个答案:

答案 0 :(得分:4)

编辑 - 如果services.json文件不存在,请运行php artisan serve然后停止强制创建该文件。 请参阅:laravel services.json not created

编辑 - 更新了解释每个命令的答案。

首先,忽略每个命令开头的$。这些是为了表明命令是在终端中执行的。

要查找您的用户名,如果您还不知道,请运行:

$ whoami

对我来说,这会输出rob

接下来,我们希望 ch 愤怒chown文件的拥有 ership(services.json)。我们将所有者设置为您的用户名(在我的情况下为rob),将组设置为_www,即用户MAMP运行为。

$ sudo chown rob:_www /Applications/MAMP/htdocs/code/bheng/md-bheng/bootstrap/cache/services.json

接下来,我们希望 ch 愤怒chown目录的拥有 ership(storage)。我们再次将所有者设置为您的用户名(在我的情况下为rob),将组设置为_www。您可能还会注意到-R选项。这将以递归方式执行此命令,通过storage目录中包含的所有子目录。

$ sudo chown -R rob:_www /Applications/MAMP/htdocs/code/bheng/md-bheng/storage

最后,我们要更改存储目录中各个文件和目录的权限。以下命令将find目录中的storage,所有目录(-type d)或所有文件(-type f)并执行-exec之后的命令。

$ sudo find /Applications/MAMP/htdocs/code/bheng/md-bheng/storage -type d -exec chmod 775 {} \;
$ sudo find /Applications/MAMP/htdocs/code/bheng/md-bheng/storage -type f -exec chmod 664 {} \;

我们正在执行的命令将为每个目录或文件 ch ange mod e(chmod)。 Read this to learn more about permissions。我已经链接到维基百科,因为它很简单地解释了事情。那里可能有更好的资源。

但基本上,775将授予对目录的读,写和执行权限。 664将授予对文件的读写权限。

答案 1 :(得分:1)

[ErrorException]
file_put_contents(/var/www/project/bootstrap/cache/services.php): 
failed to open stream: No such file or directory

对我来说,这是因为boostrap/cache文件夹。 我强行删除了cache,因此我遇到了这个错误。

只需创建cache文件夹,它就能正常工作。

$>cd projectDir/boostrap

$>projectDir/boostrap> mkdir缓存

会起作用

答案 2 :(得分:0)

如果文件夹引导程序/缓存确实存在或先前存在,或者您已删除/ .gitignored它:

composer install 

composer.phar install

应该解决此问题。 (您使用哪一个取决于您的作曲家设置。对我来说,它是第二个选择)

如果您是一段时间以来第一次运行composer更新,则可能会发生此错误。

答案 3 :(得分:0)

我曾经有这个问题 您要做的就是在项目的composer install命令之后,在项目的“ bootstrap”文件夹内创建一个名为“ cache”的文件夹,然后创建一个名为“ services.php”的文件。 >