Построение RoR-сервера и поддержка Capistrano
Я создавал веб-сайт на Ruby on Rails и буду размещать его у друга. У него достаточно места и возможностей для размещения сервера, а у меня есть система, которая должна быть выделенным сервером. И это моя первая попытка на сайте Rails, а также хостинг с другом.
Я буду форматировать и готовить сервер сегодня и завтра со следующей конфигурацией программного обеспечения:
- Apache2
- Phusion Passenger (он же mod_rails)
- Ruby Enterprise Edition
- MySQL 5
У меня есть ряд вопросов, и я прошу прощения за их сложность. Я еще не нашел руководства по этой конфигурации, и, будучи новичком в Rails, у меня еще не было опыта, чтобы пройти через это.
Какая сборка Linux наиболее рекомендуется для этой конфигурации?
Я планировал развернуть на CentOS. Предостережение заключается в том, что я был пользователем Windows с ранних лет и использовал только Linux в качестве веб-хостинга и очень мало команд разработки (таких как CVS). Таким образом, мое знание Linux довольно мало, а мой опыт меньше. Если я столкнусь с какими-либо препятствиями при развертывании, техническими особенностями, связанными с дистрибутивом Linux, или чем-то в этом роде... Я полностью выхожу из себя.
Это включает в себя такие вещи, как создание чего-либо из исходного кода.
Как настроить Capistrano на моем сервере для удаленного развертывания?
Я знаю, что это оксюморон (Capistrano на стороне клиента, а не на стороне сервера), но я не знаю, что ему нужно на сервере. Нужен ли FTP? SFTP? SSL? SSH? Какие?
Что я настраиваю на своем сервере, и как я могу настроить это, чтобы Capistrano работал гладко?
Кроме того, как я могу отнести Capistrano к тому факту, что мой SCM находится на локальном хосте Mercurial? (Я использовал TortoiseMg.) Я мог бы конвертировать в SVN и, возможно, настроить репозиторий на сервере, но я не совсем уверен, как это сделать.
Какова самая большая загвоздка, которую вы наблюдаете при развертывании от разработки на локальном хосте до развертывания на совершенно другой ОС?
Разнообразный
Почему бы тогда не развернуть Windows? Потому что я оплачиваю счет и не хочу платить за другую копию XP или, возможно, 2000; Я отказываюсь использовать Vista. Кроме того, Linux гораздо безопаснее, чем Windows, для серверной среды.
Почему бы не прочитать существующие руководства? Я; это мой первый сайт с Ruby on Rails, мой бюджет сейчас находится в области, где нет двузначных цифр, и я пытаюсь расширить свои горизонты, выполнив настройку сервера и удаленное развертывание (для дальнейшей разработки сайта) с помощью себя. Раньше я полагался на хосты для своих веб-сайтов PHP, но они намного более однородны в своей конфигурации. Серверы Ruby для меня очень дороги, и мне непросто узнать их конфигурацию.
3 ответа
Какая сборка Linux наиболее рекомендуется для этой конфигурации?
Любой из дистрибутивов будет работать нормально, если на них может работать Apache2 (а это почти все), и вы можете установить Passenger (вместе с ruby и rails). Я лично использую CentOS и считаю, что его менеджер пакетов смехотворно прост в использовании ( ням).
yum install -y httpd ruby
gem install rails passenger
Тогда все, что вам нужно сделать, это небольшая конфигурация в /etc/httpd/conf/httpd.conf
добавить Пассажира (следуя установочному файлу Пассажира passenger-install-apache2-module
) и укажите его в папке развертывания .../app_name/current/public
,
Поскольку вы используете Passenger, вы должны переопределить задачу перезапуска, чтобы работать на нее.
config/deploy.rb
namespace :deploy do
desc "Restart Application"
task :restart, :roles => :app do
run "touch #{current_path}/tmp/restart.txt"
end
end
Как настроить Capistrano на моем сервере для удаленного развертывания?
Все, что нужно Capistrano, - это доступ по SSH с достаточными разрешениями для развертывания, миграции, перезапуска сервера приложений и т. Д. Просто следуйте руководству по началу работы на веб-сайте Capistrano, и вы сразу же приступите к работе.
Capistrano необходим доступ к вашему SCM, вам нужно разрешить ему подключаться к вашей машине. Все, что Capistrano делает, это извлекает ваш код в папку релизов, перемещает символическую ссылку из старой версии и перезапускает сервер приложений.
Какова самая большая загвоздка, которую вы наблюдаете при развертывании от разработки на локальном хосте до развертывания на совершенно другой ОС?
Самая большая проблема связана с миграциями, тестированием, тестированием, тестированием и тестированием их еще. Ошибка в вашем приложении легко исправить и повторно развернуть, но ошибка в вашей миграции может привести к огромной боли в заднице с возможностью потери данных.
Я нашел статьи, размещенные на Slicehost.com (хостинговая компания VPS), очень полезными.
Полный список статей находится по адресу: http://articles.slicehost.com/sitemap. Там вы найдете ряд статей, связанных с производственным развертыванием приложения Ruby on Rails.
Я рекомендую использовать Ubuntu server и deprec, так как он предоставляет массу рецептов sysadmin, которые делают вещи еще проще.