Как мне настроить Apache 2.2 для Ruby on Rails в Windows? - PullRequest
10 голосов
/ 29 сентября 2008

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

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

Ответы [ 5 ]

13 голосов
/ 29 сентября 2008

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

Вы также можете посмотреть прокси на Тонкий так же, как подробно описано ниже. Тем не менее, у меня были некоторые нестабильности с 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

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

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

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

3 голосов
/ 30 марта 2010

Я новичок в 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.

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

2 голосов
/ 22 апреля 2010

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

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

1 голос
/ 14 декабря 2013

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

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

0 голосов
/ 16 мая 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...