我试试下面的方法来创建一个文件夹与它的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