Как настроить Apache 2.2 для Ruby on Rails в Windows?

Я пытаюсь начать писать некоторые приложения Ruby on Rails и успешно работал с Mongrel, но я хотел бы развернуть свои приложения на свой экземпляр Apache 2.2 в Windows? Все обучающие программы, которые я нашел, выглядят устаревшими и предназначены для более старых версий Apache/Rails.

Кто-нибудь знает о хорошем текущем учебнике по настройке Apache 2.2 для приложений Ruby on Rails?

Ответ 1

РЕДАКТИРОВАТЬ: По крайней мере, пока не появится Phusion Passenger for Win, Apache + Mongrel - это путь. Вы можете использовать Apache + FastCGI без Mongrel, но при реальных нагрузках вы получите (более) процессы зомби и (более) утечки памяти.

Вы также можете посмотреть проксирование на Thin таким же образом, как описано ниже. Тем не менее, у меня были некоторые неустойчивости с Thin on Win, хотя это заметно быстрее. AB (Apache Benchmark) - ваш друг здесь!

Настройка Apache + Mongrel в Windows существенно не отличается от * nix.

По сути, вам нужно прокси-запросы, поступающие в Apache в Mongrel. Что это сводится к чему-то вроде этого:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost localhost:80>
    ServerName www.myapp.comm
    DocumentRoot "C:/web/myapp/public"
    ProxyPass / http://www.myapp.com:3000/
    ProxyPassReverse / http://www.myapp.com:3000/
    ProxyPreserveHost On
</VirtualHost>

Вставьте это в свой httpd.conf (или httpd-vhost.conf, если вы его включите).

Предполагается, что вы собираетесь запускать mongrel на порту 3000, ваш Rails-корневой каталог находится в C:\web\myapp, и вы получите доступ к приложению на веб-сайте www.myapp.com.

Запустить приложение rails в рабочем режиме:

mongrel_rails start -p 3000 -e production

И прочь вы идете (на самом деле mongrel по умолчанию на порт 3000, чтобы вы могли пропустить -p 3000, если хотите).

Основное различие заключается в том, что вы не можете демонтировать mongrel в Windows (т.е. запустите его в фоновом режиме). Вместо этого вы можете установить его как услугу с помощью драгоценного камня mongrel_service.

Кроме того, запуск кластера более сложный, и вы не сможете использовать Capistrano. Дайте мне знать, если вы хотите получить дополнительную информацию.

Ответ 2

Я новичок в RoR и пытаюсь сделать то же самое на Windows Server 2008, вот некоторые дополнительные примечания о том, как получить mongrel в качестве сервиса:

если вы получаете ошибки компиляции при установке mongrel_service:

gem install mongrel_service

попробуйте использовать двоичный файл, указав свою платформу:

gem install mongrel_service --platform x86-mswin32

Кроме того, для фактической установки службы вам необходимо запустить эту команду в каталоге каталога RoR:

mongrel_rails service::install --name MyApp -e production -p 3001 -a 0.0.0.0

(или удалить:

mongrel_rails service::remove --name MyApp

)

Затем вы можете запустить/остановить приложение "MyApp" на панели управления службами Windows.

Надеюсь, что это поможет кому-то.

Ответ 3

В настоящий момент Mongrel не работает должным образом с Ruby 1.9 и будет вызывать ошибку msvcrt-ruby18.dll не найденной при выполнении команды mongrel_rails.

Тонкий в этом случае, по-видимому, сейчас единственный вариант.

Ответ 4

Я просто хотел добавить эту статью в список. В нем объясняется, как использовать Apache для рубиновых файлов без необходимости установки каких-либо других приложений.

http://editrocket.com/articles/ruby_apache_windows.html

Ответ 5

Возможно, вы захотите попробовать Bitnami RubyStack