最近项目上传到服务器了,本地很多都没有问题的,结果一到服务器就各种问题出来了,昨天就遇到了图片上传的问题。
看了网上的问题,主要是:
- 1.nginx的fastcgi设置的fastcgi_buffers太小,导致将缓存写入磁盘;
- 2.rewrite规则里的变量rule_1的问题,要改nginx配置:
if (!-f $document_root$uri){
rewrite ^/.*$ /rewrite.php last;
}
- 3.权限问题;
而我跟同事遇到的问题,则是权限引起的,因为本地开发环境我们都是用的root身份,所以不存在这个问题,而在服务器上就不一样了,通常我们为了安全,是以一个较低权限的用户组在运行nginx。nginx的proxy模块可以实现类似于Squid的缓存功能,我们上传文件的时候,会在配置或者nginx默认的一个缓存目录下生成temp文件夹来缓存文件(通常默认的是/usr/local/nginx/proxy_temp,具体看配置情况),而恰恰就是因为当前用户组没有权限对该目录写入信息,所以就上传失败了。解决办法就是赋予用户组该目录755权限就可以了,考虑安全性问题通常不给过高的权限。
最近遇到各种问题,但是都没还好好整理,不过真的是学到好多东西,希望这个问题能帮助到遇到同样问题的人。
文章评论