启动Rails服务器时出现语法错误,RVM可能是问题?

当我第一次尝试在生产环境中启动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'会失败,所以我testing了它:

 **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 

如果有帮助,我正在运行Turnkey Linux Rails设备(TurnKey Linux 11.3 / Ubuntu 10.04 Lucid LTS)。

我正在尝试什么东西的死路一条,build议将不胜感激!

问题在于系统环境。

每个人都没有问(包括我自己)是看到完整的错误日志。 这样做显示他使用乘客,并从1.8加载gem。

更多调查显示RVM正在作为系统级安装进行加载。 所以将1.9.3设置为系统默认值,然后重新安装乘客gem,然后安装apache2模块,然后更新apache configs修复了这个问题。

这个盒子是专门为那个应用程序,上面的修复不应该是一个问题。 如果最终运行更多的rails应用程序,并需要更加严格定义的环境,请阅读http://beginrescueend.com/integration/passenger/文档。 这将让你为每个应用程序创build一个gemset。 我不确定它将如何与不同的ruby版本一起工作,因为乘客仍然需要从一个单独的ruby安装加载,但它可能能够运行脚本作为一个不同的ruby版本?

我认为你的session_store.rb中有一个语法错误。

看看这里的例子。

所以,你可能想要这样的东西,而不是你有什么:

 Intranet::Application.config.session_store :cookie_store, :key => '_intranet_session'