2011-03-08 3 views
4

임 Rails 응용 프로그램을 호스트하고 모든 구성 요소를 새로 설치하기 위해 새 서버를 설치하려고 했으므로 rvm + bundler를 사용하기로 결정했습니다. 처음으로 Rails 서버를 설정했습니다.내 앱이 번들러를 사용하더라도 일반 보석으로 승객을 설치해야합니까?

전에 앱과 함께 번들러를 사용했고 응용 프로그램의 종속성을 관리하는 방법을 알고 있습니다 ...하지만 승객을 설치하고 나서 호스팅 환경의 종속성이 있기 때문에 '보석 설치 승객'을 수행해야합니다. 이 종속성을 번들로 묶는 대신 상자 자체를 사용 하시겠습니까? 아니면 내가 응용 프로그램의 Gemfile에 승객을 두어야합니까?

답변

5

응용 프로그램 자체는 승객 (유니콘, webrick, 잡종, 얇은 등)을 설치하지 않고 실행되므로 승객은 실제로 Gemfile에 있어서는 안됩니다. 승객을 보석으로 따로 설치하는 것이이 경우에 올바른 선택입니다.

응용 프로그램이 사용하고있는 보석 목록으로 Gemfile을보십시오. 승객이 응용 프로그램을 사용하는 대신 응용 프로그램을 사용하여 사용자에게 데이터를 제공합니다. 길을 가다 보면 다른 애플리케이션 서버를 사용하는 것을 고려할 수 있으며 애플리케이션을 변경할 필요가 없어도 Gemfile을 변경하여 애플리케이션을 변경할 수있다.

그러나 응용 프로그램에서 실제로 승객 특유의 기능 또는 승객 보석의 일부를 내부적으로 사용하는 경우이를 포함시켜야합니다. 예를 들어, 승객에서 선언 된 클래스를 사용했다면, 그 클래스에 의존하고있을 것이고, 그것을 Gemfile에 포함시켜야합니다.

+1

아니요. Phusion 승객 전용 기능을 사용하더라도 여전히 Gemfile에 'passenger'가 포함되어서는 안됩니다. – Hongli

2

Passenger with RVM을 사용하려면 RVM의 사용 설명서를 읽어야합니다.

요약하면 웹 서버는 한 번에 하나의 버전의 Ruby와 한 버전의 Passenger를 사용할 수 있기 때문에 Passenger를 한 번만 설치하면되지만, 개별적인 Gemset을 설치 한 경우에는 피해를 입지 않습니다 그래서 당신의 Gemfile에서). Rails는 승객 그 자체 (즉, require 'passenger')를로드 할 필요가 없으므로 걱정할 필요도 없습니다.

(개인적으로 서버에서는 bundle install --deployment을 사용하고 로컬에서는 RVM을 사용하는 것이 좋습니다.)

관련 문제