Я получаю следующую ошибку при первой попытке запустить мое приложение Rails в производственной среде:
/var/www/railsapp/config/initializers/session_store.rb:3: syntax error, unexpected ':', expecting $end ...sion_store :cookie_store, key: '_intranet_session' ^
Я читал, что это может быть проблема с текущей версией Ruby, поэтому я установил RVM и обновил текущую версию.
**root@rails ~#** ruby -v
ruby 1.8.7 (2010-04-19 patchlevel 253) [i686-linux], MBARI 0x8770, Ruby Enterprise Edition 2010.02
**root@rails ~#** rvm use 1.9.3
Using /usr/local/rvm/gems/ruby-1.9.3-p125
**root@rails ~#** ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [i686-linux]
Я заметил, что производственная версия Ruby - 1.9.3p125, но разрабатываемая версия - 1.9.3p0, не уверен, что это имеет значение.
Затем я дважды проверил, что версия Rails правильная:
**root@rails www/railsapp#** rails -v
Rails 3.1.4
Я подумал, что стоит перезапустить сервер, а затем приложение просто для хихиканья, но это тоже не помогло.
При чтении нескольких других вопросов я заметил, что если RVM не установлен, то запуск «rvm list known» не сработает, поэтому я протестировал его:
**root@rails www/railsapp#** rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-p358]
[ruby-]1.8.7-head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2-p180
[ruby-]1.9.2-p290
[ruby-]1.9.2[-p318]
[ruby-]1.9.2-head
[ruby-]1.9.3-preview1
[ruby-]1.9.3-rc1
[ruby-]1.9.3-p0
[ruby-]1.9.3[-p125]
[ruby-]1.9.3-head
ruby-head
# GoRuby
goruby
# TheCodeShop - MRI experimental patches
tcs
# JRuby
jruby-1.2.0
jruby-1.3.1
jruby-1.4.0
jruby-1.6.5
/usr/local/rvm/config/known
Если это помогает, я запускаю под ключ Linux Rails (TurnKey Linux 11.3 / Ubuntu 10.04 Lucid LTS).
Я нахожусь в тупике, что бы попробовать, и я буду благодарен за совет!
Проблема в системном окружении.
Чего ни у кого не было ответа (включая меня), так это увидеть полные журналы ошибок. Это показало, что он использовал Passenger и загружал драгоценный камень из 1.8.
Дополнительные исследования показывают, что RVM загружается как общесистемная установка. Поэтому установка 1.9.3 в качестве системного значения по умолчанию, а затем переустановка пассажирского гема, затем установка модуля apache2, а затем обновление конфигураций apache устранили проблему.
Это поле предназначено для этого приложения, указанное выше исправление не должно быть проблемой. Если вы в конечном итоге запускаете больше приложений rails и вам нужны более четко определенные среды, прочитайте эту документацию http://beginrescueend.com/integration/passenger/. Это позволит вам создать гемсет для каждого приложения. Я не уверен, как это будет работать с разными версиями Ruby, так как пассажира все равно придется загружать из одной установки Ruby, но он может запускать сценарии как другую версию Ruby?
Я думаю, у вас есть синтаксическая ошибка в вашем session_store.rb.
Взгляните на пример Вот.
Итак, вы, вероятно, захотите что-то вроде этого вместо того, что у вас есть:
Intranet::Application.config.session_store :cookie_store, :key => '_intranet_session'