Построение RoR-сервера и поддержка Capistrano - PullRequest
0 голосов
/ 26 января 2009

Я создаю сайт с 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 находится на localhost и Mercurial? (Я использовал TortoiseMg.) Я мог бы конвертировать в SVN и, возможно, настроить хранилище на сервере, но я не совсем уверен, как это сделать.

Какая самая большая загвоздка, которую вы наблюдаете при развертывании с разработки на локальном хосте, при развертывании на совершенно другой ОС?

Разное

Почему бы тогда не развернуться в Windows? Поскольку я оплачиваю счета и не хочу платить за другую копию XP или, возможно, 2000; Я отказываюсь использовать Vista. Кроме того, Linux намного безопаснее, чем Windows, для серверной среды.

Почему бы не прочитать существующие руководства? Я; это мой первый сайт с Ruby on Rails, мой бюджет теперь находится в области, где нет двузначных цифр, и я пытаюсь расширить свои горизонты, выполнив настройку сервера и удаленное развертывание (для дальнейшей разработки сайта) с помощью себя. В прошлом я полагался на хосты для своих веб-сайтов PHP, но они намного более однородны в своей конфигурации. Серверы Ruby для меня очень дороги, и мне непросто узнать их конфигурацию.

Ответы [ 3 ]

1 голос
/ 26 января 2009

Какая сборка Linux наиболее рекомендуется для этой конфигурации?

Любой из дистрибутивов будет работать нормально, если он может работать с Apache2 (а это почти все из них) и вы можете установить Passenger (вместе с ruby ​​и rails). Я лично использую CentOS и считаю, что его менеджер пакетов невероятно прост в использовании ( yum ).

yum install -y httpd ruby
gem install rails passenger

Затем все, что вам нужно сделать, - это небольшая конфигурация в /etc/httpd/conf/httpd.conf, чтобы добавить Passenger (после установочного файла для Passenger 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 делает, это извлекает ваш код в папку релизов, перемещает символическую ссылку из старой версии и перезапускает сервер приложений.

Какую самую большую сложность вы наблюдаете при развертывании с разработки на локальном хосте при развертывании на совершенно другой ОС?

Самая большая загвоздка связана с миграциями, тестируйте, тестируйте, тестируйте и тестируйте их еще немного. Ошибка в вашем приложении легко исправить и повторно развернуть, но ошибка в вашей миграции может привести к огромной боли в заднице с возможностью потери данных.

1 голос
/ 26 января 2009

Статьи, размещенные на Slicehost.com (хостинговая компания VPS), оказались довольно полезными.

Полный список статей: http://articles.slicehost.com/sitemap. Там вы найдете ряд статей, связанных с производственным развертыванием приложения Ruby on Rails.

0 голосов
/ 24 августа 2009

Я рекомендую использовать сервер Ubuntu и deprec , так как он предоставляет массу рецептов сисадмина, которые делают вещи еще проще.

...