다른 웹 애플리케이션에 다른 Ruby를 사용하는 방법은 무엇입니까? 레드마인 오류

다른 웹 애플리케이션에 다른 Ruby를 사용하는 방법은 무엇입니까? 레드마인 오류

내 서버에 Redmine의 새 버전을 설치하려고 합니다. 지금은 redmine 1.3.2가 있고 2.4.3을 설치했습니다.

하지만 승객이 내 신청서를 열 수 없으며 다음 오류가 발생합니다. 레드마인 오류

실수로 다른 루비를 설치했습니다. 하지만 다른 응용 프로그램이 Ruby를 사용하고 있고 아무 것도 망치고 싶지 않기 때문에 이를 변경하고 싶지 않습니다.

현재 내 RVM에서는 내가 사용하는 Ruby 버전이 2.0.0(사용 RVM LIST) 이라고 말합니다.

which -a ruby출력 으로 가면 다음과 같습니다.

/home/me/.rvm/rubies/ruby-2.0.0-p247/bin/ruby
/home/me/.rvm/bin/ruby
/usr/bin/ruby

그래서 나는 apache2에 정의된 다른 루비를 실행하려고 했습니다. 승객의 공식 가이드를 사용합니다. 하지만 아파치에 다음 줄을 넣으면 다음과 같습니다.

PassengerRuby /path/to/my/ruby

"PassengerRuby는 여기에서 설정할 수 없습니다." 오류가 발생합니다.

새로운 레드마인에 Ruby 2.0.0을 어떻게 사용할 수 있나요? 이제 제공된 스크린샷과 같이 1.8 버전을 가리킵니다.

답변1

비슷한 문제가 발생했습니다(Redmine 및 CentOS 6에서는 발생하지 않음). 내 앱의 프로덕션 서버에서 Ruby 2.3.0을 사용하도록 전환하고 싶었습니다. 제가 취한 몇 가지 단계는 다음과 같습니다.

루비 2.3.0을 설치합니다:

rvm install 2.3.0

기본값으로 설정하세요. 참고: 루트/관리자로 실행하세요.

rvm use --default 2.3.0

최신 승객을 설치했습니다.

gem install passenger

승객 apache2 모듈을 설치했습니다.

pasenger-install-apache2-module

모듈 설치 스크립트는 Apache 구성에 넣을 코드를 제공합니다. 제 생각에는 다음과 같습니다.

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.29/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.29
  PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.3.0/wrappers/ruby
</IfModule>

나는 이것을 /etc/httpd/conf.d/passenger.conf 파일에 넣었지만 특정 앱의 Apache 구성 파일에 이것을 넣는 것이 가능할 수도 있습니다. pasenger-install-apache2-module 설치 스크립트는 구성 파일을 편집한 후 실제로 확인하고 문제가 발견되면 알려줍니다.

그런 다음 Apache와 앱을 다시 시작하십시오.

관련 정보