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

kyo*_*kyo 5 php laravel laravel-5

运行任何php artisan命令时,我不断收到此错误。

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

在此处输入图片说明

我该如何阻止?

fub*_*bar 4

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

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

首先,忽略$每个命令开头的 。这些指示命令是在终端中执行的。

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

$ whoami
Run Code Online (Sandbox Code Playgroud)

对我来说,这会输出rob.

接下来我们要更改文件所有权( chown) services.json。我们将所有者设置为您的用户名(在我的例子中rob),将组设置为_www,这是 MAMP 运行时的用户。

$ sudo chown rob:_www /Applications/MAMP/htdocs/code/bheng/md-bheng/bootstrap/cache/services.json
Run Code Online (Sandbox Code Playgroud)

接下来我们要更改目录的所有权( ) 。我们再次将所有者设置为您的用户名(在我的例子中),将组设置为。您可能还会注意到该选项。这将通过目录中包含的所有子目录递归执行此命令。chownstoragerob_www-Rstorage

$ sudo chown -R rob:_www /Applications/MAMP/htdocs/code/bheng/md-bheng/storage
Run Code Online (Sandbox Code Playgroud)

最后,我们要更改存储目录中各个文件和目录的权限。以下命令将findstorage目录、所有目录(-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 {} \;
Run Code Online (Sandbox Code Playgroud)

我们正在执行的命令将更改每个目录或文件的模式() 。阅读本文以了解有关权限的更多信息。我链接到维基百科,因为它的解释非常简单。那里可能有更好的资源。chmod

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