Недавно в силу обстоятельств пришлось столкнуться с 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
На этом все спасибо, надеюсь чем-то помог.

