从 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 我无法打开流:权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
“无法打开流或文件“laravel.log”:无法打开流:权限被拒绝”
我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]
laravel - 无法以附加模式打开流或文件“/storage/logs/laravel.log”:无法打开流:权限被拒绝