nginx下ueditor上傳圖片時目錄創建…

以前用的是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要配置,這個成了漏網之魚。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章