Настройка Web-сервера

Нужна помощь?


Вы всегда можете задать вопрос нашему специалисту и мы постараемся Вам помочь!

Настройка локальной машины Ubuntu для Ruby on Rails

Итак, вы хотите разработать приложения Ruby on Rails.

Этот урок расскажет все шаги по настройке локальной машины Ubuntu для Ruby on Rails. Вторая часть этой обучающей программы поможет вам настроить Ubuntu VPS. Пока достаточно знать, что VPS ставят для виртуальных частных серверов. Он способен разместить ваш разработанный Ruby on Rails. Но давайте для начала сосредоточимся на локальной машине.

Что такое Ruby on Rails и Ubuntu?

Ruby on Rails среда веб-разработки, которая позволяет вам создавать веб-приложения, используя язык программирования Ruby. Как сообщает официальный сайт: «Ruby on Rails веб-фреймворк с открытым исходным кодом, оптимизированный для удобства программистов и высокой производительности».

Ubuntu, тем временем, «Debian-derived дистрибутив Linux, ориентированный на удобство использования». В течение последних лет, это был самый популярный дистрибутив Linux. Еще лучше, что Ruby on Rails и Ubuntu – являются продуктами с открытым исходным кодом, следовательно, бесплатны для использования.

Краткая информация

В этом руководстве мы установим Ruby и RubyGems, используя скрипт Ruby Version Manager (RVM). И установим Rails и Capistrano, с помощью RubyGems. Также машина будет обладать функцией контроля версии, предоставляемой Git и базой данных PostgreSQL. Будет принимать свежеустановленную Ubuntu и подключение к Интернету – эти шаги должны работать на большинстве (Debian и Ubuntu основе) дистрибутивов Linux.

На момент написания этой статьи, последние версии Ubuntu 10.10, Ruby 1.9.2 и Rails 3.0.7. Руководство также было протестировано на Ubuntu 10.04 и предстоящих выпуску Ubuntu 11.04.

В этом руководстве мы будем часто использовать командную строку Linux. Поэтому я добавил небольшой глоссарий в конец статьи, описывающий необходимые команды Linux.

Обновление

Для начала, давайте обновимся. Зайдите в свой компьютер в качестве пользователя с правами администратора (или sudo) и откройте окно терминала. Команды, представленные ниже, должны быть введены в этом окне терминала. Знак доллара ($) идентификатор командной строки, далее наберите команду и нажмите «Enter».

Первые три команды обновят списки пакетов, обновят уже установленные пакеты, а также установят новые пакеты и удалят устаревшие. Это полностью обновит вашу машину. Последняя команда перезагрузит компьютер, что стоит делать после обновления большого количества пакетов.

1
2
3
4
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo reboot
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo reboot

Подготовьте свою машину для пакетов RVM

После перезагрузки, снова войдите в систему и откройте окно терминала. Скрипт RVM требует установки некоторых пакетов, а именно, Curl и Git. Curl – инструмент для передачи данных с использованием целого ряда протоколов (таких как HTTP и FTP). Git является свободным программным обеспечением с открытым исходным кодом, разработанная для обработки маленьких и крупных проектов с высокой скоростью и эффективностью. Git – лучший выбор для контроля версии среди большинства разработчиков Ruby on Rails.

1
2
$ sudo apt-get install curl
$ sudo apt-get install git-core
$ sudo apt-get install curl
$ sudo apt-get install git-core

Настройка Git

Git будет использоваться скриптом RVM, и мы воспользуемся им во второй части данного руководства. Итак, после установки пакетов, давайте уделим временя, для настройки Git. Настроить его несложно: достаточно указать имя пользователя и адрес электронной почты.

1
2
$ git config --global user.name "Your Name"
$ git config --global user.email your-email@address.com
$ git config --global user.name "Your Name"
$ git config --global user.email your-email@address.com

Например:

1
2
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@mail.com
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@mail.com

Установите RVM

Теперь мы можем установить RVM. RVM расшифровывается как Ruby Version Manager и является инструментом командной строки, который позволяет легко устанавливать, управлять и работать с несколькими средами Ruby, от переводчика до набора Gems. Следующая команда устанавливает скрипт. RVM будет установлен в корневой каталог текущего пользователя.

1
$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

Перейдите в корневой каталог и отредактируйте профиль bash. Это гарантирует, что скрипт RVM будет загружаться каждый раз, при входе соответствующего пользователя в систему. Для редактирования bash профиля мы будем использовать Nano. Nano – простой редактор текста командной строки, мы будем использовать его снова.

