WordPress中"无法将上传的文件移动至"错误的解决方法

yipeiwu_com6年前PHP代码库

今天在网页上传图片到博客,结果提示:“无法将上传的文件移动至 /home/wwwroot/wp-content/uploads/2013/”,郁闷了,认为是权限问题,修改了文件,都改成了777的权限,但是还是不可以写入,图片无法上传。
索性,我查看了我的网站根目录文件夹的权限,显示是www ,www  ,而用ps aux|grep nginx 显示的是nobody 的身份运行nginx的子程序,ps aux|grep php-fpm,显示的也是nobody。同时发现,我网站里的其他的文件和文件夹的权限却是root,root。这可能是因为我上次直接用root身份拷贝导致的,所以,无法用nobody的身份修改root的文件。
方法如下:
第一步:
先分别将nginx和php-fpm子程序的运行身份变成www,用户组group也变成www。
修改nginx.conf文件,将user nobody nobody;改成user www www;
运行命令:

service nginx restart       //重启nginx

修改php-fpm.conf,将其中的

  user = nobody
  group = nobody

改成:

  user = www
  group =www

运行命令:service php-fpm reload   //重启php-fpm
第二步:
修改所有文件夹和文件为www,www

#chown -R www:www /wwwroot

再次上传图片,提示成功上传了,问题解决了。
网上还有一些其他的方法,比如将图片修改成英文名,或者修改文件夹为777。其实很多情况下权限是777了,但是依旧不能上传,可以考虑是不是文件属主的问题。

相关文章

解析php中static,const与define的使用区别

define部分:宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段。(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议。)宏的语法为:#define 宏名称 宏值作为一种...

PHP获取和操作配置文件php.ini的几个函数介绍

1.ini_get()获取配置参数,ini_set()设置配置参数 复制代码 代码如下:<?phpecho ini_get('display_errors'); //1//动态修改...

PHP里的$_GET数组介绍

在开发过程中,GET和POST无处不在。$_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值。 $_GET 变量用于收集来自 method="get" 的表单中...

PHP中CURL的CURLOPT_POSTFIELDS参数使用细节

在通常情况下,我们使用 CURL 来提交 POST 数据的时候,我们已经习惯了这样的写法:复制代码 代码如下:curl_setopt( $ch, CURLOPT_POSTFIELDS,$...

php正则过滤html标签、空格、换行符的代码(附说明)

复制代码 代码如下: $str=preg_replace("/\s+/", " ", $str); //过滤多余回车 $str=preg_replace("/<[ ]+/si","...