Как установить\настроить MongoCache

Тема в разделе "Thunder 3.X", создана пользователем ddn128, 2 апр 2017.

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Приветствую, уважаемые, многие просили о скидках в преддверии последнего звонка. Честное слово, я хз, к чему бы это )) 

    До 30 Мая, скидка 30%:

    MassSiteProxy 1х. Скриипт массово копирования сайтов Теперь с переводчиком. 

    CPA GEN 1х. Скрипт генерации белых дорвеев Бунусом подарю 2 блоговых шаблона для новых покупателей. 

    Thunder 3.x Генератор дорвеев

    Промо коды пачка на Всех))) Действительны всего 5 дней. 


    16A797CDF4984EBA
    E0E353B0526543EC
    66CF2994C3F6428D
    BAB10BEC1506440E
    117E2530B6C243AB
    3B5D715381F34022
    3B5DF499651D47A4
    4D351AB438E5473A

    Партнерская программа для дорвейщиков - до 30% с продажи.

  1. ddn128

    ddn128 Опытный Пользователь

    31 дек 2015
    507
    232
    Мужской
    Либо в конфиге пропиши ном. тип кеширования
    file_cache или sqlite_cache
    Либо на серваке установи\включи\настрой модуль mongo
     
  2. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.242
    559
    Чтобы использовать Mongo cache нужно установить сам Mongo на сервер и
    Подключить mongo.so в php.ini
     
  3. amness

    amness Активный Участник

    11 апр 2016
    250
    86
    Мужской
    #3 amness, 4 апр 2017
    Последнее редактирование: 4 апр 2017
    Эт я в курсе, всё установлено и подключено:
    [​IMG]
     
  4. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.242
    559
  5. amness

    amness Активный Участник

    11 апр 2016
    250
    86
    Мужской
    Не, не должно, вот что пишут: http://stackoverflow.com/questions/37261957/php-mongodb-fatal-error-class-mongoclient-not-found
    Заменил в 80 строке класс Mongo() на MongoDB\Driver\Manager() ошибка Class 'Mongo' not found пропала, но теперь в логах появилась другая:
    Код:
    PHP Catchable fatal error:  Object of class Slim\\Container could not be converted to string in /var/www/test.com/public_html/index.php on line 82
    
    Надо ещё что-то править.
     
  6. amness

    amness Активный Участник

    11 апр 2016
    250
    86
    Мужской
    Ну так что там с Монгой? Будет фикс или нет? Расширения старше версии 1.0.0 не хотят работать с доргеном.
     
  7. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.242
    559
    В index.php, 82 строка, Доргена, замените:
    $collection = $mongo->$c->settings['cache']['mongo_cache']['dbname']->$mongo->$c->settings['cache']['mongo_cache']['collection'];
    на
    $collection = $c->settings['cache']['mongo_cache']['collection'];

    Прошу отписаться.
     
  8. amness

    amness Активный Участник

    11 апр 2016
    250
    86
    Мужской
    Код:
    Type: TypeError
    Message: Argument 1 passed to Doctrine\Common\Cache\MongoDBCache::__construct() must be an instance of MongoCollection, string given, called in /var/www/test.com/public_html/index.php on line 84
    File: /var/www/test.com/public_html/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php
    Line: 75
    
     
  9. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.242
    559
    Ошибку воспроизвел, дело в переменной с коллекции.
    Пробуем на прямую, временное решение:

    В index.php
    Код:
    case 'mongo_cache':
    $mongo = new Mongo("mongodb://{$c->settings['cache']['mongo_cache']['username']}:{$c->settings['cache']['mongo_cache']['password']}@{$c->settings['cache']['mongo_cache']['host']}:{$c->settings['cache']['mongo_cache']['port']}/{$c->settings['cache']['mongo_cache']['dbname']}");
    
                //$collection = $mongo->$c->settings['cache']['mongo_cache']['dbname']->$mongo->$c->settings['cache']['mongo_cache']['collection'];
    
    //тестовая БД
                $db = $mongo->test;
    
                // тестовая коллекция
                $collection = $db->items;
      
              
    $cache = new \Doctrine\Common\Cache\MongoDBCache($collection);
               break;
    
    У меня такие настройки в config.php:
    Код:
              'mongo_cache' => ['host' =>'127.0.0.1', 'port' =>'27017','username' => 'mongo_user', 'password' => 'mongo_password', 'dbname' => 'DATABASE-NAME', 'collection' =>'COLLECTION-NAME'],
    пользователь:mongo_user:mongo_password вручную добавле к БД test

    Вся бяда в
    Код:
    $
    collection = $mongo->$c->settings['cache']['mongo_cache']['dbname']->$mongo->$c->settings['cache']['mongo_cache']['collection'];
    Но я это поправлю.
     
  10. amness

    amness Активный Участник

    11 апр 2016
    250
    86
    Мужской
    На какой версии PHP пробуете и какая система? У меня на PHP7 ни в какую не хочет работать. Класса Mongo() у меня нет, использую MongoDB\Client(), в остальном всё как описано выше но отдаёт ошибку:
    Код:
    Type: TypeError
    Message: Argument 1 passed to Doctrine\Common\Cache\MongoDBCache::__construct() must be an instance of MongoCollection, instance of MongoDB\Collection given, called in /var/www/test.com/public_html/index.php on line 91
    File: /var/www/test.com/public_html/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php
    Line: 75
    
    line 91 - $cache = new \Doctrine\Common\Cache\MongoDBCache($collection);
     
  11. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.242
    559
    php_mongo.so точно подключен к PHP.ini?
     
  12. amness

    amness Активный Участник

    11 апр 2016
    250
    86
    Мужской
    Точно подключен, даже если напрямую в index.php пишу:
    Код:
        /*
         *   MongoDB
         */
         case 'mongo_cache':
           $client = new MongoDB\Client("mongodb://localhost:27017");
           $collection = $client->TEST->coll;
           $result = $collection->insertOne( [ 'title' => 'Thunder3', 'content' => 'Thunder3' ] );
    
      
    $cache = new \Doctrine\Common\Cache\MongoDBCache($collection);
    
    коллекция и документ создаётся, но затем дорген вылетает с ошибкой - та что выше.
     
  13. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.242
    559
    А если напрямую ?
    $cache = new \Doctrine\Common\Cache\MongoDBCache($client->TEST->coll);
     
  14. amness

    amness Активный Участник

    11 апр 2016
    250
    86
    Мужской
    Тоже самое.
     
  15. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.242
    559
    Хч, да что эе это какое, а можете мне скрин php_info показать?
     
  16. amness

    amness Активный Участник

    11 апр 2016
    250
    86
    Мужской
    https://www.sendspace.com/file/4ogzts
     
  17. daronlad

    daronlad Новичок

    14 апр 2016
    47
    0
    Мужской
    Как в итоге решили проблему? У меня то же самое, интересует решение проблемы

    Type: Error
    Message: Class 'Mongo' not found
    File: /home/.../index.php
    Line: 80