網站搬家到wimp,真是問題不斷,剛剛解決了個,現在又遇到了個。寫了一篇博文說說,發現上傳的圖片不能顯示(對外提示500,對內提示URL重寫錯誤),醉了
初步百度了一下,有兩種可能,
檢查了路徑,沒問題,那就是權限的問題了。
找到這張圖片,在屬性-安全裡-發現沒有父目錄uploads的Users用戶的讀取權限,
於是手動給添加個User用戶權限,發現正常了,但是新上傳的圖片又不能訪問。
一般上傳的文件會繼承父目錄的權限,但是在這裡上傳的文件卻沒有繼承父目錄的權限,而且還多了個I開頭的用戶組
再次百度google找原因,原來是PHP在上傳文件的時候,會先放在一個臨時的文件夾裡(這時會繼承該文件夾的權限,所以多了個I開頭的用戶組)),然後再移動到指定文件夾
那麼問題就出現在,上傳的臨時文件夾沒有Users用戶權限,移動的過程中不會繼承新的父目錄的權限,所以沒有Users用戶權限。
既然知道了原因,那麼該怎麼解決呢,最簡單的方法是指定PHP上傳的臨時文件夾為uploads的子目錄
哀差悶具體的解決步驟如下
1.uploads下面新建了個phpUpLoadTemp文件夾,然後再屬性-安全裡添加IUSR用戶組(這個是必須的,php.ini 的upload_tmp_dir 目錄權限必須要包含 IUSR)
2.打開php.ini,查找upload_tmp_dir 將前面的分號去掉 後面添加上phpUpLoadTemp文件夾的路徑
upload_tmp_dir = “D:\xxxxx\www\wp-content\uploads\PHPupLoadTemp”
最後還需要注意一點:上傳的文件名不能帶有中文,否則會出現找不到的問題,原因不多說了,因為編碼不同