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

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

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

5 ответов


EDIT: по крайней мере, пока нет пассажира Phusion для Win, Apache + Mongrel-это путь. Вы можете использовать Apache + FastCGI без дворняги, но при реальных нагрузках вы получите (больше) зомби-процессов и (больше) утечек памяти.

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

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

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

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 Если вы включаете его).

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

для запуска приложения rails в режиме производства:

mongrel_rails start -p 3000 -e production

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

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

кроме того, запуск кластера сложнее, и вы не сможете использовать Capistrano. Позволить мне знайте, если вам нужна дополнительная информация.


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

если вы получаете ошибки компиляции при установке 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.

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


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

Thin в этом случае кажется единственным вариантом на данный момент.


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

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


вы можете попробовать RubyStack Об