Failed to cache access token

背景

laravel 框架馍管。
由于某些原因,我們調(diào)用 EasyWeChat 使用 Factory 直接寫(xiě)入微信的配置信息薪韩。在上線一臺(tái)新機(jī)器之后發(fā)現(xiàn) Failed to cache access token 錯(cuò)誤确沸,看源文件描述的很清楚。是因?yàn)?access token 沒(méi)有成功寫(xiě)入緩存造成的

源碼如下

      $this->getCache()->set($this->getCacheKey(), [
            $this->tokenKey => $token,
            'expires_in' => $lifetime,
        ], $lifetime - $this->safeSeconds);

        if (!$this->getCache()->has($this->getCacheKey())) {
            throw new RuntimeException('Failed to cache access token.');
        }

但是我們其實(shí)已經(jīng)在 .env 中開(kāi)啟了 CACHE_DRIVER=redis 并且 use_laravel_cache=true俘陷,所以開(kāi)始懷疑是 redis 的問(wèn)題罗捎,但是測(cè)試 redis 一切正常,沒(méi)有任何問(wèn)題拉盾。
github 上也有一些 issue桨菜,有人提到 $this->getCache() 獲取 cache 的方法的問(wèn)題,按照這個(gè)線索跟了一下捉偏。發(fā)現(xiàn)下面這段代碼

 $this->app->singleton("wechat.{$name}.{$account}", function ($laravelApp) use ($name, $account, $config, $class) {
                    $app = new $class(array_merge(config('wechat.defaults', []), $config));
                    if (config('wechat.defaults.use_laravel_cache')) {
                        $app['cache'] = $laravelApp['cache.store'];
                    }
                    $app['request'] = $laravelApp['request'];

                    return $app;
                });

當(dāng)通過(guò) Factory 傳入自定義配置倒得,而 config/wechat.php 中又沒(méi)有定義時(shí),就不會(huì)對(duì) app 賦值 cache 類
這也就導(dǎo)致 getCache() 方法夭禽,使用 EasyWeChat 內(nèi)置的緩存方案霞掺。
緩存目標(biāo)目錄為 /tmp/symfony-cache/。而我的這臺(tái)服務(wù)不知什么原因讹躯,/tmp/ 對(duì) other 用戶是沒(méi)有寫(xiě)權(quán)限的菩彬,所以就導(dǎo)致了 Failed to cache access token 的報(bào)錯(cuò)

 public function getCache()
    {
        if ($this->cache) {
            return $this->cache;
        }

        if (property_exists($this, 'app') && $this->app instanceof ServiceContainer && isset($this->app['cache'])) {
            $this->setCache($this->app['cache']);

            // Fix PHPStan error
            assert($this->cache instanceof \Psr\SimpleCache\CacheInterface);

            return $this->cache;
        }

        return $this->cache = $this->createDefaultCache();
    }

解決方案

chmod 777 /tmp && chmod o+t /tmp

由于我碰到的問(wèn)題僅是 /tmp 權(quán)限問(wèn)題,所以此方案即可潮梯。不代表適用于全部類型問(wèn)題
chmod o+t /tmpt 權(quán)限是為了防止非 root 用戶刪除該目錄

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末骗灶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子秉馏,更是在濱河造成了極大的恐慌耙旦,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沃饶,死亡現(xiàn)場(chǎng)離奇詭異母廷,居然都是意外死亡轻黑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)琴昆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)氓鄙,“玉大人,你說(shuō)我怎么就攤上這事业舍《独梗” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵舷暮,是天一觀的道長(zhǎng)态罪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)下面,這世上最難降的妖魔是什么复颈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮沥割,結(jié)果婚禮上耗啦,老公的妹妹穿的比我還像新娘。我一直安慰自己机杜,他們只是感情好帜讲,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著椒拗,像睡著了一般似将。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蚀苛,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天在验,我揣著相機(jī)與錄音,去河邊找鬼枉阵。 笑死译红,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的兴溜。 我是一名探鬼主播侦厚,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拙徽!你這毒婦竟也來(lái)了刨沦?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤膘怕,失蹤者是張志新(化名)和其女友劉穎想诅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡来破,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年篮灼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徘禁。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诅诱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出送朱,到底是詐尸還是另有隱情娘荡,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布驶沼,位于F島的核電站炮沐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏回怜。R本人自食惡果不足惜大年,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鹉戚。 院中可真熱鬧鲜戒,春花似錦、人聲如沸抹凳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赢底。三九已至,卻和暖如春柏蘑,著一層夾襖步出監(jiān)牢的瞬間幸冻,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工咳焚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洽损,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓革半,卻偏偏與公主長(zhǎng)得像碑定,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子又官,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理延刘,服務(wù)發(fā)現(xiàn),斷路器六敬,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • Laravel 學(xué)習(xí)交流 QQ 群:375462817 本文檔前言Laravel 文檔寫(xiě)的很好碘赖,只是新手看起來(lái)會(huì)有...
    Leonzai閱讀 7,972評(píng)論 2 12
  • 來(lái)自:http://blog.csdn.net/yangjl38/article/details/7583374 ...
    dinel閱讀 1,378評(píng)論 0 0
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 1,830評(píng)論 0 3
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí)普泡,離放學(xué)已經(jīng)沒(méi)多少時(shí)間了播掷。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,528評(píng)論 16 22