2014-11-02 1 views
2

내 Rails 앱을 내 Digital Ocean VPS에 배포하려고합니다. 나는 GoRails guide의 모든 단계를 완료했지만 나는 내 IP ADRES을 내 프로젝트를 배포하고 방문 할 때 나는 메시지로 인사 해요 : 나는 나를 보여 Nginx에 오류 로그를 확인했습니다배포 된 레일에 비밀 키가 누락되었습니다

An error occurred. 

Sorry, the page you are looking for is currently unavailable. 
Please try again later. 

If you are the system administrator of this resource then you should check the error log for details. 

Faithfully yours, nginx. 

:

Exception RuntimeError in Rack application object (Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`) (process 2490, thread 0x007fbd33665ce0(Worker 1)): 

VPS에서 rake secret을 실행 한 다음 export SECRET_KEY_BASE= + key을 실행하여 비밀을 만들었습니다. 이제 echo $SECRET_KEY_BASE 때 내 키를 보여줍니다. 하지만 여전히 오류 메시지가 나타납니다.

set :linked_files, %w{config/database.yml config/secrets.yml} 

그리고 VPS 내 secrets.yml은 이것이다 : 내 deploy.rb에서

내가 이것을 가지고

development: 
    secret_key_base: 89dacb16fd905ff4c6352ac93f4676a5dd&^%3f93edce9a5be796712d54b57b91e1335598fd73e3998fddbbdeaf3ee7f65157f2fb01ce1bea5658aa7bf745d1f 

test: 
    secret_key_base: cf351585b2cb43459f5a073cbfd885b3dd2af44124f13a855522f678c1cf06625c121cd3b7857&&6e7fe2ba11180066753142143231c79c513e71e20372a0462 

# Do not keep production secrets in the repository, 
# instead read values from the environment. 
production: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

난 그냥 여전히 결과를 nginx를 다시 시작,하지만.

업데이트

[email protected]:~$ ps aux | grep nginx 
root  4545 0.0 0.6 98936 3360 ?  Ss 11:32 0:00 nginx: master process   /usr/sbin/nginx 
www-data 4548 0.0 0.9 99304 4608 ?  S 11:32 0:00 nginx: worker process 
www-data 4549 0.0 0.9 99304 4608 ?  S 11:32 0:00 nginx: worker process 
www-data 4550 0.0 0.9 99304 4608 ?  S 11:32 0:00 nginx: worker process 
www-data 4551 0.0 0.9 99304 4608 ?  S 11:32 0:00 nginx: worker process 
deploy 4655 0.0 0.3 9436 1660 pts/1 S+ 11:33 0:00 grep --color=auto nginx 
+0

'SECRET_KEY_BASE'가 nginx 및 passenger와 동일한 사용자에 대해 설정되어 있는지 확인하십시오. – blelump

+0

어떻게 확인할 수 있습니까? 'ssh deploy @ ***. **. ***. **'을 사용하여 로그인 한 다음 모든 명령을 실행합니다. 또한 해당 사용자로 nginx를 다시 시작했습니다. 그래서 nginx 및 승객 배포 사용자에서 실행되는 것 같아요. –

+0

출력이 표시되지 않습니다. 'deploy @ movieseat : ~ $ ls -la | grep nginx deploy @ movieseat : ~ $' –

답변

0

당신이 deploy.rb 예에서 연결된 파일로 정의 된대로 난 당신이 저장소에있는 secrets.yml 파일에서 확인하지 않은 것으로 가정 할

set :linked_files, %w{config/database.yml config/secrets.yml} 

database.yml과 같은 secrets.yml에서도 동일한 작업을 수행 할 수 있습니다. 내 추천은 secret_key_base 값을 ENV에서 읽는 대신 secret.yml 파일에 넣는 것입니다. 배포 서버에서 링크 된 파일에 액세스 할 수있는 사람은 ENV 경로에 액세스 할 수 있기 때문입니다.

그러나 저장소에 secrets.yml 파일을 추가 한 경우 시스템 환경에서 값을 읽는 것이 좋습니다.

+0

좋아요. 내 VPS에 추가하고 내 VPS의 'secrets.yml' 파일에 추가했습니다. 나는 미안해.하지만 뭔가 잘못 됐어. 응용 프로그램 소유자라면 로그에서 자세한 정보를 확인하십시오. '콘솔에'리소스를로드하지 못함 : 서버가 500 (내부 서버 오류) 상태로 응답했습니다. '오류가 표시됩니다. 그리고 nginx에서 내 오류 로그 페이지를 방문하면 아무것도 로깅되지 않습니다. 좋은 일이 될 수 있습니다. –

+0

'I, [2014-11-02T12 : 54 : 45.760056 # 10530] 정보 : - 500ms 내부 서버 오류 2 초에 F, [2014-11-02T12 : 54 : 45.762918 # 10530] 치명적 - : ActiveRecord :: StatementInvalid (테이블 '사용자'를 찾을 수 없음) : app/controllers/application_controller.rb : 18 :'current_user '에 app/helpers/sessions_helper.rb : 26 : logged in에? app/controllers/movies_controller.rb : 5 :'index''에 내가 지금 얻었습니다. 따라서 데이터베이스의 문제점을 확인하십시오. –

+0

@PeterBoomsma : 최근 오류는 다른 점입니다. 그 사용자 테이블이 없다는 불평. 배포 도중 또는 배포 후에 마이그레이션을 실행 했습니까? – ranendra

관련 문제