知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

nginx下wordpress “无法将上传的文件移动至” 错误

发布时间:2014-09-05 15:27:52作者:知识屋

之前使用盛大云服务器,用的是ubuntu装的apache服务器,
 
但网站总是莫名其妙的失去响应,需要重启apache才可以正常服务,看日志也没什么 异常,也就懒得研究,直接换成nginx。
 
把wordpress从apache挪到nginx比较容易,源文件拷到nginx根目录下,不需要修改代码,修改下wordpress在nginx下的重写规则就可以了。
 
但当我写文章发图片时,却提示我"无法将上传的文件移动至" 上传目录的错误。
 
 
 
今天(2012.12.4增加)又发现这个错误也可以用同样方式解决,nginx上传图片出现http error 错误
 
 [crit] 22919#0: *600783 open() "/usr/local/nginx/client_body_temp/0000000017" failed (13: Permission denied)
 
 
 
 
 
根据自己经验和网上的资料,总结了如下几种排错方式:
 
 
1.中文文件名
 
网上很多网站说是修改上传文件名为全英文就可以,试了下没成功。
 
因为我使用的是最新版中文wordpress,而且我之前使用apache时曾经上传过中文名的附件。
 
所以认定此方法行不通,如果你是新版wordpress此方法可以不用理会了。
 
 
 
2.文件夹权限
 
如果对文件夹没有可写权限是不能上传的,你可以简单的设成777权限,让所有人都可以写。
 
但是为了安全,只要保证文件夹属主是可写的就可以也就是755.
 
ls -l  查看上传目录发现属主已经可写是755权限,继续排查别的。
 
 
 
3.php进程和nginx进程运行用户不同
 
因为我的nginx使用quancha这个用户运行的,也就是nginx.conf 里user指定的参数。
 
但是php-fpm的进程用的是www-data用户运行的。具体看截图。
 
ps -ef |grep quancha
 
 
 
 
ps -ef|grep php-fpm
 

 
上传功能使用php程序完成,也就是php-fpm进程的用户去写wordpress的上传目录。
 
但是上传目录位于nginx的html目录下且属主是nginx的运行用户。
 
 
 
也就是说用www-data去写quancha用户的文件夹,当然写不了。
 
 
 
解决方法:
 
1.修改nginx.conf中的user指令为www-data用户。
 
 
 
2.重启nginx
 
 kill -QUIT `cat /usr/local/nginx/nging.pid`;
 
sudo  /usr/local/nginx/nginx
 
 
 
3.修改文件夹目录属性
 
chown -R www-data:www-data /usr/local/nginx

 

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