当前位置: > Linux服务器 > nginx >

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

时间:2014-12-08 12:06来源:linux.it.net.cn 作者:IT

之前使用盛大云服务器,用的是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

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容