Missing `secret_token` and `secret_key_base` for production?

ubuntu server 14, rails 4.2, nginx

secrets.yml

development:
  secret_key_base: b44613bb3b3d5e5468d0c7e06903ea10f97044ac96b302882ad964e440945ccc20de8b1fe491ebcdd4a4a2feaaea7e52941b98b80c5094987a832d565d8e4de3

test:
  secret_key_base: cfb792181c7847dd953179f1916ee2f77a0938c148608ab37c0a934eb330dd39457918928d061457d5f10e278b9ea093ff1debbd3e906b4ce692fb54047cfedc

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

nginx/errors.log

App 1641 stderr: [ 2015-08-17 09:23:33.7944 1717/0x00000000a026e8(Worker 1) utils.rb:85 ]: *** Exception RuntimeError in Rack application object (Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`) (process 1717, thread 0x00000000a026e8(Worker 1)):
App 1641 stderr: 	from /home/brainy_code/test_app/vendor/bundle/ruby/2.1.0/gems/railties-4.2.1/lib/rails/application.rb:534:in `validate_secret_key_config!'
App 1641 stderr: 	from /home/brainy_code/test_app/vendor/bundle/ruby/2.1.0/gems/railties-4.2.1/lib/rails/application.rb:246:in `env_config'
App 1641 stderr: 	from /home/brainy_code/test_app/vendor/bundle/ruby/2.1.0/gems/railties-4.2.1/lib/rails/engine.rb:514:in `call'
App 1641 stderr: 	from /home/brainy_code/test_app/vendor/bundle/ruby/2.1.0/gems/railties-4.2.1/lib/rails/application.rb:164:in `call'
App 1641 stderr: 	from /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:94:in `process_request'
App 1641 stderr: 	from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
App 1641 stderr: 	from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
App 1641 stderr: 	from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:415:in `block (3 levels) in start_threads'
App 1641 stderr: 	from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils.rb:111:in `block in create_thread_and_abort_on_exception'
[ 2015-08-17 09:23:33.7965 1611/7f9617502700 age/Cor/Req/Utils.cpp:95 ]: [Client 1-1] Sending 502 response: application did not send a complete response

скопировал из test в production - все заработало.
secret_key_base: cfb792181c7847dd953179f1916ee2f77a0938c148608ab37c0a934eb330dd39457918928d061457d5f10e278b9ea093ff1debbd3e906b4ce692fb54047cfedc
Делают ли так?
  • Вопрос задан
  • 955 просмотров
Пригласить эксперта
Ответы на вопрос 2
1. Когда указывается ENV["ЧТО_НИБУДЬ"], это означает, что нужно передать параметр ЧТО_НИБУДЬ в командной строке при запуске сервера. Поскольку переменные окружения не были заданы, то результат закономерный.
2. Обратите внимание на программу foreman
Manage Procfile-based applications


3. Читаем документацию nginx
Ответ написан
Комментировать
mainameiz
@mainameiz
Full-stack web-developer
Никогда не храните секьюрити токены в конфигах в репозитории. Вам нужно при запуске сервера задать их через SECRET_TOKEN_BASE=<ваш токен> <команда для запуска сервера>. Например: `SECRET_KEY_BASE=181c784 rails s`
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы