Установка MongoDB и Ruby
В данной статье мы рассмотрим следующие моменты:
- Установка Ruby используя RVM
- Установка MongoDB
- Конфигурация MongoDB
Для начала определим минимальные системные требования для установки Ruby и MongoDB. Нам понадобится сверхмощный сервер? Нет! Наоборот любая стандартная рабочая станция или ноутбук подойдут для установки Ruby и MongoDB. Убедитесь, что у вас есть по крайней мере 1 ГБ памяти и более 32 Гб дискового пространства. Какая операционная система? Ruby и MongoDB обе кросс-платформенно совместимые системы. Это означает, что они могут работать на любой ОС Linux (например Ubuntu, Red Hat, Fedora, Gentoo, и SuSE), Mac OS (например Leopard, Snow Leopard, и Lion) или Windows (например XP, 2000, и 7).
Если вы планируете использовать Ruby и MongoDB профессионально, рекомендую использовать Mac OS или Linux. Далее будут представлены детальные инструкции с примерами для Ubuntu или Mac OS. Для хостинга баз данных MongoDB, я лично рекомендую использовать Linux.
Установка Ruby
Я рекомендую использовать RVM (Ruby Version Manager) для установки Ruby.
Использование RVM на Linux или Mac OS
В Linux или Mac OS, вы можете запустить команду, чтобы установить RVM следующим образом:
1 2 |
curl -L get.rvm.io | bash -s stable source ~/.rvm/scripts/'rvm' |
После успешного выполнения команды вы можете проверить:
1 |
rvm list known |
Если вы успешно установили RVM, то предыдущая команда должна показать вам весь список Ruby. Вы заметите, что есть довольно много реализаций Ruby (MRI Ruby, JRuby, Rubinius, REE, и другие). Мы собираемся установить MRI Ruby.
Вот, что вы увидите, если вы успешно выполнили предыдущую команду:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
$ rvm list known # MRI Rubies [ruby-]1.8.6[-p420] [ruby-]1.8.6-head [ruby-]1.8.7[-p352] [ruby-]1.8.7-head [ruby-]1.9.1-p378 [ruby-]1.9.1[-p431] [ruby-]1.9.1-head [ruby-]1.9.2-p180 [ruby-]1.9.2[-p290] [ruby-]1.9.2-head [ruby-]1.9.3-preview1 [ruby-]1.9.3-rc1 [ruby-]1.9.3[-p0] [ruby-]1.9.3-head ruby-head # GoRuby goruby # JRuby jruby-1.2.0 jruby-1.3.1 jruby-1.4.0 jruby-1.6.1 jruby-1.6.2 jruby-1.6.3 jruby-1.6.4 jruby[-1.6.5] jruby-head # Rubinius rbx-1.0.1 rbx-1.1.1 rbx-1.2.3 rbx-1.2.4 rbx[-head] rbx-2.0.0pre # Ruby Enterprise Edition ree-1.8.6 ree[-1.8.7][-2011.03] ree-1.8.6-head ree-1.8.7-head # Kiji kiji # MagLev maglev[-26852] maglev-head # Mac OS X Snow Leopard Only macruby[-0.10] macruby-nightly macruby-head # IronRuby -- Not implemented yet. ironruby-0.9.3 ironruby-1.0-rc2 ironruby-head |
Прежде чем приступить к установке Ruby необходимо настроить RVM пакеты необходимые для установки. Установим стандартные пакеты необходимые для Ruby, выполним следующие команды:
1 2 3 4 |
rvm package install readline rvm package install iconv rvm package install zlib rvm package install openssl |
Предыдущие команды установят некоторые полезные библиотеки для всех Ruby. Эти библиотеки облегчают работу с командной строкой, интернационализации, сжатия, и SSL. Вы можете установить эти пакеты, даже после установки Ruby, но просто проще установить их в первую очередь.
1 |
rvm install 1.9.3 |
Предыдущая команда установит Ruby 1.9.3. Тем не менее, при установке Ruby, мы можем предварительно настроить его установку. Итак, вот как мы это делаем:
1 2 |
export rvm_path=~/.rvm rvm install 1.9.3 --with-readline-dir=$rvm_path/usr --with-iconvdir=$rvm_path/usr --with-zlib-dir=$rvm_path/usr --with-openssl-dir=$rvm_path/usr |
Таким образом мы установим в ручную настроенный Ruby 1.9.3. Мы должны увидеть нечто похожее на следующее на нашем экране:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
rvm install 1.9.3 Installing Ruby from source to: /Users/user/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)... ruby-1.9.3-p0 - #fetching ruby-1.9.3-p0 - #downloading ruby-1.9.3-p0, this may take a while depending on your connection... ... ruby-1.9.3-p0 - #extracting ruby-1.9.3-p0 to /Users/user/.rvm/src/ruby-1.9.3-p0 ruby-1.9.3-p0 - #extracted to /Users/user/.rvm/src/ruby-1.9.3-p0 ruby-1.9.3-p0 - #configuring ruby-1.9.3-p0 - #compiling ruby-1.9.3-p0 - #installing ... Install of ruby-1.9.3-p0 - #complete |
Для автоматической загрузки RVM после перезагрузки машины добавим в наш профиль следующую запись:
1 2 |
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile |
Настройка RVM для проекта
Настройка RVM для проекта может быть сделана следующим образом:
1 |
rvm –create –rvmrc use 1.9.3%myproject |
Предыдущая команда позволяет настроить gemset для нашего проекта, создается файл .rvmrc и мы получаем собственное рабочее пространство.
Gemset, как следует из названия, представляет собой набор, который загружаются для конкретной версии Ruby или проекта. Таким образом мы можем иметь несколько наборов для версий.
1 |
cd /path/to/myproject Using ruby 1.9.2 p180 with gemset myproject |
Установка MongoDB
MongoDB набор исполняемых файлов и библиотек, упакованных в архив. Все, что вам нужно сделать, это загрузить и распаковать архив. Что может быть проще?
В Mac OS, у вас есть два популярных менеджеров пакетов Homebrew и MacPorts. Если вы используете Homebrew, просто выполните следующую команду:
1 |
brew install MongoDB |
Если вы не установлен brew, настоятельно рекомендуется установить его.
Вот ручной способ установки MongoDB на любой Linux, Mac OS, или машины с Windows:
1 Скачать MongoDB из http://www.mongodb.org/downloads.
2 Извлеките файл .tgz в папку (желательно по системному пути).
На любой Linux, вы можете выполнить следующие команды, чтобы загрузить и установить. Убедитесь что вы добавили путь /path/to/MongoDB/bin в переменную $PATH.
1 2 3 4 5 |
cd /usr/local/ curl http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.2.tgz > mongo.tgz tar xf mongo.tgz ln –s mongodb-linux-i686-2.0.2 MongoDB |
Для Windows, вы можете просто скачать файл ZIP и извлечь его в папку.
Настройка сервера MongoDB
Прежде чем запустить mongodb сервер необходимо его настроить: путь где будут храниться данные, интерфейс для прослушивания и т.д. Все эти конфигурации хранятся в mongod.conf. Mongod.conf по умолчанию выглядит следующим образом и хранится, где установлена в MongoDB нашем случае /usr/local/mongodb:
1 2 3 4 |
# Store data in /usr/local/var/mongodb instead of the default /data/db dbpath = /usr/local/var/mongodb # Only accept local connections bind_ip = 127.0.0.1 |
DBPATH указывает путь, где будут храниться данные. bind_ip это интерфейс, на котором сервер будет работать.
Запуск MongoDB
Мы можем запустить сервер MongoDB с помощью следующей команды:
1 |
sudo mongod --config /usr/local/mongodb/mongod.conf |
Обратите внимание, если вы не укажите опцию —config, по умолчанию dbpath будет установлен в /data/db.
При запуске сервера, если все хорошо, вы должны увидеть примерно следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
sudo mongod --config /usr/local/mongodb/mongod.conf Sat Sep 10 15:46:31 [initandlisten] MongoDB starting : pid=14914 port=27017 dbpath=/usr/local/var/mongodb 64-bit Sat Sep 10 15:46:31 [initandlisten] db version v2.0.2, pdfile version 4.5 Sat Sep 10 15:46:31 [initandlisten] git version: c206d77e94bc3b65c76681df5a6b605f68a2de05 Sat Sep 10 15:46:31 [initandlisten] build sys info: Darwin erh2.10gen. cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40 Sat Sep 10 15:46:31 [initandlisten] journal dir=/usr/local/var/mongodb/ journal Sat Sep 10 15:46:31 [initandlisten] recover : no journal files present, no recovery needed Sat Sep 10 15:46:31 [initandlisten] waiting for connections on port 27017 Sat Sep 10 15:46:31 [websvr] web admin interface listening on port 28017 |
Кратко, что значат эти записи:
- Сервер запущен с pid 14914 на порту 27017 (порт по умолчанию)
- Версия MongoDB сервера — 2.0.2
- Путь к файлу журналов /usr/local/var/mongodb/journal
- Web админ консоль запущена на 28017 порту
Есть много параметров командной строки, которые позволяют нам использовать MongoDB различными способами.
Например:
- —jsonp разрешает JSONP доступ.
- —rest включает REST API.
- Master/Slave, варианты репликации, параметры совместного доступа.
Остановка MongoDB сервера
Нажмите Ctrl + C, если процесс запущен на переднем плане. Если он работает в качестве демона, он имеет
его стандартный сценарий запуска и остановки. На таких Linux системах как Ubuntu есть скрипты запуска остановки mongod демона. На Mac у вас есть launchd и launchct комманды для запуска и остановки служб. Для других ОС Linux скрипты запуска и остановки Вы можете найти в каталоге /etc/init.d. На Windows используйте стандартную панель Control Panel для управления сервисами.