2012-11-21 3 views
2

나는 Rails3, Phusion 승객 3 및 아파치 있습니다. 안녕하세요! 안녕하세요! 안녕하세요! vhost "RailsEnv development"에서이 행을 제거한 경우 "500 Internal Server Error"에 따라 http 500 오류가 발생했습니다. 그리고 "RailsEnv development"줄을 다시 넣으면 응용 프로그램이 제대로 작동합니다. 생산을 위해 설정해야하는 승객에 대해 뭔가가 있습니까?레일 3 아파치와 Phusion 승객을 사용하여 생산 모드에서 작동하지 않습니다

새로운 승객 설치가 프로덕션 모드에서 작동하는지 여부를 테스트하기 만하면됩니다.

다음은 관련 구성입니다. [usertest @ 테스트 서버 web_app1] $ 루비 -v 루비 1.9.3p327 (2012년 11월 10일 개정 37,606)

[[email protected] web_app1]$ which ruby 
/usr/local/bin/ruby 

[[email protected] web_app1]$ cat /etc/apache/conf.d/passenger.conf 
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger- 3.0.18/ext/apache2/mod_passenger.so 
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.18 
PassengerRuby /usr/local/bin/ruby 

<VirtualHost *:80> 
    ServerName siteexample.com 
DocumentRoot /var/www/mysites/apps/web_app1/public 
RailsEnv development 
<Directory /var/www/mysites/apps/web_app1/public>  
    AllowOverride all   
    Allow from all 
    Options -MultiViews 
    Options FollowSymLinks 
</Directory> 
</VirtualHost> 
+0

전체적으로 config가 올바르게 보입니다. 당연한 일이 아닙니다 :'... gems/passenger-3.0.18/ext ... '의 공백은 포맷 오류 일뿐입니다. 또한,'apps/config/environment/production.rb' 파일을 올바르게 설정했는지 확인하십시오. 이 모든 것이 옳은 경우 1) 레일스 로그 (production.log 일 수도 있고 아닐 수도 있고 아파치 로그 일 수도 있음)를보십시오. –

+0

그래, production.log보세요. 내 생각 엔 당신의 프로덕션 데이터베이스가 존재하지 않거나 당신이 그것과 연락하거나 그것에 쓸 수 없다는 것입니다. 내부 서버 오류는 생산 모드에 있음을 보여줍니다 (최종 사용자의 오류 메시지 숨기기). Dev 모드에서 스택 추적을 표시합니다. – Doon

+0

@tharrison : 여기 공간을 붙여 넣은 것입니다.하지만, /config/environment/production.rb 속성을 구성한다는 것은 무엇을 의미합니까? 나는 전혀 파일을 터치하지 않았고 무엇이 들어가야하는지 확신하지 못했습니다. –

답변

6

Phusion Passenger로 프로덕션 서버에 배포하려면 RailsEnv production 지시문을 그대로 사용해야합니다.

그러나 관련된 Rails 환경이 올바르게 구성되어 있는지도 확인해야합니다. 이 파일들은 apps/config/environments/에 저장되고 새로운 레일스 프로젝트는 development (기본값), testproduction과 함께 제공됩니다. 이 디렉토리에 파일을 추가하여 다른 사람을 추가 할 수 있습니다 (예 : staging).

각 파일에는 환경에 적합한 여러 가지 설정이 있습니다. 개발 중에는 브라우저에 멋진 상세 로깅, 일반 텍스트 CSS 및 JS 파일 및 오류 표시가 필요합니다. 프로덕션 환경에서는 최대한 간결한 로깅, 컴파일 된 자산, 사용자 친화적 인 오류 페이지 등 모든 것을 신속하게 원합니다.

귀하의 경우, Rails에서 사용하는 자산 (특히 CSS 및 JS 파일 모두)은 Rails의 "자산 파이프 라인"에 의해 아직 처리되지 않았습니다. 애셋 미리 컴파일을위한 레이크 작업 (rake assets:precompile)은 기본값 인 production이 예상하는 작업입니다. 기본 개발 환경에서는 CoffeeScript 및 SASS 파일을 JS 및 CSS로 즉시 컴파일하고 그렇지 않으면 최소한의 처리 만 수행합니다.

프로덕션 환경에 배포 할 때 자산을 추가하거나 변경할 때마다이 레이크 작업을 실행해야합니다. 배포 할 때마다 이와 관련된 수많은 세부 정보가 필요하기 때문에 대부분의 Rails 앱이 배포에 사용하는 Capistrano라는 훌륭한 보석이 있습니다. 확실한 것은 다른 짐승입니다. 그러나 그 과정을 따라 가면서 확실히 고려해야 할 것입니다. 최소 구성된 capistrano 스크립트라도 자산을 미리 컴파일하고 완료되면 서버를 재시작하는 것을 알고 있습니다.

+0

tharrison : 나는 너의 시간과 대답을 높이 평가했다. 그 지금 일하고있어. –

0

RailsEnv production

다시 시작 아파치 설정을 시도하고 touch /var/www/mysistes/apps/web_app1/tmp/restart.txt

와 승객을 다시 시작
+0

아파치와 앱을 여러 번 다시 시작했습니다. "RailsEnv Production"을 설정하면 명령 행만을 의미합니까? 커맨드 라인에 문제가있는 것은 아니지만 여객 생산 모드에서 앱을 실행하는 것입니다. vhost에서 "RailsEnv development"문제가 발생하면 해당 명령문에서 프로덕션으로 개발을 변경할 때 아무런 문제가 없습니다. –

+0

Ah 당신의 질문에 RailsEnv 개발 라인을 삭제했습니다. 그 라인을 프로덕션으로 전환 해 보셨습니까? –

+0

나는 그렇지 않다. 승객은 기본적으로 프로덕션 환경에 설정되어 있으며 개발 명세서를 제거하면 production.log에 로그가 표시됩니다. 이는 프로 시저가없는 상태에서 기본적으로 테스트 할 것을 의미합니다. 도움을 감사하지만 –

관련 문제