从 Laravel 我无法打开流:权限被拒绝

Posted

技术标签:

【中文标题】从 Laravel 我无法打开流:权限被拒绝【英文标题】:From Laravel I got failed to open stream: Permission denied 【发布时间】:2019-08-22 05:57:51 【问题描述】:

我使用 Laravel 5.4 并在 Web 服务器上收到如下错误

php 致命错误:未捕获的 ErrorException:file_put_contents(/github/myweb/monitor/storage/framework/views/b38c71581503e85762ce2fe49a8bis726b1164d9.php):无法打开流:权限被拒绝 n /github/myweb/monitor/vendor/laravel/framework /src/Illuminate/Filesystem/Filesystem.php:122\n堆栈跟踪:\n#0 [内部函数]:

当我在本地测试时,一切都很好,但是在将代码推送到服务器后,我收到了路径 '/github/myweb/' 的错误。我想要这样的路径

/var/www/master/monitor

如何从路径中删除前缀'/github/myweb/' 我不知道它来自哪里

怎么了?

【问题讨论】:

这意味着您需要755权限才能存储目录(递归) 【参考方案1】:

首先清除你的缓存,

php artisan config:clear
php artisan config:cache

然后运行sudo chmod -R 755 storage/

或者你可以删除你的 bootstrap/cache/config.php

【讨论】:

不,不要给777任何文件夹的权限 这对我有用,在开发环境中,所以。 Dazzle,不给777权限怎么解决这个问题? 您还必须授予生产许可 update,..如何在不给777权限的情况下解决这个问题? 您可以在生产中将 755 添加到存储中。【参考方案2】:

如果您 cd 进入您的应用程序,您可能会看到某些文件夹具有“www-data”用户或组。

如果您使用 Laravel Forge,要解决此问题,您需要将用户和组更改为“forge”。

您可以使用 -R 标志递归地执行此操作,而不是 cd'ing 进入每个目录并在每个文件和文件夹上运行它。

sudo chown -R forge:forge storage

现在你可以重新开始进步了!

【讨论】:

【参考方案3】:

我不确定我所做的是否正确,但我更改了缓存文件夹的所有者和组以匹配应用程序的其余部分

/var/www/html/snipeit/storage/framework# chown -R snipeitapp:www-data cache/

【讨论】:

以上是关于从 Laravel 我无法打开流:权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

AWS 中的 Laravel - 无法打开流:权限被拒绝

“无法打开流或文件“laravel.log”:无法打开流:权限被拒绝”

Laravel:无法打开流权限被拒绝[关闭]

我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]

Laravel 4:无法打开流:权限被拒绝

laravel - 无法以附加模式打开流或文件“/storage/logs/laravel.log”:无法打开流:权限被拒绝