За последние 24 часа нас посетил 64741 программист и 1744 робота. Сейчас ищут 2182 программиста ...

Ошибка после установки Redis

Тема в разделе "Yii", создана пользователем Dimon2x, 6 апр 2018.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Установил по инструкции https://github.com/yiisoft/yii2-redis

    Если написать

    PHP:
    1.  Yii::$app->redis->set('mykey', 'some value');
    2. echo Yii::$app->redis->get('mykey');
    то будет ошибка

    Код (Text):
    1. Database Exception – yii\db\Exception
    2. Error Info:
    Код (Text):
    1.  in C:\OSPanel\domains\images.loc\vendor\yiisoft\yii2-redis\src\Connection.php at line 565
    2. 556557558559560561562563564565566567568569570571572573574                                    $this->executeCommand('AUTH', [$this->password]);
    3.             }
    4.             if ($this->database !== null) {
    5.                 $this->executeCommand('SELECT', [$this->database]);
    6.             }
    7.             $this->initConnection();
    8.         } else {
    9.             \Yii::error("Failed to open redis DB connection ($connection): $errorNumber - $errorDescription", __CLASS__);
    10.             $message = YII_DEBUG ? "Failed to open redis DB connection ($connection): $errorNumber - $errorDescription" : 'Failed to open DB connection.';
    11.             throw new Exception($message, $errorDescription, $errorNumber);
    12.         }
    13.     }
    14.     /**
    15.      * Closes the currently active DB connection.
    16.      * It does nothing if the connection is already closed.
    17.      */
    18.     public function close()
    19.     {
    20.                
    21. 2. in C:\OSPanel\domains\images.loc\vendor\yiisoft\yii2-redis\src\Connection.php at line 665 – yii\redis\Connection::open()
    22. 659660661662663664665666667668669670671                         * See [redis protocol description](http://redis.io/topics/protocol)
    23.      * for details on the mentioned reply types.
    24.      * @throws Exception for commands that return [error reply](http://redis.io/topics/protocol#error-reply).
    25.      */
    26.     public function executeCommand($name, $params = [])
    27.     {
    28.         $this->open();
    29.         $params = array_merge(explode(' ', $name), $params);
    30.         $command = '*' . count($params) . "\r\n";
    31.         foreach ($params as $arg) {
    32.             $command .= '$' . mb_strlen($arg, '8bit') . "\r\n" . $arg . "\r\n";
    33.         }
    34.                
    35. 3. in C:\OSPanel\domains\images.loc\vendor\yiisoft\yii2-redis\src\Connection.php at line 630 – yii\redis\Connection::executeCommand('SET', ['mykey', 'some value'])
    36. 624625626627628629630631632633634635636                         * @return mixed
    37.      */
    38.     public function __call($name, $params)
    39.     {
    40.         $redisCommand = strtoupper(Inflector::camel2words($name, false));
    41.         if (in_array($redisCommand, $this->redisCommands)) {
    42.             return $this->executeCommand($redisCommand, $params);
    43.         } else {
    44.             return parent::__call($name, $params);
    45.         }
    46.     }
    47.     /**
    48.                
    49. 4. in C:\OSPanel\domains\images.loc\frontend\models\User.php at line 215 – yii\redis\Connection::__call('set', ['mykey', 'some value'])
    50. 209210211212213214215216217218                    
    51.         $redis->sadd("user:{$this->getId()}:subcribtions", $user->getId());
    52.         $redis->sadd("user:{$this->getId()}:followers", $user->getId());
    53.          *
    54.          */
    55.         Yii::$app->redis->set('mykey', 'some value');
    56.         echo Yii::$app->redis->get('mykey');
    57.     }
    58. }
    59.                
    60. 5. in C:\OSPanel\domains\images.loc\frontend\controllers\ProfileController.php at line 45 – frontend\models\User::followUser(frontend\models\User)
    61. 39404142434445464748495051                           }
    62.        $currentUser = Yii::$app->user->identity;
    63.        $user = $this->findUserById($id);
    64.        $currentUser->followUser($user);
    65.        return $this->redirect(['/profile/view', 'nickname' => $user->getNickname()]);
    66.      }
    67.                
    68. 6. frontend\controllers\ProfileController::actionSubscribe('1')
    69. 7. in C:\OSPanel\domains\images.loc\vendor\yiisoft\yii2\base\InlineAction.php at line 57 – call_user_func_array([frontend\controllers\ProfileController, 'actionSubscribe'], ['1'])
    70. 8. in C:\OSPanel\domains\images.loc\vendor\yiisoft\yii2\base\Controller.php at line 157 – yii\base\InlineAction::runWithParams(['id' => '1'])
    71. 9. in C:\OSPanel\domains\images.loc\vendor\yiisoft\yii2\base\Module.php at line 528 – yii\base\Controller::runAction('subscribe', ['id' => '1'])
    72. 10. in C:\OSPanel\domains\images.loc\vendor\yiisoft\yii2\web\Application.php at line 103 – yii\base\Module::runAction('profile/subscribe', ['id' => '1'])
    73. 11. in C:\OSPanel\domains\images.loc\vendor\yiisoft\yii2\base\Application.php at line 386 – yii\web\Application::handleRequest(yii\web\Request)
    74. 12. in C:\OSPanel\domains\images.loc\frontend\web\index.php at line 17 – yii\base\Application::run()
    75. 11121314151617                        require __DIR__ . '/../../common/config/main.php',
    76.     require __DIR__ . '/../../common/config/main-local.php',
    77.     require __DIR__ . '/../config/main.php',
    78.     require __DIR__ . '/../config/main-local.php'
    79. );
    80. (new yii\web\Application($config))->run();
    81.                
    82. $_GET = [
    83.     'id' => '1',
    84. ];
    85.  
    86. $_COOKIE = [
    87.     'advanced-frontend' => 'qdt10qssj4rr8l4epvpb1eo6ucn96vs9',
    88.     '_csrf-frontend' => '8e6d55803bd0060a57ce5a418b92d5f9e21cc41a73438c875b31bb0a067cbb29a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"ttdhIxlbEMbJ65cKaeRfytxrJ-CCPylB";}',
    89. ];
    90.  
    91. $_SESSION = [
    92.     '__flash' => [],
    93.     'yii\\authclient\\clients\\VKontakte_vkontakte_token' => unserialize('O:25:"yii\\authclient\\OAuthToken":5:{s:13:"tokenParamKey";s:12:"access_token";s:19:"tokenSecretParamKey";s:18:"oauth_token_secret";s:15:"createTimestamp";i:1523011615;s:50:"' . "\0" . 'yii\\authclient\\OAuthToken' . "\0" . '_expireDurationParamKey";s:10:"expires_in";s:34:"' . "\0" . 'yii\\authclient\\OAuthToken' . "\0" . '_params";a:4:{s:12:"access_token";s:85:"748b2f6551e8774592f300746475708d652128aa7eaf0cc22bad79efa6076c86c13c5a8b765b84fe70a02";s:10:"expires_in";i:86398;s:7:"user_id";i:26291131;s:5:"email";s:24:"secret.sec2014@yandex.ru";}}'),
    94.     '__id' => 2,
    95. ];
    --- Добавлено ---
    ещё ссылка на $app работает, на redis не работает
    --- Добавлено ---
    А если в консоле написать redis-cli, то пишет redis-cli" не является внутренней или внешней
    командой.
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Ну а сам редис установил? php-redis?
    --- Добавлено ---
    apt-get install redis php-redis
     
  3. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou

    apt-get install redis php-redis
    "apt-get" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    --- Добавлено ---
    @nospiou установил, что было здесь https://github.com/yiisoft/yii2-redis/blob/master/docs/guide/installation.md
    --- Добавлено ---
    --- Добавлено ---
    @nospiou

    установил так

    composer require predis/predis
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    это под ubuntu в macos brew а в винде скорее всего какой то инсталлер
    php -m что показывает? Юзай vagrant
     
  5. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    из инструкции по Laravel пишут Настройки вашего подключения к Redis хранятся в файле config/database.php.
    а в yii2 нету такой папки config
    --- Добавлено ---
    @nospiou

    Код (Text):
    1. php -m
    2. [PHP Modules]
    3. bcmath
    4. bz2
    5. calendar
    6. Core
    7. ctype
    8. curl
    9. date
    10. dom
    11. exif
    12. fileinfo
    13. filter
    14. ftp
    15. gd
    16. gettext
    17. hash
    18. iconv
    19. igbinary
    20. imap
    21. json
    22. libxml
    23. mbstring
    24. mongodb
    25. mysqli
    26. mysqlnd
    27. odbc
    28. openssl
    29. pcre
    30. PDO
    31. pdo_mysql
    32. pdo_pgsql
    33. pdo_sqlite
    34. Phar
    35. readline
    36. redis
    37. Reflection
    38. session
    39. SimpleXML
    40. soap
    41. sockets
    42. SPL
    43. sqlite3
    44. standard
    45. timezonedb
    46. tokenizer
    47. wddx
    48. xml
    49. xmlreader
    50. xmlrpc
    51. xmlwriter
    52. xsl
    53. zip
    54. zlib
    55.  
    56. [Zend Modules]
     
  6. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Composer это библиотека для работы с redis php-redis это модуль php а еще есть сервер redis как сервер mysql.
    Вот нагуглил пробуй https://github.com/MicrosoftArchive/redis/releases
    и о vagrant тоже задумайся.
     
  7. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou а смысл это вагрант ставить, если кодить придётся в виртуалке?
     
  8. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    там samba папка будет локальной а консоль реальной
    Хотя можешь и сам сервер поднять и все настроить без него.
    Тут уж от знания linux зависит.
     
  9. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou я никак не могу понять, пару месяцев назад, установил линукс в виртуалку, настроил всё и запускал, через браузер на винде, всё работало, сейчас решил запустить и сайт не открывается, почему? Никаких изменений не делал.

    В hosts прописано 127.0.0.1 test-lamp.local, по такому адресу, надо открывать в линуксе
    В пробросе портов, тоже всё правильно написано, порт хоста 8081, порт гостя 80

    Перехожу по адресу http://test-lamp.local:8081 и не открывается
     
  10. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    127.0.0.1 это ты в винде прописал?) Как у тебя там виртуалка оказалась?
    ifconfig на linux какой ip показывает?
     
  11. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou да на винде, в смысле оказалась?

    я ставил lamp и lemp, вот lamp не работает из под винды, а lemp работает
     
  12. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Это что то страшное. Точно виртуалка? Может сервер поднять нужно service apache2 start?
     
  13. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou это стоит на виртуалке, и запускаю это на винде, а виртуалку запускаю в фоновом режиме
     
  14. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    ну я уже советовал vestacp в нем хоть смысл есть. lemp не юзал.