gpt4 book ai didi

ruby-on-rails - rails/乘客 : no such file to load -- money (MissingSourceFile)

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:20 25 4
gpt4 key购买 nike

我正在尝试将 Rails 应用程序(在开发中运行良好)部署到生产服务器上。我已经安装并配置了 Apache、Passenger 和必要的 gem。在我重新启动 apache 并导航到服务器后,我收到以下错误:

Exception PhusionPassenger::UnknownError in PhusionPassenger::Railz::ApplicationSpawner (no such file to load -- money (MissingSourceFile))

gem list money 显示:

*** LOCAL GEMS ***

money (3.0.5)

服务器上的irb session :

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'money'
=> true

config/environment.rb 中需要 gem:

require 'money'

这是怎么回事?

编辑: gem 以 root 身份安装:

# ls -l /usr/lib/ruby/gems/1.8/gems/money-3.0.5/lib
total 8
drwx------ 2 root root 4096 Sep 2 10:26 money
-rw-r--r-- 1 root root 1284 Sep 2 10:26 money.rb

编辑 2: 在那个障碍没有成功之后,我意识到 Passenger 有点适合与 Ruby Enterprise Edition 一起使用,所以我尝试安装它。之后,我使用 Ruby Enterprise 版本的 gem 安装了所有需要的 gem。现在,当我重新启动 apache 并导航到我的服务器时,我得到:

Exception LoadError in PhusionPassenger::Railz::ApplicationSpawner (no such file to load -- logger)

无论是旧版本还是新版本的 Ruby,我都可以要求记录器:

# which irb
/usr/bin/irb
# irb
irb(main):001:0> require 'logger'
=> true
irb(main):002:0> exit
# /opt/ruby-enterprise-1.8.7-2010.02/bin/irb
irb(main):001:0> require 'logger'
=> true

路径或权限一定有问题,但我完全按照 Passenger 和 Ruby Enterprise Edition 安装程序中的说明进行操作。还有其他想法吗?

最佳答案

Apache/Passenger 以 root(或 www-data)运行 ruby​​ 进程,确保你没有在本地存储库中安装 Gem。

在安装 gem 之前,您可能需要成为 super 用户。


答案 2:

require 一个 Gem 的正确方法不是使用 require,而是使用

config.gem "money"

关于ruby-on-rails - rails/乘客 : no such file to load -- money (MissingSourceFile),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3629869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com