Развертывание Rails на Win32. Лучшие практики: Lighty + Sgci - PullRequest
0 голосов
/ 16 мая 2009

Я получил некоторые действительно замечательные рекомендации от пользователей этого сайта, и я думаю, что некоторые опытные люди из Rails могли бы помочь мне в решении следующей проблемы.

Я пытаюсь развернуть простое приложение Rails на сервере win32.

Я тщательно прорабатывал эти инструкции (см. http://functionalelegant.blogspot.com/2008/05/deploying-rails-on-windows.html) для развертывания приложения Win32 Rails.

Я начал с более-менее чистой установки Windows, затем скачал и установил

  1. рубин
  2. LightTPD
  3. Рельсы
  4. Zed's SCGI Rails Runner
  5. Инструменты комплекта ресурсов Windows Server 2003
  6. Пакет Ruby / DBI ADO

После этого я сделал следующее:

Я прокомментировал строку в самоцвете SCGI (которая на самом деле вызывала проблемы.)

Я создал структуру каталогов, как предлагалось, с папками для журналов.

Я изменил файл scgi.yaml и файлы конфигурации Lighty, чтобы отразить мои настройки среды.

После этого я написал пакетные сценарии для запуска Lighty и процесса SGCI. Кажется, они работают правильно. Однако внутри app-errors.log появляются следующие строки:

2009-05-15 16:48:06: (mod_scgi.c.2645) fcgi: got a FDEVENT_ERR. Don't know why. 
2009-05-15 16:48:06: (mod_scgi.c.2469) emergency exit: scgi: connection-fd: 7 fcgi-fd: 8 

Наконец, когда я перехожу к http://localhost:xxxx/, я просто вижу пустую страницу. Обновление : Я только что понял, что пустая страница только кажется. Просмотр источника выявил следующую проблему:

2C:/Ruby/lib/ruby/1.8/drb/drb.rb:573:in `load'":C:/Ruby/lib/ruby/1.8/drb/drb.rb:612:in `recv_request'":C:/Ruby/lib/ruby/1.8/drb/drb.rb:911:in `recv_request'"?C:/Ruby/lib/ruby/1.8/drb/drb.rb:1530:in `init_with_client'"<C:/Ruby/lib/ruby/1.8/drb/drb.rb:1542:in `setup_message'"6C:/Ruby/lib/ruby/1.8/drb/drb.rb:1494:in `perform'"8C:/Ruby/lib/ruby/1.8/drb/drb.rb:1589:in `main_loop'"3C:/Ruby/lib/ruby/1.8/drb/drb.rb:1585:in `loop'"8C:/Ruby/lib/ruby/1.8/drb/drb.rb:1585:in `main_loop'"4C:/Ruby/lib/ruby/1.8/drb/drb.rb:1581:in `start'"8C:/Ruby/lib/ruby/1.8/drb/drb.rb:1581:in `main_loop'"2C:/Ruby/lib/ruby/1.8/drb/drb.rb:1430:in `run'"4C:/Ruby/lib/ruby/1.8/drb/drb.rb:1427:in `start'"2C:/Ruby/lib/ruby/1.8/drb/drb.rb:1427:in `run'"9C:/Ruby/lib/ruby/1.8/drb/drb.rb:1347:in `initialize'"2C:/Ruby/lib/ruby/1.8/drb/drb.rb:1627:in `new'"<C:/Ruby/lib/ruby/1.8/drb/drb.rb:1627:in `start_service'"MC:/Ruby/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/lib/scgi.rb:402:in `run'"HC:/Ruby/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/bin/scgi_service:61"*C:/Ruby/bin/scgi_service:19:in `load'" C:/Ruby/bin/scgi_service:19:   mesg" too large packet

Обратите внимание, что 'скрипт / сервер ruby' работает нормально, но страницу не видно снаружи.

Есть идеи? Пожалуйста, дайте мне знать, если на вас что-нибудь выпрыгнет.

1 Ответ

3 голосов
/ 16 мая 2009

Я написал главу для этого в разделе «Развертывание Rails-приложений». http://www.pragprog.com/titles/fr_deploy/deploying-rails-applications

По сути, вам нужны mongrel, mongrel_service и apache 2.2 с mod_proxy_balancer для Windows.

Вы устанавливаете 2 или более экземпляров своего приложения, когда Mongrel работает на отдельных портах. Вы устанавливаете сервисы на автозапуск.

Затем вы настраиваете apache для баланса с ними.

Все это изложено в книге, и у меня есть несколько старых статей на моем веб-сайте - если вы ищете «разметка рельсов на окнах», вы найдете довольно устаревшие вещи. Путь apache + mongrel - лучший способ для Windows прямо сейчас, и если вам нужна дополнительная помощь, не стесняйтесь, дайте мне знать. Я был бы рад помочь.

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