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

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

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

Сообщение an.viktory@gmail.com »

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

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

yii\base\ErrorException' with message 'mkdir(): No such file or directory
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

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

Сообщение zelenin »

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

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

Сообщение an.viktory@gmail.com »

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

может консольное приложение не разрешает создавать директории или там не так пути прописаны. При просмотре конфигурационных файлов я не заметил чего то уникального.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

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

Сообщение zelenin »

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

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

Сообщение an.viktory@gmail.com »

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

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

 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
Сообщения: 685
Зарегистрирован: 2012.10.15, 03:09

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

Сообщение dmg »

добавьте в начало скрипта echo __DIR__; - поможет
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

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

Сообщение an.viktory@gmail.com »

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

И так вопрос остается открытый почему mk_dir() консоли дает ошибку, как ему правильно сообщать пути при создании директории
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

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

Сообщение urichalex »

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
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

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

Сообщение an.viktory@gmail.com »

Самое удивительное что она есть он ее не видит и соотсветственно исходя из скрипта пытается создать .... тут почему то именно в консоли пути не так прописываются
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

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

Сообщение an.viktory@gmail.com »

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

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

 $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
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

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

Сообщение someweb »

Yii::getAlias('@app');
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

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

Сообщение an.viktory@gmail.com »

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

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

Сообщение Dominus »

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

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

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
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Ответить