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

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

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


person Owen    schedule 29.09.2008    source источник
comment
возможный дубликат Как установить Ruby on Rails вместе с WampServer?   -  person T.Todua    schedule 16.07.2014


Ответы (5)


РЕДАКТИРОВАТЬ: По крайней мере, пока не будет Phusion Passenger для 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. Дайте мне знать, если вам нужна дополнительная информация.

person Dave Nolan    schedule 29.09.2008
comment
Это то, как приложения Ruby on Rails обычно развертываются на Apache? Я подумал, что их можно будет развернуть прямо на Apache без использования Mongrel. - person Owen; 29.09.2008
comment
Я думаю, что так и есть - по крайней мере, до тех пор, пока не появится Phusion Passenger for Win. Вы можете использовать Apache + FastCGI без Mongrel, но при реальных нагрузках вы получите (больше) зомби-процессов и (больше) утечек памяти. - person Dave Nolan; 29.09.2008
comment
Вы также можете посмотреть на проксирование в Thin (code.macournoyer.com/thin) таким же образом. . Однако у меня были некоторые нестабильности с Thin on Win, хотя это заметно быстрее. AB (тест apache) - ваш друг! - person Dave Nolan; 29.09.2008
comment
Mongrel еще не поддерживает Rails 3 :-( - person Amir; 21.12.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.

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

person danny    schedule 30.03.2010

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

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

person muloka    schedule 22.04.2010
comment
Mongrel 1.2.0.pre2, похоже, хорошо работает с Ruby 1.9. Установить через: gem install mongrel --prerelease - person gerard; 11.06.2011

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

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

person aviemet    schedule 13.12.2013

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

person Kokizzu    schedule 16.05.2013