今天遇到了一個很奇怪的bug,只有同事的手機登陸系統一直失敗,其餘人的都正常。php
在確認代碼邏輯沒問題後,發現是yii2寫入緩存失敗的問題。
咱們yii2的緩存組件是使用文件組件,進入緩存所在的文件夾,發現有少數幾個文件夾擁有者是root,而不是運行php-fpm的apache,而這幾個文件夾的權限爲775,因此apache沒有寫入的權限。apache
使用chmod賦值777權限後,寫入正常。
那麼是什麼致使這幾個root文件的生成的呢?由於咱們用了定時任務執行commonds,可是指定的用戶是root,因此纔出現了這個問題。把crontab裏的用戶指定改爲apache,這問題就解決了。緩存
若是是有人登錄並手動執行了commonds的話,也可能會生成apache操做不了的文件,因此讓運維把全部登錄用戶和apache放在一個組裏,這個問題就徹底解決了。yii2