Проблема развертывания среды Rails? - PullRequest
0 голосов
/ 27 мая 2011

Я пытаюсь развернуть здесь свое первое приложение на Rails, и я застрял на чем-то с прошлой ночи.Я сталкиваюсь с некоторыми странными поведениями, которые я не могу объяснить.

Я использую Rails, Apache, Phusion Passenger и на данный момент SQLite 3. (Скоро я перейду к MySQL.)В настоящее время он размещается на слишком маленьком срезе EC2 под управлением Ubuntu Server 11.04 (Natty).

Когда я захожу на адрес среза EC2 в браузере, я получаю уведомление по умолчанию Rails 500.Вот что странно, хотя.Когда я хватаюсь за /log/production.log, я вижу следующую ошибку:

ActionView::Template::Error (SQLite3::SQLException: no such table: offers: SELECT  "offers".* FROM "offers" WHERE (code = '') ORDER BY created_at desc LIMIT 25 OFFSET 0):

Итак, я вручную открыл базу данных разработки в SQLite3 и увидел там эту таблицу.Однако в базе данных production эта таблица отсутствует.

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

Вот что меня бросает.Прежде всего, он работает в режиме разработки на моей машине для разработки, и я не изменил ни одного файла при его развертывании.Я также не использовал какие-либо необычные инструменты развертывания для его развертывания (которые могли переключить что-то без моего ведома) - я просто сделал простую git push.

Кроме того, я добавил следующее в мою конфигурацию httdp.conf VirtualHost:

RailsEnv development

Кроме того, когда я запускаю консоль rails, я могу получить следующее:

irb(main):002:0> Rails.env
=> "development"

Итак, приложение действительно должно работать в режиме разработки, право?На самом деле, кажется, кажется (частично), что это так, верно?

Я действительно не уверен, что здесь происходит, и я был бы очень признателен за совет специалиста.

Спасибо всем.

Редактировать - Через несколько минут сервер перезагружается, и теперь он просто зависает, когда я пытаюсь просмотреть его в браузере.Кроме того, кажется, что Apache зависает, когда я пытаюсь перезапустить его (следовательно, сервер перезагружается), связанная проблема или вообще другая проблема?

1 Ответ

0 голосов
/ 28 мая 2011

Ну, это не на 100% удовлетворительный ответ для меня, но я сделал две вещи, и я думаю, что все получилось.

Сначала я переустановил пассажирский модуль Apache. Это может или не может быть необходимым.

Однако это было очень важно: после того, как я добавил строку в httpd.conf для передачи среды Rails в Passenger, я считаю, что Apache перезапустился неправильно. (Скорее, я считаю, что неправильно перезагружал Apache всю свою жизнь!)

Я пытался перезапустить Apache следующим образом:

sudo /etc/init.d/apache2 restart

Это всегда работало для меня (при программировании на PHP), но здесь просто не работало. Апач просто остановится при перезагрузке.

Это, однако, отлично работает:

sudo apachectl restart

Мне нужно будет спросить у сервера, в чем заключается существенная разница между ними.

Надеюсь, это кому-нибудь поможет.

...