问题今天遇到一个很奇葩的bug。只有我同事的手机登录系统一直出现故障,其他人都正常。找到原因确认代码逻辑没问题后,发现是yii2写入缓存失败。我们的yii2缓存组件使用的是文件组件,进入缓存所在的文件夹,发现有几个文件夹所有者是root,不是运行php-fpm的Apache,而且这些文件夹的权限都是775,所以Apache没有权限来写。解决问题后,使用chmod分配777权限,写入正常。那么是什么原因导致了这些根文件的产生呢?出现这个问题是因为我们使用定时任务执行commonds,但是指定的用户是root。把crontab中的指定用户改成apache,这个问题就解决了。以防万一,如果有人登录手动执行commons,也可能会产生apache无法操作的文件,所以让运维把所有登录用户和apache放在一个组里,这个问题就彻底解决了。
