记一次linux+nginx下ueditor上传图片时目录创建失败的问题解决方法

分类: PHP,服务器,分享  • 发布时间: 2015-05-27 00:15:45  • 浏览量:32773

前几天把自己的博客搬家了,以前用的是apache,现在换成了nginx作为web服务器,在发布文章时使用ueditor上传图片时,老是报错:上传目录创建失败,一开始以为是目录权限的问题,然后找到目录修改权限后再上传,依然提示失败,把父级目录的权限也修改,一直都修改到根目录了,上传依然失败!然后网上看到了这哥们的方法(http://www.share8.com.cn/html/jc/other/20150302/4.html),试了一下,依然无效!这时我怀疑:我修改的目录根本不是编辑器上传使用的目录!

于是我就想着把ueditor的真实上传路径提示出来,我进行了如下步骤:

找到了编辑器的上传处理类 Uploader.class.php,大约110行的位置找到了上传失败的提示位置,

$this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR");

注释掉,

然后加了一句 

$this->stateInfo = $dirname;

保存。

然后使用ueditor上传,错误提示的上传路径是:

/usr/local/nginx/html/ueditor/php/upload/image/20150526/

果然不是我现在要上传的目录,/usr/local/nginx/html/根本就是以nginx默认目录,明明我自己配置的有虚拟主机,为什么上传的时候会以默认目录为准呢,百撕不得骑姐,接下来就是一路追踪这个路径什么时候变成了相对/usr/local/nginx/html/了,一路追踪到:

private function getFilePath() 
{
    $fullname = $this->fullName;
    $rootPath = $_SERVER['DOCUMENT_ROOT']; 
    if (substr($fullname, 0, 1) != '/') {
       $fullname = '/' . $fullname;
    }
    return $rootPath . $fullname;
}

就在这把相对路径转换成的绝对路径,$_SERVER['DOCUMENT_ROOT']是个关键,我打印一下$_SERVER['DOCUMENT_ROOT'],

果然显示的结果是/usr/local/nginx/html/,好蛋疼的说,我明明在nginx虚拟机配置的时候配置了root目录了的啊,于是打开nginx的配置有开了一遍,果然发现了问题:

location ~ \.php$ {
   root    html;
   #我的其他配置代码
}

这里的root目录项没改,nginx配置中的server {}体内有多个root要配置,这个成了漏网之鱼。


把配置修改后,nginx平滑加载一下配置后,果然上传问题解决!啥也不怨,就怨自己配置的时候太粗心了,记录一下,引以为戒!

文章来源:本人原创,转载请注明出处:http://unun.in/php/136.html
文章标签: php, linux, centos, nginx, ueditor
用户评论:
  • 游客72367 2015-11-25 16:13:23

    good

  • 游客10386 2015-12-02 16:28:41

    到了配置哪了,怎么修改啊

    • 游客14097 2015-12-15 22:22:01

      到编辑器里面的那个PHP文件里面断点调试吧!

  • 游客16488 2016-09-01 15:22:53

    博主,您好,我已经按你的方法试了,目录是指向本站的正确目录的,权限也全部给了,还是不行!

  • 游客39488 2016-10-14 19:42:47

    测试可用,给了目录权限就可以了,谢谢

  • 游客93206 2017-03-27 17:49:19

    dsad

    • 游客93206 2017-03-27 17:49:32

      dsads

  • 游客93206 2017-03-27 17:49:40

    fsdfsd

    • 游客93206 2017-03-27 17:49:52

      ffff

  • 游客36316 2017-04-26 14:43:03

    表示给到根目录权限777了,apache

  • 游客59744 2018-05-10 16:54:26

    文章不错

  • 游客59744 2018-05-10 16:55:21

    测试一下

  • 游客51899 2018-05-25 19:19:45

    博主,请教下,搭配Nginx后,,百度富文本的serverUrl配置应该怎么给配置,,我试着给Nginx配置一个静态资源,但是打开百度编辑器却报错:后台配置项返回格式出错,上传功能将不能正常使用!,,请问这个该怎么解决呢? 1024567671,,深表感谢