app error: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml` (RuntimeError) 솔루션

Rails를 Capistrano에 배포 성공! !
좋아, 페이지 확인이다!
그리고 액세스하면 아래 화면이. . . 눈물



서버 측 log를 확인하면 unicorn.rb에 다음 오류가 설명되었습니다.

unicorn.log
app error: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml` (RuntimeError)

직역하면 production의 secret_key_base를 찾을 수 없습니다. config_secrets.yml에 값을 설정합니다. 라는 것.

capistrano의 배포로 이하 심볼릭 링크를 붙이고 있는데. .

deploy.rb
set :linked_files, fetch(:linked_files, []).push('config/settings.yml')

서버에서 var/www/app 이름/shared에 settings.yml도 작성되었습니다.

settings.yml
production:
    secret_key_base: 063ab480f211edcd82f3a2754faded575abac4ca956578c619542c3bfa0521196fb127dc3b45fa297a8444ccb59bb7e5d63266586a0c187df1b64a13b1e92e80

왜--. .

해결책



아마도 자신과 같은 오류를 겪는 사람은 여기 기사를보고 capistrano를 배포하려고 시도한 사람이라고 생각합니다.

(Capistrano 편) 세계 제일 정중한 AWS 해설. EC2를 사용하여 Rails 앱을 AWS에 올 때까지 - Qiita

엄청나게 간단한 결과이지만,
위의 share/config/아래의 파일 이름, set로 기호 링크를 붙이는 파일 이름을 secrets.yml로 변경하면 작동했습니다.

deploy.rb
set :linked_files, fetch(:linked_files, []).push('config/secrets.yml')

서버측

bash
$ cd /var/www/app名/shared/config
$ mv settings.yml secrets.yml

Rails가 표준으로 secrets.yml을 보러 가기 때문에 당연하다고 말하면 당연하네요.

이 문제로 정월 2일 고민했습니다.
특히 코드를 이해하지 않고 copipe로 설정을 수행하는 것의 두려움을 알았습니다.
이후 조심하고 싶습니다.

좋은 웹페이지 즐겨찾기