Как мне установить этот service_wrapper для mongrel/rails на моем сервере Windows?
Мне дали неприятную задачу по установке приложения на Rails 3, которое я написал для Windows Server 2008 (определенно, не мой выбор - мне обещали сервер Linux, но ИТ-отдел в последнюю минуту вытащил коврик, поэтому, пожалуйста, не предлагайте изменения в среда как решение).
Я следовал инструкциям в этом блоге (с небольшими изменениями) и теперь после большого разочарования на самом деле установил и запустил мое приложение под Windows/IIS (прокси-монгрел). Осталось только запустить монгрела как службу.
К сожалению, драгоценный камень mongrel не был обновлен для Rails 3, и хотя я могу запустить приложение под управлением mongrel в командной строке, я не могу использовать mongrel_service для запуска приложения в качестве службы.
Похоже, что решением этой проблемы является использование проекта service_wrapper на github, который был упомянут в предыдущем вопросе. Проект еще не завершен, но, по-видимому, функционален, но поставляется без документации / двоичных файлов. Я просмотрел исходный код и не совсем понял, что это такое / как он работает, поэтому мне было интересно, может ли кто-нибудь указать мне правильное направление (или, что еще лучше, показать мне, как) установить это.
Так близко, но все еще так далеко.....
2 ответа
Хорошо, у меня все получилось (с небольшой помощью самого Луиславена - спасибо).
Загрузите файл service_wrapper-0.1.0-win32.zip с веб-сайта https://github.com/luislavena/service_wrapper/downloads и извлеките файл service_wrapper.exe из bin/. Я распаковал его в C:\service_wrapper.
Далее настройте файл конфигурации. Я использовал пример hello и изменил его для своего приложения, затем поместил его в каталог C:\service_wrapper.
; Service section, it will be the only section read by service_wrapper
[service]
; Provide full path to executable to avoid issues when executable path was not
; added to system PATH.
executable = C:\Ruby192\bin\ruby.exe
; Provide there the arguments you will pass to executable from the command line
arguments = C:\railsapp\script\rails s -e production
; Which directory will be used when invoking executable.
; Provide a full path to the directory (not to a file)
directory = C:\railsapp
; Optionally specify a logfile where both STDOUT and STDERR of executable will
; be redirected.
; Please note that full path is also required.
logfile = C:\railsapp\log\service_wrapper.log
Теперь просто создайте сервис с
sc create railsapp binPath= "C:\service_wrapper\service_wrapper.exe C:\service_wrapper\service_wrapper.conf" start= auto
(следите за пробелами после binPath= и start=. Без них работать не будет)
Тогда начни с
net start railsapp
А ты дома и дома!
Я должен внести свой вклад в связи с этой статьей. Для настройки использования bundle exec, используйте следующее: Обратите внимание, что я настраиваю rubyCAS! это отличный механизм аутентификации OpenCAS!!!
; Service section, it will be the only section read by service_wrapper
[service]
; Provide full path to executable to avoid issues when executable path was not
; added to system PATH.
executable = C:\Ruby\bin\ruby.exe
; Provide there the arguments you will pass to executable from the command line
arguments = D:\rubycas-server bundle exec rackup -s mongrel -p 11011
; Which directory will be used when invoking executable.
; Provide a full path to the directory (not to a file)
directory = D:\rubycas-server
; Optionally specify a logfile where both STDOUT and STDERR of executable will
; be redirected.
; Please note that full path is also required.
logfile = D:\rubycas-server\log\service_wrapper.log