Стараюсь следующий метод, чтобы создать папку с его 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);
}
}
При запуске, локальной он работает отлично (XAMPP), при нажатии на сервер она возвращает
разрешения отказано
Первые строки ошибки
в Filesystem.php линии 337
в HandleExceptions-> HandleError ('2', 'MkDir(): Разрешение отказано', «/ вар/WWW/****/продавец/Laravel/framework/'' '' '' '' '/ var/www/****/public/images \ product \ 206', 'mode' => '/ var/www/****/public/images \ product \ 206', 'mode' = > '509', 'рекурсивное' => верно, 'сила' => ложное))
на MKDIR ('/ вар/WWW/****/общественный/изображения \ продукт \ 206', ' 509 ', true) в строке Filesystem.php 337
в Filesystem-> MakeDirectory ('/ вар/WWW/****/государственные/изображения \ продукт \ 206', '509', правда) в Facade.php линии 216
на Фасад :: __ callStatic ('MakeDirectory', массив ('/ вар/WWW/****/публичный/изображений \ продукт \ 206', '509', правда)) в ProductController.php линии 452
Сообщение об ошибке показывает, что он пытается установить разрешения на 509
Путь th при I перевале:
$pathThumb = public_path('images\product\\'.$product->id.'\thumb');
При проверке разрешающей способности на сервере он говорит 775 для общей папки.
Что я делаю неправильно?
Предполагаю, что вы используете * nix на сервере. Вы проверяли, отключен ли ваш Selinux? Кроме того, вы должны установить принадлежность к каталогу группе или пользователю, с которой работает apache/nginx. вам нужно запустить chgrp apache product -Rf если вы используете apache: проверьте свой httpd.conf, какой пользователь и группа запускает ваш сервер. (дайте это разрешение пользователю). Очень вероятно, что вы используете другого пользователя для FTP для загрузки файлов и разных пользователей для веб-сервера – TrueStory