Apache 重启后,乘客“缺少 Rails 2.3.4 gem”

Apache 重启后,乘客“缺少 Rails 2.3.4 gem”

我有一个在 Passenger/apache 2.2.3/RHEL 上运行的 Rails 应用程序。一切运行正常,直到我必须重新启动 Apache。重新启动后,我收到以下消息:

缺少 Rails 2.3.4 gem。请gem install -v=2.3.4 rails更新 RAILS_GEM_VERSIONconfig/environment.rb 中的设置以适应您已安装的 Rails 版本,或注释掉RAILS_GEM_VERSION以使用最新安装的版本。

我不知道该怎么做,因为应用程序之前运行良好。我touch restart.txt尝试重新启动它,再次从 Capistrano 部署,并再次删除/安装 rails gem,但没有任何效果。rails -v打印 Rails 2.3.4。

答案1

不久前,我通过使用命令/etc/init.d/httpd restart而不是重新启动 apache 解决了这个问题service httpd restart。不知道为什么这样做有效,但确实有效。environment.rb 中的任何更改都不起作用。

答案2

我遇到了类似的问题......这是我解决问题的方法......

首先通过在终端中运行“gem environment”来检查您当前的 gems 环境。

寻找 GEM PATHS,例如,我有

/usr/local/lib/ruby/gems/1.8 /home/anatoly/.gem/ruby/1.8

我确实使用 sudo 安装了所有 gem,所以我只关心第一个。

接下来,将其添加到您的路径中。

我在 Ubuntu 9.10 上,因此这意味着:sudo gedit ~/.bashrc

我在文件底部添加了:export PATH=/usr/local/lib/ruby/gems/1.8:$PATH

在 rails 应用程序的 config/environment.rb 文件中)。我在顶部添加了这个: ENV['GEM_PATH'] = "/usr/local/lib/ruby/gems/1.8:#{ENV['GEM_PATH']}"

保存,注销,重新登录。祈祷吧。

答案3

听起来 rails 应用程序是用以前版本或新版本的 rails 构建的。要解决此问题,您需要 cd 到应用程序的最顶层父级(app、config 和其他目录的父级)并运行:

rake rails:update

和/或将 config/environment.rb 更新到正确的版本。

RAILS_GEM_VERSION = ‘2.3.4′ unless defined? RAILS_GEM_VERSION

也就是说,如果你从某个地方获取了该应用程序,则运行上述操作可能不起作用。返回到构建该应用程序的机器,并更新该机器上的 rails 和应用程序。

相关内容