第一种情况,你可能使用的是 overtrue/wechat 4.1.16 版本,因为作者的大意引发的BUG,作者紧接着在4.1.17就修复了,更新新版就可以了。
第二种情况就是我遇到的坑。。折腾了我一晚上,写出来纪念一下。。
问题的源起是我修改了php-fpm的运行用户,处理完一些常见的目录权限之后,报了Failed to cache access token 这个错误,于是我去 overtrue/wechat/src/Kernel/AccessToken.php:141 看了下源码,发现是因为token缓存文件没写成功。
然后在文档( 缓存 )中找到了缓存方式。
overtrue/wechat 默认使用的是 symfony/cache 来进行缓存操作,ubuntu中,symfony/cache会在/tmp目录下建立symfony_cache来储存临时缓存。
ps:如果不是/tmp目录,可以使用 sys_get_temp_dir() 方法获取你的临时文件目录。
因为之前使用www-data用户运行的项目,所以symfony_cache目录已被www-data创建,且其他用户不可写,直接删掉这个目录或者修改权限就可以了!
有话要说