2008-09-29 4 views
10

Ruby on Rails 응용 프로그램을 작성하고 Mongrel에 성공했지만 응용 프로그램을 Windows의 Apache 2.2 인스턴스에 배포하고 싶습니다. 내가 찾은 모든 자습서는 오래되어 보이고 이전 버전의 Apache/Rails를위한 것입니다.Windows에서 Ruby on Rails 용 Apache 2.2를 어떻게 구성합니까?

누구나 Ruby on Rails 애플리케이션 용 Apache 2.2를 구성하기위한 좋은 현재 튜토리얼을 알고 있습니까?

+0

의 중복 가능성 [WampServer 함께 루비 온 레일즈를 설치하는 방법?] (http://stackoverflow.com/questions/2025449/how-to-install-ruby-on-rails-alongside-wampserver) –

답변

13

편집 : 적어도 승자를위한 Phusion Passenger가있을 때까지 Apache + Mongrel을 사용하는 것이 좋습니다. Mongrel없이 Apache + FastCGI를 사용할 수 있지만 실제로드에서는 좀비 프로세스와 더 많은 메모리 누수가 발생합니다.

아래와 같이 프록시를 Thin으로 볼 수도 있습니다. 그러나 Thin on Win을 사용하면 약간의 불안정성이 있습니다. AB (Apache Benchmark)는 여러분의 친구입니다!

Windows에서 Apache + Mongrel 구성은 * nix와 크게 다르지 않습니다.

기본적으로 아파치로 들어오는 요청을 잡종에게 프록시해야합니다. 이것이 아래로 비등하는 것은이 같은 것입니다 :

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에서 mongrel을 실행하고 Rails 루트가 C:\web\myapp 인 것으로 가정하고 www.myapp.com에서 응용 프로그램에 액세스합니다.

mongrel_rails start -p 3000 -e production 

을 그리고 멀리 당신이 (당신이 원하는 경우에 그래서 당신은 -p 3000을 건너 뛸 수있는 포트 3000에 실제로 잡종 기본값) 이동 :

생산 모드에서 레일 응용 프로그램을 실행합니다.

가장 큰 차이점은 Windows에서 mongrel을 디몬화할 수 없다는 것입니다 (즉, 백그라운드에서 실행하게 만듭니다). 대신 mongrel_service gem을 사용하여 서비스로 설치할 수 있습니다.

또한 클러스터를 실행하면 더 복잡해지고 Capistrano를 사용할 수 없게됩니다. 더 많은 정보를 원한다면 알려주세요.

+0

Ruby on Rails 애플리케이션이 일반적으로 Apache에 배포되는 이유는 무엇입니까? Mongrel을 필요로하지 않고 Apache에 바로 배포 할 수 있다고 생각했습니다. – Owen

+0

나는 그것이 절대적으로 방법이라고 생각한다. 적어도 승리를위한 Phusion Passenger가있을 때까지. Mongrel없이 Apache + FastCGI를 사용할 수 있지만 실제로드에서는 좀비 프로세스와 더 많은 메모리 누수가 발생합니다. –

+0

같은 방식으로 Thin (http://code.macournoyer.com/thin/)에 프록시를 볼 수도 있습니다. 그러나 Thin on Win을 사용하면 약간의 불안정성이 있습니다. AB (apache benchmark)는 여러분의 친구입니다! –

3

나는 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를"을 시작/중지 할 수 있어야한다 서비스 제어판.

누군가를 돕는 희망.

2

현재 Mongrel은 Ruby 1.9에서 제대로 작동하지 않으며 mongrel_rails 명령을 실행할 때 "msvcrt-ruby18.dll을 찾을 수 없음"오류가 발생합니다.

이 경우 Thin이 현재 유일한 옵션 인 것으로 보입니다.

+1

Mongrel 1.2.0.pre2는 Ruby 1.9에서 잘 작동하는 것으로 보입니다 : via 'gem install mongrel --prerelease' – gerard