【发布时间】:2015-11-22 22:25:41
【问题描述】:
如果文件夹不存在,我尝试使用以下方法创建一个包含子目录的文件夹:
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);
}
}
在本地运行时它工作正常(xampp),当推送到服务器时它返回
权限被拒绝
错误的第一行
在 Filesystem.php 第 337 行
在 HandleExceptions->handleError('2', 'mkdir(): 权限被拒绝', '/var/www/****/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php', '337',数组('路径' => '/var/www/****/public/images\product\206', '模式' => '509', 'recursive' => true, 'force' => false))
在 mkdir('/var/www/****/public/images\product\206', '509', true) 在 Filesystem.php 第 337 行
在 文件系统->makeDirectory('/var/www/****/public/images\product\206', '509', true) 在 Facade.php 第 216 行
在 外观::__callStatic('makeDirectory', 数组('/var/www/****/public/images\product\206', '509', true)) 在 ProductController.php 第 452 行
错误消息使我看起来像是在尝试将权限设置为 509
我经过的路径是:
$pathThumb = public_path('images\product\\'.$product->id.'\thumb');
检查服务器上的权限时,它显示公用文件夹的权限为 775。
我做错了什么?
【问题讨论】:
-
我假设您在服务器上运行 *nix。您是否检查过您的 Selinux 是否已禁用?此外,您必须为运行 apache/nginx 的组或用户设置目录所有权。如果您正在运行 apache,则必须运行 chgrp apache product -Rf:检查您的 httpd.conf 您的服务器运行的用户和组。 (授予该用户权限)。您很可能使用不同的用户进行 FTP 上传文件和使用不同的用户进行网络服务器