共计 383 个字符,预计需要花费 1 分钟才能阅读完成。
问题
今天遇到了一个很奇怪的 bug,只有同事的手机登录系统一直失败,其他人的都正常。
发现原因
在确认代码逻辑没问题后,发现是 yii2 写入缓存失败的问题。
我们 yii2 的缓存组件是使用文件组件,进入缓存所在的文件夹,发现有少数几个文件夹拥有者是 root,而不是运行 php-fpm 的 apache,而这几个文件夹的权限为 775,所以 apache 没有写入的权限。
解决问题
使用 chmod 赋值 777 权限后,写入正常。
那么是什么导致这几个 root 文件的生成的呢?因为我们用了定时任务执行 commonds,但是指定的用户是 root,所以才出现了这个问题。把 crontab 里的用户指定改成 apache,这问题就解决了。
防范于未然
如果是有人登陆并手动执行了 commonds 的话,也可能会生成 apache 操作不了的文件,所以让运维把所有登陆用户和 apache 放在一个组里,这个问题就完全解决了。
正文完