centos Laravel 8 storage/framework/cache/data/ee文件夹将用户设置为root:root而不是apache:apache权限被拒绝

3qpi33ja  于 2022-11-07  发布在  Apache
关注(0)|答案(2)|浏览(209)

我有一个Laravel 8应用程序,运行在Cent OS 8.4 VM上。我正在使用Tymondesigns的jwt-auth包在我的项目上实现身份验证,它被用作API。
当我在服务器上设置项目并部署它时,Laravel中的storage文件夹作为deployer项目的一部分被移动到shared目录中,由于某种原因,尽管设置了storage文件夹的权限,但我发现并不是每个文件夹(尤其是ee缓存文件夹)都有错误的权限,并且JWTauth包抛出了一个权限被拒绝的错误:
文件放置内容(/var/www/项目信标API/版本/37/存储/框架/缓存/数据/ee/67/ee 673 b1 cd 21 b 0 cd 9 eca 15 c240 d 66269 df 17 f9 b3 a):无法打开流:没有这样的文件或目录
我不明白为什么我会得到这个错误,只要我已经与Laravel,设置storage文件夹的权限为755/775从来没有工作,并试图打开网站总是抛出一个权限被拒绝.
我在权限配置中遗漏了什么,我需要运行什么才能一劳永逸地解决这个问题?

它似乎总是ee文件夹!

yws3nbqq

yws3nbqq1#

运行此命令之前,请转到项目中的.env文件,您将发现

CACHE_DRIVER = file

然后该高速缓存驱动程序更改为

CACHE_DRIVER = array

在Laravel中使用缓存时,您应该考虑3个可能的“系列”:
临时/调试
数组
始终可用
文件数据库APC(从PHP7开始我就不信任这个)
专属
雷迪斯
内存缓存
由于您可以轻松地替换该高速缓存驱动程序,因此无需根据您的使用情形选择一个,而是更多地根据您的服务器需求/负载和可能性来选择。
例如在你的开发机器上,我建议使用一个文件,因为这样你就不需要任何额外的软件来阻塞你的PC,而且你可以快速地清除该高速缓存,即使你做了一些非常糟糕的事情,比如破坏了Artisan命令。你所需要做的就是删除storage/framework文件夹,然后你又有了一个新的示例(确保在那之后从你的仓库重新生成.gitignore文件)。
对于你的主服务器,你必须考虑你的可能性。如果你有一个免费的托管网站,你几乎肯定不能安装任何新的软件,所以你可以考虑使用文件或数据库。即使数据库可能会比文件快,在大多数情况下,它是你的网站最薄弱的一点,并试图推动更多的数据到瓶颈是不是一个好主意。这就是为什么我建议不要使用它,而是坚持使用文件。
如果你有一个专用服务器,那么你绝对应该选择Memcached或Redis。这两个中的哪一个?这取决于很多因素,你可以在网上找到很多比较,只要找一个。我个人更喜欢Redis,因为它能够持久化数据,但无论哪一个都是一个很好的解决方案

5kgi1eie

5kgi1eie2#

您需要拥有整个项目的所有权(user:group)[使用ls -la查看项目根文件夹中的所有权]
如果不正确,请使用chown:sudo chown -R yourUserName:www-data /path/to/project
如果所有权没有问题,只需按如下方式设置存储文件夹的权限:sudo chmod -R 775 storage/这样您就可以拥有写入

相关问题