mkdir(): No such file or directory в консоли

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
an.viktory@gmail.com
Сообщения: 333
Зарегистрирован: 2016.09.05, 23:21

mkdir(): No such file or directory в консоли

Сообщение an.viktory@gmail.com » 2018.04.16, 20:01

при работе с web приложением никаких проблем но в консоли выскакивает вот такая ошибка я так понимаю что-то с путями нет так ?

Код: Выделить всё

yii\base\ErrorException' with message 'mkdir(): No such file or directory

zelenin
Сообщения: 10456
Зарегистрирован: 2013.04.20, 11:30

Re: mkdir(): No such file or directory в консоли

Сообщение zelenin » 2018.04.16, 20:38

an.viktory@gmail.com писал(а):
2018.04.16, 20:01
я так понимаю что-то с путями нет так ?
это очевидно.
Серьезно, такой вопрос решили на форуме задать?

an.viktory@gmail.com
Сообщения: 333
Зарегистрирован: 2016.09.05, 23:21

Re: mkdir(): No such file or directory в консоли

Сообщение an.viktory@gmail.com » 2018.04.16, 20:56

почему тогда в приложении такой же скрипт работает без проблем

может консольное приложение не разрешает создавать директории или там не так пути прописаны. При просмотре конфигурационных файлов я не заметил чего то уникального.

zelenin
Сообщения: 10456
Зарегистрирован: 2013.04.20, 11:30

Re: mkdir(): No such file or directory в консоли

Сообщение zelenin » 2018.04.16, 21:02

an.viktory@gmail.com писал(а):
2018.04.16, 20:56
почему тогда в приложении такой же скрипт работает без проблем
значитусловия работы другие.

an.viktory@gmail.com
Сообщения: 333
Зарегистрирован: 2016.09.05, 23:21

Re: mkdir(): No such file or directory в консоли

Сообщение an.viktory@gmail.com » 2018.04.16, 21:03

какие условия и где ,на сервере или а приложении ?

Код: Выделить всё

 public function generatePathHtml()
    {
        //  echo "<br> LINK_ID = " . $this->link_id;
        $year = substr($this->link_id, 0, 4);
        //   echo "<br> YEAR = " . $year;
        $folder = substr($this->link_id, 4, 3);
        //   echo "<br> folder = " . $folder;
        if (!file_exists("source/html")) mkdir('source/html'); // else  echo "КАТАЛОГ  YEAR УЖЕ СУЩЕСТВУЕТ";
        if (!file_exists("source/html/" . $year)) mkdir("source/html/" . $year);  // else  echo "КАТАЛОГ  YEAR УЖЕ СУЩЕСТВУЕТ";
        if (!file_exists("source/html/" . $year . "/" . $folder)) mkdir("source/html/" . $year . "/" . $folder);  // else echo "КАТАЛОГ  YEAR-FOLDER УЖЕ СУЩЕСТВУЕТ";
        return "source/html/" . $year . "/" . $folder;

    }

dmg
Сообщения: 629
Зарегистрирован: 2012.10.15, 03:09

Re: mkdir(): No such file or directory в консоли

Сообщение dmg » 2018.04.16, 23:13

добавьте в начало скрипта echo __DIR__; - поможет

an.viktory@gmail.com
Сообщения: 333
Зарегистрирован: 2016.09.05, 23:21

Re: mkdir(): No such file or directory в консоли

Сообщение an.viktory@gmail.com » 2018.04.17, 09:52

он возвращает просто расположение файла на диске D::/.../models что вообще никак не связано с ресурсным файлами проекта, а с файловой системой моего компьютера

И так вопрос остается открытый почему mk_dir() консоли дает ошибку, как ему правильно сообщать пути при создании директории

urichalex
Сообщения: 582
Зарегистрирован: 2015.08.07, 11:03

Re: mkdir(): No such file or directory в консоли

Сообщение urichalex » 2018.04.17, 10:07

an.viktory@gmail.com писал(а):
2018.04.17, 09:52
почему mk_dir() консоли дает ошибку
По тому, что нет родительской директории. Либо создать ее вручную, либо mkdir('/путь/до/папки', 755, true)
Последний раз редактировалось urichalex 2018.04.17, 11:57, всего редактировалось 1 раз.

an.viktory@gmail.com
Сообщения: 333
Зарегистрирован: 2016.09.05, 23:21

Re: mkdir(): No such file or directory в консоли

Сообщение an.viktory@gmail.com » 2018.04.17, 10:13

Самое удивительное что она есть он ее не видит и соотсветственно исходя из скрипта пытается создать .... тут почему то именно в консоли пути не так прописываются

an.viktory@gmail.com
Сообщения: 333
Зарегистрирован: 2016.09.05, 23:21

Re: mkdir(): No such file or directory в консоли

Сообщение an.viktory@gmail.com » 2018.04.17, 10:23

проблема решилась создание такой абра-кадабры, но как правильно задавать пусти в консоли

Код: Выделить всё

 $year = substr($this->link_id, 0, 4);
        $root = __DIR__;
        $root = preg_replace("/models/",'web', $root);
       // echo "<br>__DIR_ = ".__DIR__;
        //   echo "<br> YEAR = " . $year;
        $folder = substr($this->link_id, 4, 3);
        //   echo "<br> folder = " . $folder;
        if (!file_exists($root. "/source/html")) mkdir($root."/source/html"); // else  echo "КАТАЛОГ  YEAR УЖЕ СУЩЕСТВУЕТ";
        if (!file_exists($root."/source/html/" . $year)) mkdir($root."/source/html/" . $year);  // else  echo "КАТАЛОГ  YEAR УЖЕ СУЩЕСТВУЕТ";
        if (!file_exists($root ."/source/html/" . $year . "/" . $folder)) mkdir($root."/source/html/" . $year . "/" . $folder);  // else echo "КАТАЛОГ  YEAR-FOLDER УЖЕ СУЩЕСТВУЕТ";
        return $root."/source/html/" . $year . "/" . $folder;

someweb
Сообщения: 232
Зарегистрирован: 2017.03.09, 10:12

Re: mkdir(): No such file or directory в консоли

Сообщение someweb » 2018.04.17, 10:30

Yii::getAlias('@app');

an.viktory@gmail.com
Сообщения: 333
Зарегистрирован: 2016.09.05, 23:21

Re: mkdir(): No such file or directory в консоли

Сообщение an.viktory@gmail.com » 2018.04.17, 10:50

т.е. @webroot в консоли нет а @app есть и исходя их него я могу строить пути ?

Аватара пользователя
Dominus
Сообщения: 540
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: mkdir(): No such file or directory в консоли

Сообщение Dominus » 2018.04.17, 12:18

Создайте свой алиас:

Код: Выделить всё

Yii::setAlias('@upload', dirname(dirname(__DIR__)) . '/frontend/web/');
И используйте его.

Код: Выделить всё

Yii::getAlias('@upload');
Для Basic приложения, я создаю алиасы так:
В папке config создал файл bootstrap.php в котором и задаются алиасы
https://github.com/Dominus77/yii2-basic ... tstrap.php
И затем его подключаю в web/index.php и web/index-test.php:
https://github.com/Dominus77/yii2-basic ... dex.php#L9
https://github.com/Dominus77/yii2-basic ... st.php#L13
В файле yii для консольного приложения:
https://github.com/Dominus77/yii2-basic ... ev/yii#L16
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!

Ответить