2015-03-24 2 views
54

Я попытался развернуть мое приложение rails на nginx и ubuntu через capistrano, как учебник на странице https://gorails.com/deploy/ubuntu/14.04. , но в конце я получаю сообщение об ошибке:«Неполный ответ, полученный от приложения» от nginx/пассажира

Incomplete response received from application 

в моем браузере. это, вероятно, ошибка пассажира, но как я могу понять, что делать?

+0

Вы пытались установить 'пассажир_баффер_репортаж ';'? http://stackoverflow.com/q/11738924/1454117 –

+6

@ Авилин Пассажирский автор здесь. 'passenger_buffer_response_off' не имеет отношения к его проблеме и не поможет. Давным-давно была ошибка в коде буферизации ответа, но эта ошибка уже давно исправлена, поэтому решение в опубликованном вами сообщении StackOverflow больше не применяется. – Hongli

+0

@Hongli Спасибо за разъяснение. –

ответ

108

У вашего проекта rails_env нет необходимой настройки, возможно, отсутствует secret_key_base.

Открыть /etc/nginx/sites-available/default и изменить RAILS_ENV к развитию:

rails_env production; 
     to 
rails_env development; 

Если приложение загружается это не проблема пассажира.

Производство Решение:

  1. Введите ваше приложение корень
  2. пробег: rake secret
  3. скопировать выход
  4. перейти к /yourapp/config/secrets.yml
  5. установить производство secret_key_base

Перезапустить приложение для пассажиров:

touch /yourapp/tmp/restart.txt 
+3

привет, я настроить <% = ENV [ "SECRET_KEY_BASE"]%> в моем VServer ~/.bashrc: 'экспорт SECRET_KEY_BASE = 12345678910111212andmore' – juicy

+0

Он должен работать, а –

+7

соблазн downvote ... конфиг/секреты. yml говорит: «Не сохраняйте секреты производства в репозитории, вместо этого читайте значения из среды» –

23

Эта ошибка возникает из-за того, что вы не установили secret_key_base. Выполните следующие шаги, чтобы исправить это:

Перейти к вашим рельсам приложения каталога

cd /path/rails-app 

Генерации секретного ключа базы

rake secret RAILS_ENV=production 

Установить переменного окружение

SECRET_KEY_BASE=<the-secret-key-base> 

Перезапустите Rails приложение

touch /path/rails-app/tmp/restart.txt 
0

Возможно, мой ответ отключен от темы, но когда мой сервер базы данных mysql не запущен, я тоже получил эту ошибку. На всякий случай у кого-то такая же ошибка.

поэтому start/restart ваша база данных может быть другим ответом.

3

Для тех, кто использует Passenger:

• Перейдите к корневой папке проекта.

• запустить bundle exec rake secret RAILS_ENV=production

• Копировать выход, а затем запустить sudo nano config/secrets.yml

• Под production, замените значение secret_key_base с недавно скопированной передней секрет.

• нажмите CNTRL+X, затем нажмите y, а затем нажмите enter.

• запустите passenger-config restart-app и выберите приложение, которое хотите перезагрузить.

https://www.phusionpassenger.com/library/admin/apache/restart_app.html

0

Я имел эту проблему в течение уик-энда (оказалось там была несовместимость между моими версиями пассажира и рубин).

Однако, похоже, никто не упоминает: фактическая ошибка может появиться в /var/log/apache2/errors.log, а не в любом пользовательском журнале.

Как только вы это знаете, надеюсь, ваш поиск будет проще!

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