主页
关于
Stay before every beautiful thoughts
在每一个美好的思想前停留
文章
>
踩坑记录
>
正文
TP6 接入 EasyWeChat 缓存报错
ThinkPHP
EasyWeChat
Created at 2021-07-16 23:23
##### 环境 > 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 ##### 问题代码  ----- ##### 分析 根据EasyWeChat 官方文档提示,缓存使用的是 [symfony/cache](https://github.com/symfony/cache),跟踪代码后发现 底层使用 sys_get_temp_dir函数,由于我们项目是分布式部署的,而且现在报错信息提示没有写入权限,故需要改变缓存驱动来解决这个问题。 根据EasyWeChat 官方文档提示,可以使用redis作为驱动, 也可以自定义缓存类前提是必须遵循PSR-16规范。 TP官方自带缓存类,而且符合该规范,并且我们项目使用的是Redis作为存储引擎,部署上没有问题。所以直接替换 EasyWeChat 的缓存驱动为 tp-cache,问题解决。    EasyWeChat 缓存文档地址: https://www.easywechat.com/docs/4.1/customize/cache ThinkPHP6 缓存文档地址: https://www.kancloud.cn/manual/thinkphp6_0/1037634