overtrue/wechat 报错 Failed to cache access token 原因

时间:2022-01-22 00:57:55

Laravel 中安装 overtrue/wechat 后运行报错 Failed to cache access token ,原因如下:

在 overtrue/wechat SDK 中的所有缓存默认使用文件缓存,缓存路径取决于 PHP 的临时目录,默认情况下存储在 ​​/tmp/symfony-cache​​ 目录下, 报这个错误的原因一般是缓存目录没有写权限导致的,需要给缓存目录赋予进程执行用户的写权限,如php以www用户执行, 赋予写权限

sudo chown www:www  /tmp/symfony-cache

sudo chmod 644 -R /tmp/symfony-cache

更换缓存驱动

还有一种方法就是修改缓存驱动,如将缓存驱动替换为 redis

use EasyWeChat\Factory;
use Symfony\Component\Cache\Adapter\RedisAdapter;


$app = Factory::officialAccount($config);

// 自定义缓存实例
$cache = new RedisAdapter(app('redis')->connection('cache')->client());

$app->rebind('cache', $cache);