我有一个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
文件夹!
2条答案
按热度按时间yws3nbqq1#
运行此命令之前,请转到项目中的.env文件,您将发现
然后该高速缓存驱动程序更改为
在Laravel中使用缓存时,您应该考虑3个可能的“系列”:
临时/调试
数组
始终可用
文件数据库APC(从PHP7开始我就不信任这个)
专属
雷迪斯
内存缓存
由于您可以轻松地替换该高速缓存驱动程序,因此无需根据您的使用情形选择一个,而是更多地根据您的服务器需求/负载和可能性来选择。
例如在你的开发机器上,我建议使用一个文件,因为这样你就不需要任何额外的软件来阻塞你的PC,而且你可以快速地清除该高速缓存,即使你做了一些非常糟糕的事情,比如破坏了Artisan命令。你所需要做的就是删除storage/framework文件夹,然后你又有了一个新的示例(确保在那之后从你的仓库重新生成.gitignore文件)。
对于你的主服务器,你必须考虑你的可能性。如果你有一个免费的托管网站,你几乎肯定不能安装任何新的软件,所以你可以考虑使用文件或数据库。即使数据库可能会比文件快,在大多数情况下,它是你的网站最薄弱的一点,并试图推动更多的数据到瓶颈是不是一个好主意。这就是为什么我建议不要使用它,而是坚持使用文件。
如果你有一个专用服务器,那么你绝对应该选择Memcached或Redis。这两个中的哪一个?这取决于很多因素,你可以在网上找到很多比较,只要找一个。我个人更喜欢Redis,因为它能够持久化数据,但无论哪一个都是一个很好的解决方案
5kgi1eie2#
您需要拥有整个项目的所有权(user:group)[使用
ls -la
查看项目根文件夹中的所有权]如果不正确,请使用chown:
sudo chown -R yourUserName:www-data /path/to/project
个如果所有权没有问题,只需按如下方式设置存储文件夹的权限:
sudo chmod -R 775 storage/
这样您就可以拥有写入