2015-09-07 205 views
1

我正在運行以下腳本,在服務器上進行圖片上傳,並在本地主機上完美運行時出現以下錯誤。mkdir():權限被拒絕Laravel

代碼

$user_id = Auth::id(); 
$logicpath = 'userdp/' . $user_id . '/'; 
$pubpath = 'userdp/' . $user_id . '/' . $dpFile; 
$path = '/userdp/' . $user_id . '/' . $dpFile; 

if (!file_exists($logicpath)) { 
    mkdir($logicpath, 0777, true); 
} 

錯誤

ErrorException在UploadController.php線605上:mkdir():權限 在HandleExceptions-否認

>的HandleError('2 ','mkdir():Permission denied', '/ var/www/html/laravel對象(圖片),'/app/Http/Controllers/UploadController.php', '605',array('dp'=> object(UploadedFile),'ext'=>'jpg','img'=> object mime'=>'image/jpeg','width'=>'200','height'=> '200','fileSize'=>'17152','dpFile'=> 'f12f298ab18d58a59c4ed8a589cd1cdc.jpg' 'user_id'=>'1','logicpath' =>'userdp/1 /','pubpath'=>'userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg','path'=> '/ userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc .jpg'))

我試過chmod 777 public並重新啓動服務器。但它沒有奏效。

+2

您應該使用755而不是777. –

+0

永遠不要向根文件夾授予777權限。其專業黑客的安全漏洞。請嘗試綁定嚴格的安全規則,並僅向組/用戶分配必要的權限/權限。 –

回答

-3

您必須遞歸執行chmod以確保所有子目錄也具有相同的權限。嘗試,而不是運行此:

chmod -R 777 
+2

請仔細閱讀以下命令:[如何將服務器變得容易與chmod 777](http://stackoverflow.com/a/11271632/2790481) – rdok

0

我嘗試搭配chmod 777公衆和重新啓動服務器。但它沒有奏效。

確保您遞歸地使用chmod和具有管理員權限(如果你能)

SUDO CHMOD -R 777 /var/www/html/laravel/ 

問候

2

您正在嘗試將上傳文件的文件夾在你的服務器的根目錄。確保你獲得絕對路徑。

$logicpath = public_path() . '/userdp/' . $user_id . '/'; 
+0

我試過這個,不工作。 – user1012181

+2

您還需要遞歸地chmod「userdp」:'chmod -R 755 public/userdp' – user2479930

-1

該命令

composer create-project --prefer-dist laravel/laravel MyProject 

但同樣的錯誤它下面的命令後,工作

sudo mkdir MyProject 

sudo chmod -R 777 MyProject 

或者更好的運行作曲家創建項目命令一些不同的路徑比htdocs目錄

-2

在您的Com中寫入此代碼mand line

sudo chmod -R 777 /var/www/html/