注意到这个问题其实是最近在使用程序生成缓存的时候发现有时候生成成功,有时候生成不成功?
检查程序是没有问题的,最后查出是因为有脚本在以root用户来跑PHP脚本,而 apache的用户是www。
原因是因为:
当缓存不存在的时候,如果当脚本在跑,那么生成缓存的权限就是root的权限,而又因为root的 umask原因
创建文件的时候会会减掉权限0022,也就是说即使用你使用mkdir函数并给了权限为0777
那么root用户生成的文件也是 755
那么当apache跑的时候是没有写的权限的,从而导至了更新失败
具体的请查看php函数mkdir的mode的说明
http://php.net/mkdir