storage/meta/services.json 中的 Laravel 权限被拒绝
Posted
技术标签:
【中文标题】storage/meta/services.json 中的 Laravel 权限被拒绝【英文标题】:Laravel permission denied in storage/meta/services.json 【发布时间】:2014-06-27 13:45:37 【问题描述】:嗯,这个错误是众所周知的,但就我而言,我无法减轻它的影响。我已将 laravel-4 安装迁移到另一台服务器,第一次访问时出现此错误:
file_put_contents(/var/www/html/MyApp/app/storage/meta/services.json):无法打开流:权限被拒绝
我关注了以下不同的谷歌搜索结果
https://***.com/a/17971549/1424329 Can't make Laravel 4 to work on localhost http://laravel.io/forum/05-08-2014-failed-to-open-stream-permission-denied Laravel 4: Failed to open stream: Permission denied但是,其中任何一个都无法解决我的问题。我还尝试清理缓存并转储 autoclass 命令:
php artisan cache:clear
chmod -R 777 app/storage
composer dump-autoload
另外,我认为问题可能是网络服务器进程,所以我这样寻找它的用户:
$ ps -ef|grep httpd
apache 11978 11976 0 11:14 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
然后,我将apache
添加到目录组所有者,问题仍然存在。
我不知道还能做什么,我要疯了,因为在满月下裸舞并不能解决问题。
【问题讨论】:
这听起来很烦人。您是否也尝试过php artisan dump-autoload
,而不仅仅是composer dump-autoload
?
在我绝望的时刻,我更改了本机操作系统配置文件,此时系统无法启动..(我从手机发布)
哦,该死的......祝你好运。 ://
@JoelHinz,自从我关注this bad idea 后我回来了。回滚并继续这个 laravel 问题。
【参考方案1】:
有时会发生在我身上,但我只是将其删除,然后 Laravel 会重新创建它。据我所知,这只是服务的缓存列表,可以安全删除。
【讨论】:
让我试试这个,它有感觉。【参考方案2】:我已经找到了这个问题的原因。看起来selinux
不允许在我的应用程序文件夹中写入 httpd 服务(apache Web 服务器)。所以,我做到了:
setsebool -P httpd_unified 1
现在一切正常!
【讨论】:
耶!很高兴你发现了问题! :) 该喝啤酒了 @Moak,我不是 Linux 专家。就我而言,我的环境是一个 Fedora 20 linux 发行版,它带有一个名为“selinux”的安全应用程序/恶魔。所以,上面的命令是这样说的:“请 selinux,让 apache 网络服务器在我的应用程序文件夹中写入内容”以上是关于storage/meta/services.json 中的 Laravel 权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章