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);