今天在網頁上傳圖片到博客,結果提示:“無法將上傳的文件移動至 /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了,但是依舊不能上傳,可以考慮是不是文件屬主的問題。