1
2
$ cd
$ nano .bashrc
$ cd
$ nano .bashrc

Добавьте следующую строку в конец профиля bash. После внесенных изменений, сохраните файл, нажав CTRL+O, и выйдите из Nano, нажав CTRL+X. Если вы захотите выйти из Nano, не сохраняя изменения, нажмите CTRL+X, а затем N.

1
[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

Вручную загрузите скрипт в текущем сеансе с помощью следующей команды и откройте новое окно терминала. Таким образом, команда RVM будет доступна.

1
$ source .bashrc
$ source .bashrc

Вы можете проверить будет ли скрипт RVM работать, введя следующую команду:

1
$ type rvm | head -1
$ type rvm | head -1

Если все настроено правильно, то оболочка RVM должна вернуться. Если этого не произойдет, перейдите на веб-сайт RVM и посмотрите в разделе «Troubleshooting your install».

Подготовьте свою машину для Ruby и RubyGems

RVM поставляется с удобной комплектацией для просмотра зависимостей, которые необходимы чтобы скомпилировать и установить Ruby и RubyGems из исходников.

1
$ rvm notes
$ rvm notes

Рассмотрите зависимости, перечисленные в обычной версии Ruby, и установите их. Некоторые пакеты возможно быдут уже установлены.

1
$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev
$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev

Установите Ruby и RubyGems, используя RVM

Во-первых, у нас есть Ruby – динамичный, общедоступный язык программирования с упором на простоту и производительность. У него изящный синтаксис, который прост для чтения и легок в написании.

Во-вторых, у нас есть RubyGems – это упаковочная система Ruby. Она помогает Ruby в распространении программ и библиотек, а также является инструментом для управления установкой пакетов Gem, и сервисных утилит Gem с любого компьютера, на котором установлен RubyGems. Включает в себя стандартный способ публикации пакетов Gem.

Помимо команды RVM, описанной выше, существует также команда, позволяющая просматривать доступные для установки версии Ruby, с помощью RVM. Посмотрите на доступные версии Ruby, используя эту команду:

1
$ rvm list known
$ rvm list known

Установите последнюю версию Ruby. Поскольку она компилируется из исходника, то этот шаг может занять некоторое время.

1
$ rvm install 1.9.2
$ rvm install 1.9.2

Запустите установленную Ruby и установите ее по умолчанию.

1
$ rvm --default use 1.9.2
$ rvm --default use 1.9.2

Проверьте версии Ruby и RubyGemms, для того чтобы убедиться, что они были должным образом установлены.

1
2
$ ruby -v
$ gem -v
$ ruby -v
$ gem -v

При необходимости вручную обновите RubyGems и возможно Gems.

1
2
$ gem update --system
$ gem update
$ gem update --system
$ gem update

Установите Rails, используя RubyGems

Rails Gem – это все, что осталось установить на Ruby, чтобы поставить Rails. Его установка одна из простых частей данного руководства. Он устанавливается с помощью RubyGems, вызываемого командой gem. По окончанию установки, проверьте версию Rails, чтобы убедиться были ли Rails правильно установлены.

1
2
$ gem install rails
$ rails -v
$ gem install rails
$ rails -v

Установите Capistrano, используя RubyGems

Capistrano – общедоступный инструмент для запуска скриптов на нескольких серверах. Его основное применение – развертывание веб-приложений. Он автоматизирует процесс создания новой версии приложения, доступного на одном или нескольких веб-серверов, в том числе вспомогательные задачи, такие как изменение базы данных. Вы можете установить Capistrano, используя RubyGems. Проверьте версию Capistrano, чтобы убедиться в правильности установки.

1
2
$ gem install capistrano
$ cap -V
$ gem install capistrano
$ cap -V

Установите PostgreSQL

PostgreSQL – сложная объектно-реляционная СУБД (система управления базами денных), поддерживающая почти все конструкции SQL, включая подзапросы, транзакции и определяемые пользователем типы и функции. Установите PosrgreSQL вместе с зависимостью. Эта зависимость нужна, чтобы позже установить pg Gem, который отвечает за связь между PostgreSQL и Ruby on Rails.

1
$ sudo apt-get install postgresql libpq-dev
$ sudo apt-get install postgresql libpq-dev

Настройка PostgreSQL

Когда пакеты будут установлены, переходите к настройке PostgreSQL, обеспечение PSQL. PSQL является интерактивным терминалом PostgreSQL, и используется для задач администрирования баз данных.

По умолчанию PSQL не требует пароль для входа. Мы изменим это, редактируя опознавательный метод, а затем перезагружая конфигурацию PostgreSQL. Но сначала изменим пароль для суперпользователя postgres. Войдите в PSQL, назначьте безопасный пароль для postgres, а затем выйдите из PSQL.

1
2
3
$ sudo -u postgres psql
# \password postgres
# \q
$ sudo -u postgres psql
# \password postgres
# \q

Теперь изменим конфигурацию проверки подлинности, изменяя ident для md5. В конце файла конфигурации для гарантии зашифрованности пароля можно найти две соответствующие строки, которые должны быть отредактированы. После перезагрузите измененную конфигурацию в PostgreSQL.

1
2
$ sudo nano /etc/postgresql/8.4/main/pg_hba.conf
$ sudo /etc/init.d/postgresql reload
$ sudo nano /etc/postgresql/8.4/main/pg_hba.conf
$ sudo /etc/init.d/postgresql reload

Большинство других настроек PostgreSQL хранятся в другом файле конфигурации. Эти настройки тоже могут быть оптимизированы, но это выходит за рамки данного руководства. Имейте в виду, для того чтобы изменения вступили в силу, конфигурацию PostgreSQL нужно перезагрузить.

1
$ sudo nano /etc/postgresql/8.4/main/postgresql.conf
$ sudo nano /etc/postgresql/8.4/main/postgresql.conf

Установка локальной машины завершена.

Тестирование установки

Чтобы убедиться, что все работает, давайте создадим небольшое приложение и посмотрим на Ruby on Rails в действии. Этот процесс включает следующие шаги:
1. Создайте пользователя базы данных для тестового приложения.
2. Создайте базу данных для тестового приложения.
3. Создайте тестовое приложение с использованием PostgreSQL в качестве базы данных.
4. Установите необходимые Gems для тестового приложения.
5. Сконфигурируйте соединение с базой данных для тестового приложения.
6. Сгенерируйте простой базовый интерфейс для тестового приложения.
7. Переместите результаты базового интерфейса для приложений теста баз данных.
8. Запустите встроенный сервер.
9. Проверьте тестовое приложение в веб-браузере.
10. Остановите встроенный сервер.

После того, как мы убедились, что все работает, переходим к следующим шагам:
1. Удалите базу данных для тестового приложения.
2. Удалите пользователя базы данных для тестового приложения.
3. Удалите тестовое приложение.

Все эти шаги должны быть выполнены на локальной машине. Соглашения, используемые для тестирования VPS выглядят следующим образом (имя пользователя базы данных и имя базы данных вытекают из названия приложения):

Вставка 1.1
Name of application: test_app
Name of database user: test_app
Password of database user: apple
Name of database: test_app_development

Во-первых, создайте базу данных пользователя для тестирования приложения с помощью команды createuser. Мы используем postgres в качестве администратора (или суперпользователя) для PosrgreSQL. Флаг P обеспечивает пароль. Знак > обозначает вопросы, которые будут вызваны.

1
2
3
4
5
6
7
8
$ sudo -u postgres createuser -P
> Enter name of role to add: test_app
> Enter password for new role: apple
> Enter it again: apple
> Shall the new role be a superuser? (y/n) n
> Shall the new role be allowed to create databases? (y/n) n
> Shall the new role be allowed to create more new roles? (y/n) n
> Password: your-postgres-user-password
$ sudo -u postgres createuser -P
> Enter name of role to add: test_app
> Enter password for new role: apple
> Enter it again: apple
> Shall the new role be a superuser? (y/n) n
> Shall the new role be allowed to create databases? (y/n) n
> Shall the new role be allowed to create more new roles? (y/n) n
> Password: your-postgres-user-password

Затем создайте базу данных для тестового приложения, которая принадлежит пользователю тестовой программы. Хотя вы можете использовать Rake для создания базы данных, мы будем использовать PostgreSQL, чтобы вы изучили основные администрирования PostgreSQL. Создайте новую базу данных, вызвав команду createdb вместе с флагом O, именем пользователя базы данных и новым именем базы данных непосредственно. Вам будет предложено ввести пароль для суперпользователя.

1
2
$ sudo -u postgres createdb -O test_app test_app_development
> Password: your-postgres-user-password
$ sudo -u postgres createdb -O test_app test_app_development
> Password: your-postgres-user-password

Теперь, когда база данных была создана, настало время для создания фактического приложения Ruby on Rails. Перейдите в свой корневой каталог и создайте новое приложение Rails, с именем test_app, используя PostgreSQL в качестве сервера базы данных. Флаг d позволяет указать предпочтительное программное обеспечение базы данных.

1
2
$ cd
$ rails new test_app -d postgresql
$ cd
$ rails new test_app -d postgresql

Войдите в каталог Rails и установите необходимые Gems, используя Bundler. Bundler работает из упаковки с Rails 3.

1
2
$ cd test_app
$ bundle install
$ cd test_app
$ bundle install

Используйте Nano, чтобы отредактировать конфигурационный файл базы данных, добавляя apple в качестве пароля в конфигурации базы данных. Поскольку мы следовали соглашениям, описанным во вставке 1.1, имя пользователя базы данных и имя базы данных уже имеются.

1
$ nano config/database.yml
$ nano config/database.yml

Теперь сгенерируйте базовый интерфейс. Это позволит создать модель User и контроллер users. Входы будут состоять из имени и адреса электронной почты, которые являются строками в базе данных PosrgreSQL.

1
$ rails generate scaffold User name:string email:string
$ rails generate scaffold User name:string email:string

Используйте Rake для переноса базового интерфейса в базу данных. Rake (аббревиатура Ruby Make) – это простая Ruby, построенная на программе с возможностями Make, которая позволяет вам создавать и перемещать базы данных.

1
$ rake db:migrate
$ rake db:migrate

Пора проверить приложение в веб-браузере. Запустите встроенный сервер и с помошью веб-браузера, перейдите к http://localhost:3000/. Посмотрите на среду приложения, а затем посмотрите на http://localhost:3000/users. Создайте, отредактируйте, просмотрите и удалите несколько пользователей.

1
$ rails server
$ rails server

Если все работает правильно, то вы можете остановить встроенный сервер.

1
$ press CTRL+C
$ press CTRL+C

Когда убедитесь, что все работает, можете удалить базу данных тестового приложения и пользователя базы данных тестового приложения. Команда dropdb удаляет базу данных PostgreSQL.

1
2
$ sudo -u postgres dropdb test_app_development
> Password: your-postgres-user-password
$ sudo -u postgres dropdb test_app_development
> Password: your-postgres-user-password

Команда droupuser удаляет пользователя PostgreSQL.

1
2
3
$ sudo -u postgres dropuser
> Enter name of role to drop: test_app
> Password: your-postgres-user-password
$ sudo -u postgres dropuser
> Enter name of role to drop: test_app
> Password: your-postgres-user-password

Наконец, перейдите в корневой каталог и рекурсивно удалите тестовое приложение. У вас осталась новая локальная машина, готовая к разработке приложений Ruby on Rails.

1
2
$ cd
$ rm -r test_app
$ cd
$ rm -r test_app

Во второй части данного руководства, мы поможем вам пошагово настроить Ubuntu VPS, которая способна размещать несколько приложений Ruby on Rails.

Глоссарий командной строки Linux

Здесь описаны команды Linux, использующиеся в данной обучающей программе. Список в алфавитном порядке и показывает только соответствующие команды Linux. Команда Linux обычно принимает форму command -option(s) argument(s). Например: rm -r test_app. Для более подробного описания, используйте руководство, которое можно получить с помощью man [command].

sudo [command]
Выполняет команду в качестве администратора.

apt-get dist-upgrade
Помимо выполнения функции обновления, используется для обработки зависимостей.

apt-get install [package]
Используется для установки (или обновления) пакетов.

apt-get update
Повторно синхронизирует пакетные индексные файлы из их источников.

apt-get upgrade
Устанавливает новейшие версии всех пакетов, установленных в настоящее время.

bash < <( curl [location] )
Комбинация команд, используемая, чтобы получить и выполнить скрипт (из Интернета).

cd [location]
Изменяет текущий рабочий каталог.

nano [file]
Используется для редактирования конфигурационных файлов.

reboot
Перезагрузка системы.

rm -r [directory]
Удаляет директорию (рекурсивно).

source [script]
Читает указанный скрипт.

type [command]
Отображает вид команд, которые выполняет оболочка.

Только зарегистрированные пользователи могут оставлять комментарии.
Войдите в систему или зарегистрируйтесь