环境 : CentOS + nginx + php(fast-cgi) + mysql
现象 : 程序的功能是 导出系统中的数据为 Word 格式的文件 , 但是发现 每次导出的文件大小 都不一致 , 怀疑是程序问题 , 然后开始翻程序 没有什么不妥的地方 , 遂又 吧 word 的 header 部分去掉. 正常了 , 但是加上去之后 又变成了 大小不一致的 "不稳定" 的假象 , 百思不得其解 .
发现 : 既然 header 加上之前 没有问题 加上后出了问题 那么 这中间一定发生了什么... 遂查看 nginx 的 error_log 发现如下一段
2010/09/06 19:30:36 [crit] 2852#0: *1705429 open() "/usr/local/nginx/fastcgi_temp/3/25/0000000253" failed (13: Permission denied) while reading upstream,
client: 192.168.1.106, server: www.test.com, request: "POST /admin/ExportWord.php HTTP/1.1",
upstream: "fastcgi://127.0.0.1:9000", host: www.test.com,
referrer: "http://www.test.com/admin/ExportWord.php"
"/usr/local/nginx/fastcgi_temp/3/25/0000000253" failed (13: Permission denied)
从这句判断 可能是 生成的文件过大 要以 文件的形式存放 然后 nginx 有没有权限读取造成.
于是 chmod -R 764 /usr/local/nginx/fastcgi_temp/ 问题解决.