问题
今天遇到了一个很奇怪的bug,只有同事的手机登录系统一直失败,其他人的都正常。
发现原因
在确认代码逻辑没问题后,发现是yii2写入缓存失败的问题。
我们yii2的缓存组件是使用文件组件,进入缓存所在的文件夹,发现有少数几个文件夹拥有者是root,而不是运行php-fpm的apache,而这几个文件夹的权限为775,所以apache没有写入的权限。
解决问题
使用chmod赋值777权限后,写入正常。
那么是什么导致这几个root文件的生成的呢?因为我们用了定时任务执行commonds,但是指定的用户是root,所以才出现了这个问题。把crontab里的用户指定改成apache,这问题就解决了。
防范于未然
如果是有人登陆并手动执行了commonds的话,也可能会生成apache操作不了的文件,所以让运维把所有登陆用户和apache放在一个组里,这个问题就完全解决了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。