Несколько советов по MongoDB или реклама The Little MongoDB Book и немного ссылок

Недавно в силу обстоятельств пришлось столкнуться с MongoDB — установкой на локальном и удаленном серверах ubuntu и centos, поверхностной настройкой, прикручиванием и использованием с Codeigniter.

До этого я немного уже работал с другим NoSQL хранилищем — Redis. Жаль сравнить их не смогу в силу малой компетентности, но не о том речь.
Дальше я приведу список ссылок, которые мне помогли на каждом из этапов.

Первым делом я бы хотел «прорекламировать» замечательную книгу для начинающих по MongoDB. Саму книгу я читал в переводе на jsman.ru — Маленькая книга о MongoDB / The Little MongoDB Book. Это на мой взгляд лучшая литература для старта.

Об остальных шагах. Напомню, что я использую php на *nix машине, поэтому ссылки приведены специфические.

Во-первых, если вы все еще не знаете, зачем нужно вообще и чем может быть полезно именно вам MongoDB — http://jsman.ru/mongo-book/Glava-5-Kogda-ispolzovat-MongoDB.html

Во-вторых, если вы уже решились, то способы установки можете найти здесь — http://www.php.net/manual/en/mongo.installation.php

Грубо установка сводится к нескольким командам (Ubuntu):

$ sudo apt-get install mongodb
$ sudo apt-get install php-pear
$ sudo apt-get install php5-dev
$ sudo pecl install mongo (после этого шага вас попросят добавить extension=mongodb.so в php.ini)

И конечно не забудьте перезапустить apache (или httpd для CentOS) после этих манипуляций.

Для Ubuntu все ставится из стандартных репозиториев. Для CentOS 6 на GoDaddy репозиторий пришлось добавлять вручную — http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/

В-третьих, мне понадобился автозапуск. В Ubuntu Mongo стартовала сама собой при загрузке системы, в CentOS пришлось выполнить из консоли (взято с serverfault):

$ chkconfig mongod on

В-четвертых, я включил auth режим. Как это сделано, а также как добавить пользователей описано здесь — http://learnmongo.com/posts/quick-tip-mongodb-users/
Но если кратко, то для включения режима нужно расскомментировать параметр auth в конфиге /etc/mongod.conf (и для Ubuntu, и для CentOS) и перезапустить сервис монго после этого.
Добавить пользователя:

$ ./mongo
> use mydatabase
> db.addUser("admin", "Sup3rG00dP@azzword")
// или
> db.createUser("admin", "Sup3rG00dP@azzword")

В-пятых, для тестирования мне понадобился аналог phpMyAdmin — phpMoAdmin

В-шестых, я подыскал библиотеки для Codeigniter (обе работают ):
Active Record Library — https://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2
Session Library — https://github.com/sepehr/ci-mongodb-session

Если вдруг у вас возникает ошибка подключения к MongoDB ( Unable to connect to MongoDB: Failed to connect to: localhost:27017: Permission denied ), но сама Mongo при этом работает (вы можете зайти в консоль), все установлено (вы видите упоминания mongo при выводе php -i | grep mongo), то у вас, как и у меня, может быть включен SELinux. В этом случае для дальнейшей работы Mongo вам надо выполнить следующие команды:

# setsebool httpd_can_network_connect 1
# setsebool httpd_can_network_connect_db 1

На этом все спасибо, надеюсь чем-то помог.

Полезно(1)Бесполезно(0)
Комментарии закрыты.