我試試下面的方法來創建一個文件夾與它的subdirectorys如果它不存在:laravel的mkdir()權限被拒絕
public function createFolderIfNotExist($path){
//Check if the folder already exists
if(!File::Exists($path)){
//make folder with $path generate recursive with right 0775
File::makeDirectory($path, 0775 , true);
}
}
在運行時localy它工作正常(XAMPP),當推到服務器它返回
權限被拒絕
錯誤的第一線
在Filesystem.php管線337在HandleExceptions->的HandleError
( '2', 'MKDIR():權限被拒絕', 「/無功/網絡/ **** /供應商/ laravel/framework/src/Illuminate/Filesystem/Filesystem.php', '337',array('path'=> '/ var/www/****/public/images \ product \ 206','mode'= > '509', '遞歸'=>爲真, '力'=>假))
在 MKDIR( '/無功/網絡/ **** /公共/圖像\產品\ 206',' 509', true)在Filesystem.php行337
在 所在文件系統> makeDirectory在Facade.php線( '/無功/網絡/ **** /公共/圖像\產品\ 206', '509',真)216
門面在 :: __ callStatic在ProductController.php線( 'makeDirectory', 陣列( '/無功/網絡/ **** /公共/圖像\產品\ 206', '509', 真))452
錯誤消息使它看起來像試圖將權限設置爲509
路徑th在我通過的是:
$pathThumb = public_path('images\product\\'.$product->id.'\thumb');
當檢查服務器上的許可證時,它說775爲公用文件夾。
我在做什麼錯?
我假設你在服務器上運行* nix。你有沒有檢查你的Selinux是否被禁用? 此外,您必須將目錄所有權設置爲您的apache/nginx運行的組或用戶。您必須運行 chgrp apache產品-Rf 如果您正在運行apache:請檢查httpd.conf中您的服務器運行的用戶和組。 (給予該用戶許可)。 它很可能是您使用不同的FTP用戶上傳文件和不同的用戶的Web服務器 – TrueStory