【发布时间】:2017-07-06 06:55:20
【问题描述】:
在运行任何php artisan 命令时,我一直收到此错误。
[错误异常]
file_put_contents(/Applications/MAMP/htdocs/code/bheng/md-bheng/bootstrap/cache/services.json):无法打开流:没有成功
h 文件或目录
我该如何阻止它?
【问题讨论】:
在运行任何php artisan 命令时,我一直收到此错误。
[错误异常]
file_put_contents(/Applications/MAMP/htdocs/code/bheng/md-bheng/bootstrap/cache/services.json):无法打开流:没有成功
h 文件或目录
我该如何阻止它?
【问题讨论】:
编辑 - 如果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
最后,我们要更改存储目录中单个文件和目录的权限。以下命令将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调整 mode (chmod)。 Read this to learn more about permissions。我已经链接到维基百科,因为它很简单地解释了事情。那里可能有更好的资源。
然而,基本上,775 将授予对目录的读、写和执行权限。 664 将授予文件的读写权限。
【讨论】:
[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 缓存
会工作
【讨论】:
如果文件夹 bootstrap/cache 确实存在或以前存在,或者您已删除 / .gitignored 它:
composer install
或
composer.phar install
应该解决这个问题。 (你使用哪一个取决于你的作曲家设置。对我来说是第二个选项)
如果您一段时间内第一次运行 composer update 可能会发生此错误。
【讨论】:
我曾经遇到过这个问题 您要做的就是在项目的“bootstrap”文件夹中创建一个名为“cache”的文件夹,然后在输入命令composer install后创建一个名为“services.php”的文件,一切都应该正常工作。
【讨论】: