Создание сервера RoR и поддержка Capistrano
-
20-08-2019 - |
Вопрос
Я создаю веб-сайт с помощью Ruby on Rails и буду размещать его через друга.У него есть место и возможности для размещения сервера, а у меня есть система, которую я могу выделить в качестве выделенного сервера.И это моя первая попытка создать веб-сайт Rails, плюс хостинг с другом.
Сегодня и завтра буду форматировать и готовить сервер со следующей конфигурацией ПО:
- Апач2
- Phusion Passenger (он же mod_rails)
- Рубиновый выпуск Enterprise
- MySQL 5
У меня есть ряд вопросов, и я прошу прощения за их сложность.Я еще не нашел руководства для этой конфигурации, и, поскольку я новичок в Rails, у меня еще нет опыта, чтобы разобраться в этом.
Какая сборка Linux наиболее рекомендуется для этой конфигурации?
Я планировал развернуть на CentOS.Предостережение заключается в том, что я являюсь пользователем Windows с первых дней своей жизни и использовал Linux только в качестве веб-хостинга и очень мало команды разработки (например, CVS).Таким образом, мои знания о Linux довольно малы, а мой опыт меньше.Если я столкнусь с какими-либо трудностями при развертывании, техническими особенностями дистрибутива Linux или чем-то в этом роде...Я полностью вывешен, чтобы высохнуть.
Сюда входят такие вещи, как создание чего-либо из исходного кода.
Как настроить Capistrano на моем сервере для удаленного развертывания?
Я знаю, что это оксюморон (Capistrano работает на стороне клиента, а не на стороне сервера), но я не знаю, что ему нужно на сервере.Нужен ли FTP?SFTP?SSL?СШ?Что?
Что мне настроить на своем сервере и как его настроить, чтобы обеспечить бесперебойную работу Capistrano?
Кроме того, как мне сообщить Капистрано о том, что мой SCM находится на локальном хосте и принадлежит Mercurial?(Я использовал TortoiseMg.) Я мог бы преобразовать в SVN и, возможно, настроить репозиторий на сервере, но я не совсем уверен, как это сделать.
На что вы обращаете внимание при развертывании с локальной разработки на совершенно другую ОС?
Разнообразный
Почему бы тогда не выполнить развертывание в Windows? Потому что я оплачиваю счета и не хочу платить за еще одну копию XP или, возможно, 2000;Я отказываюсь использовать Vista.Кроме того, Linux гораздо более безопасен для серверной среды, чем Windows.
Почему бы не прочитать существующие руководства? Я;это мой первый сайт с Ruby on Rails, мой бюджет сейчас измеряется менее чем двузначными цифрами, и я пытаюсь расширить свой кругозор, выполняя настройку сервера и удаленное развертывание (для дальнейшего развития сайта) с помощью сам.Раньше я полагался на хосты для своих PHP-сайтов, но они гораздо более однородны по своей конфигурации.Серверы Ruby стоят дорого, для меня непомерно дорого, и узнать их конфигурацию не помешало бы.
Решение
Какая сборка 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 необходим доступ к вашему SCM, вам нужно будет разрешить ему подключение к вашей машине.Все, что делает Capistrano, — это извлекает ваш код в папку выпуска, перемещает символическую ссылку из старой версии и перезапускает сервер приложений.
На что вы обращаете внимание при развертывании с локальной разработки на совершенно другую ОС?
Самая большая загвоздка связана с миграциями: тестируйте, тестируйте, тестируйте и тестируйте еще раз.Ошибку в вашем приложении легко исправить и повторно развернуть, но ошибка в вашей миграции может закончиться огромной головной болью с возможностью потери данных.
Другие советы
Я нашел статьи, опубликованные на Slicehost.com (компания, предоставляющая VPS-хостинг), весьма полезными.
Полный список статей находится по адресу: http://articles.slicehost.com/sitemap .Там вы найдете ряд статей, посвященных производственному развертыванию приложения Ruby on Rails.
Я рекомендую использовать сервер Ubuntu и устаревший, поскольку он предоставляет массу рецептов для системного администратора, которые еще больше упрощают работу.