2014-11-02 2 views
2

Я пытаюсь развернуть мое приложение Rails для своего Digital VPS. Я сделал все шаги в GoRails guide, но когда я раскрываю свой проект и посетить мой Ip ADRES Я встречено сообщение:Развернутые Rails отсутствуют секретный ключ

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. 

Я проверил журнал ошибок 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, он показывает мне мой ключ. Но все же я получаю сообщение об ошибке.

В моей deploy.rb я это:

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

И мой secrets.yml на VPS это:

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, но до сих пор никакого результата.

Update

[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 и пассажиры. – blelump

+0

Как бы я это проверить? Я вхожу в систему, используя 'ssh deploy @ ***. **. ***. **', а затем я запускаю все команды. Я также перезапустил nginx в качестве этого пользователя. Поэтому я думаю, что nginx и пассажиры запускаются от пользователя развертывания. –

+0

Он не показывает никакого выхода. 'deploy @ movieseat: ~ $ ls -la | grep nginx deploy @ movieseat: ~ $ ' –

ответ

0

Я предположил бы, что вы не проверили в secrets.yml файл в хранилище, как вы определили его в качестве связанного файла в deploy.rb т.е.

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

Вы можете сделать то же самое для secrets.yml, как database.yml. Моя рекомендация - поместить значение secret_key_base в файл secret.yml вместо того, чтобы читать его из ENV, так как лицо, имеющее доступ к связанному файлу на сервере развертывания, в любом случае будет иметь доступ к ENV vars.

Но если вы добавили файл secrets.yml в репозиторий, имеет смысл попытаться прочитать значение из системных сред.

+0

Итак, я создал секрет на моем VPS и добавила его в мой 'secrets.yml' также на VPS. Я получаю «Мы сожалеем, но что-то пошло не так. Если вы являетесь владельцем приложения, проверьте журналы для получения дополнительной информации. 'Консоль показывает« Не удалось загрузить ресурс: сервер ответил с ошибкой 500 (Внутренняя ошибка сервера) ». И мой журнал ошибок из nginx ничего не регистрирует при посещении страницы. Это может быть хорошо. –

+0

'I, [2014-11-02T12: 54: 45.760056 # 10530] INFO -: завершено 500 внутренних ошибок сервера в 2 мс F, [2014-11-02T12: 54: 45.762918 # 10530] FATAL -: ActiveRecord :: StatementInvalid (не удалось найти пользователей таблицы): app/controllers/application_controller.rb: 18: in 'current_user ' app/helpers/sessions_helper.rb: 26: в' logged_in?' app/controllers/movies_controller.rb: 5: в 'index'' это то, что я получаю сейчас. Поэтому собираемся проверить, что случилось с базой данных. –

+0

@PeterBoomsma: Недавняя ошибка - это нечто иное. Он жалуется, что нет таблицы пользователей. Вы запускали миграцию во время или после развертывания? – ranendra

Смежные вопросы