好吧,这个错误是众所周知的,但就我而言,我无法在我这边减轻它。我已将 laravel-4 安装迁移到另一台服务器,第一次访问时出现此错误:
file_put_contents(/var/www/html/MyApp/app/storage/meta/services.json): failed to open stream: Permission denied
我按照以下不同的谷歌搜索结果
- https://stackoverflow.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
但是,他们中的任何一个都无法解决我的问题。我还尝试清理缓存和转储自动类命令:
php artisan cache:clear
chmod -R 777 app/storage
composer dump-autoload
另外,我认为可能是webserver进程的问题,所以我这样寻找它的用户:
$ ps -ef|grep httpd
apache 11978 11976 0 11:14 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
然后,我将 apache
添加到目录组所有者,但问题仍然存在。
我不知道还能做什么,我快疯了,因为在满月下裸体跳舞都不能解决问题。
最佳答案
我已经找到了这个问题的原因。看起来 selinux
不允许 httpd 服务(apache 网络服务器)写入我的应用程序文件夹。所以,我做了:
setsebool -P httpd_unified 1
现在一切正常!
关于php - Laravel 权限在 storage/meta/services.json 中被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23571045/