Laravel 中安裝 overtrue/wechat 后運(yùn)行報(bào)錯(cuò) Failed to cache access token ,原因如下:
在 overtrue/wechat SDK 中的所有緩存默認(rèn)使用文件緩存,緩存路徑取決于 PHP 的臨時(shí)目錄,默認(rèn)情況下存儲(chǔ)在 /tmp/symfony-cache
目錄下, 報(bào)這個(gè)錯(cuò)誤的原因一般是緩存目錄沒有寫權(quán)限導(dǎo)致的,需要給緩存目錄賦予進(jìn)程執(zhí)行用戶的寫權(quán)限,如php以www用戶執(zhí)行, 賦予寫權(quán)限
sudo chown www:www /tmp/symfony-cache
sudo chmod 644 -R /tmp/symfony-cache
更換緩存驅(qū)動(dòng)
還有一種方法就是修改緩存驅(qū)動(dòng),如將緩存驅(qū)動(dòng)替換為 redis
use EasyWeChat\Factory;
use Symfony\Component\Cache\Adapter\RedisAdapter;
$app = Factory::officialAccount($config);
// 自定義緩存實(shí)例
$cache = new RedisAdapter(app('redis')->connection('cache')->client());
$app->rebind('cache', $cache);