【问题标题】:file_put_contents(.../bootstrap/cache/services.json): failed to open stream: No such file or directoryfile_put_contents(.../bootstrap/cache/services.json):无法打开流:没有这样的文件或目录
【发布时间】:2017-07-06 06:55:20
【问题描述】:

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

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

我该如何阻止它?

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

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

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

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

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

    $ whoami
    

    对我来说,这将输出rob

    接下来我们要ch确定services.json 文件的拥有ership (chown)。我们将所有者设置为您的用户名(在我的情况下为 rob),将组设置为 _www,这是 MAMP 运行的用户。

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

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

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

    最后,我们要更改存储目录中单个文件和目录的权限。以下命令将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 {} \;
    

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

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

    【讨论】:

    • 你能解释一下每一行的作用吗?
    • 为什么是 775 或 664 ?你怎么知道的?
    • @ihue 我已经更新了我的回复,并根据要求对每一行进行了解释。
    【解决方案2】:
    [ErrorException]
    file_put_contents(/var/www/project/bootstrap/cache/services.php): 
    failed to open stream: No such file or directory
    

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

    只需重新创建cache 文件夹即可。

    $>cd projectDir/bootstrap

    $>projectDir/bootstrap> mkdir 缓存

    会工作

    【讨论】:

      【解决方案3】:

      如果文件夹 bootstrap/cache 确实存在或以前存在,或者您已删除 / .gitignored 它:

      composer install 
      

      composer.phar install
      

      应该解决这个问题。 (你使用哪一个取决于你的作曲家设置。对我来说是第二个选项)

      如果您一段时间内第一次运行 composer update 可能会发生此错误。

      【讨论】:

        【解决方案4】:

        我曾经遇到过这个问题 您要做的就是在项目的“bootstrap”文件夹中创建一个名为“cache”的文件夹,然后在输入命令composer install后创建一个名为“services.php”的文件,一切都应该正常工作。

        【讨论】:

          猜你喜欢
          • 2014-09-05
          • 2015-11-14
          • 2013-01-24
          • 2018-12-01
          • 2018-04-08
          • 2018-09-20
          • 2019-06-03
          • 2018-10-03
          • 2017-05-04
          相关资源
          最近更新 更多