困扰我一周之久的问题终于搞定(论坛附件不能下载)

回复 收藏
培武兄弟反馈多次,他发的笔记以附件的形式在论坛上,近期很多人反馈笔记不能下载。 今天我还好有时间就特意找了一下这个问题。 之前我测试的不够充分总以为可以下载,其实下载的只是一个空文件而已。打开时是会报错的。  

既然有问题,就一定要找到原因。起初怀疑是nginx.conf 配置哪里有问题,于是一项一项测试,调节各种缓存、超时时间等参数,无果。

既然,现象不能猜到,那就借助于log吧,因为之前有过调整nginx错误日志级别的经历,所以,这次也调一下。把错误日志调成debug,该级别会记录所有的日志。 (后来,发现其实不用调,也会记录下面发现的日志)

调整日志级别的方法是: 修改nginx.conf  把
error_log  /var/log/nginx/error.log ;
改为
error_log  /var/log/nginx/error.log debug;


重启完nginx服务后,发现了关键日志:
*196972 open() "/usr/local/nginx/fastcgi_temp/2/21/0000005212" failed (13: Permission denied) while reading upstream, client: 222.161.220.25, server: www.aminglinux.com, request: "GET /bbs/forum.php?mod=attachment&aid=MTAzNXw5OGZjOTJjOHwxNDIwNzA1NTM2fDQxNTZ8NzI4Mg%3D%3D HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.aminglinux.com"

这条日志,就是我在下载附件,它竟然提示无权限。

回头想了一下,之前我曾经修改过nginx的运行帐号,跟之前的默认帐号有所不同,所以肯定是我修改运行账户引起的,而且推敲一下故障发生的时间也正好可以对应上,于是乎,问题很顺利地解决了,只需修改目录/usr/local/nginx/fastcgi_temp/ 的所属主即可。


chown -R apache /usr/local/nginx/fastcgi_temp/  


重启nginx后,问题彻底解决。 这里要说一下,fastcgi_temp 这个目录是一个缓存临时目录,下载附件的时候会用到它,默认该目录的所属主就是nginx的启动帐号,在nginx.conf 中是有配置的。
2015-01-08 17:42 举报
已邀请:
0

王肖强

赞同来自:

顶 !
0

xiaotuanyu120

赞同来自:

学习到了,其实我们现在装mysql啥的给mysql目录修改属组和属主也是大概的道理是吗?
0

川娃子在大连

赞同来自:

{:6_157:}
0

江歌

赞同来自:

学习了,遇到问题,修改日志错级别,找错误日志分析原因。顶
0

阿铭 管理员

赞同来自:

xiaotuanyu120 发表于 2015-1-8 17:44
学习到了,其实我们现在装mysql啥的给mysql目录修改属组和属主也是大概的道理是吗?

是这么回事。
0

暗夜独行客

赞同来自:

学习了
0

小许

赞同来自:

学习了
0

丁张龙

赞同来自:

学习了,,,
0

乌贼的帽子

赞同来自:

又增加了工作经验了{:4_91:}

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: