TP6 接入 EasyWeChat 缓存报错

环境

PHP7.2 \ Apache \ CentOS \


报错信息
file_exists(): open_basedir restriction in effect. File(/tmp/symfony-cache/easywechat) is not within the allowed path(s): (/var/www/html)

问题文件

\vendor\symfony\cache\Traits\FilesystemCommonTrait.php

问题代码
图片.png

分析

根据EasyWeChat 官方文档提示,缓存使用的是 symfony/cache,跟踪代码后发现 底层使用 sys_get_temp_dir函数,由于我们项目是分布式部署的,而且现在报错信息提示没有写入权限,故需要改变缓存驱动来解决这个问题。

根据EasyWeChat 官方文档提示,可以使用redis作为驱动, 也可以自定义缓存类前提是必须遵循PSR-16规范。

TP官方自带缓存类,而且符合该规范,并且我们项目使用的是Redis作为存储引擎,部署上没有问题。所以直接替换 EasyWeChat 的缓存驱动为 tp-cache,问题解决。

EasyWeChat 缓存部分
TP6 缓存文档部分
程序修改部分

EasyWeChat 缓存文档地址:
https://www.easywechat.com/docs/4.1/customize/cache

ThinkPHP6 缓存文档地址:
https://www.kancloud.cn/manual/thinkphp6_0/1037634

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。