【问题标题】:redmine on apache can't find rackapache上的redmine找不到机架
【发布时间】:2012-03-04 11:36:24
【问题描述】:

我可以通过 webrick 成功运行 redmine,但是使用 apache 时出现以下错误:

/var/www/vhosts/redmine/public/../config/../vendor/rails/railties/lib/initializer.rb:271:in `require_frameworks': 找不到机架(~> 1.1.0) [](运行时错误)

我正在使用捆绑器。
rvm信息

rvm 信息 系统: 系统: uname:“Linux 64-150-188-18.phx.dedicated.codero.com 2.6.18-164.9.1.el5 #1 SMP Tue Dec 15 20:57:57 EST 2009 x86_64 x86_64 x86_64 GNU/Linux” bash: "/bin/bash => GNU bash,版本 3.2.25(1)-release (x86_64-redhat-linux-gnu)" zsh: " => 未安装" 转速: 版本:“Wayne E. Seguin,Michal Papis [https://rvm.beginrescueend.com/] 的 rvm 1.10.3” 更新:“6 天 20 小时 58 分 48 秒前” 家园: 宝石:“未设置” 红宝石:“未设置” 二进制文件: 红宝石:“” irb:“” 宝石:“” 耙子:“/usr/local/rvm/bin/rake” 环境: 路径:“/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/ java/jdk1.6.0_17/bin:/usr/local/rvm/bin:/root/bin" GEM_HOME:“” 宝石路径:“” MY_RUBY_HOME:“” IRBRC:“” 红宝石:“” 宝石:“”

这是宝石清单:

actionmailer (2.3.14) 动作包 (2.3.14) 活动记录(2.3.14) 活动资​​源(2.3.14) 积极支持 (2.3.14) 捆绑器 (1.0.22) 码雷 (0.9.8) daemon_controller (1.0.0) 快速线程(1.0.7) 锄头 (2.15.0) i18n (0.4.2) mysql (2.8.1) 乘客 (3.0.11) 机架 (1.1.3) 导轨 (2.3.14) 耙子 (0.9.2, 0.8.3) 红布 (4.2.9) rubygems 更新(1.7.2、1.7.0) 红宝石树(0.5.2)

怎么了?

【问题讨论】:

  • 可能有不同的 Ruby 安装方式?
  • @Niklas B.:但我只有一颗红宝石。 /usr/local/rvm/rubies/ruby-1.8.7-p358/lib/ruby
  • 在这种情况下,您的库路径不知何故搞砸了。
  • 您使用的是 gemsets 还是 bundler? rvm info 说什么?
  • ruby script/serverbundle exec ruby script/server 都给出同样的错误吗?

标签: ruby-on-rails ruby rack redmine


【解决方案1】:

您使用的是rvm,但是是 Apache 吗?

如果您从存储库安装了Redmine,那么它肯定会使用某种使用您的系统 Ruby 的 CGI 或 Apache 模块。

首先,您必须确定 redmine 的运行方式、CGI、Passenger、Unicorn 等。然后,您找到正在使用的 Ruby 并为该 ruby​​ 安装 rack

希望对你有帮助!

【讨论】:

    【解决方案2】:

    我正在通过 RVM 和乘客成功地使用 apache 运行 Redmine。我推荐它。

    如果您通过 RVM 安装乘客,创建用户“passenger”,以“passenger”身份登录,安装 RVM,使用 RVM 安装 Ruby,创建 gemset redmine 并将 ruby​​-1.8.7-p358@redmine 作为默认 ruby​​ 和宝石套装。

    接下来,将 Redmine 所需的乘客和其他 gem 安装到 ruby​​ 和 gemset 上。 最后,运行passenger-install-apache2-module 为apache 创建和安装passenger 模块。当您运行安装程序时,它会发出这样的 apache 配置:

    LoadModule passenger_module /home/passenger/.rvm/gems/ruby-1.8.7-p358@redmine/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
    PassengerRoot /home/passenger/.rvm/gems/ruby-1.8.7-p358@redmine/gems/passenger-3.0.11
    PassengerRuby /home/passenger/.rvm/wrappers/ruby-1.8.7-p358@redmine/ruby
    

    PassengerRuby 的包装器正确选择了 ruby​​ 和 gemset。

    除了模块配置,你还需要主机配置。就我而言,我使用的是 SSL,所以我的 VirtualHost 配置如下:

    <VirtualHost *:443>
        ServerAdmin root@rm.somewhere.someplace.org
        ServerName rm.somewhere.someplace.org
        DocumentRoot /var/www/root
        <Directory /var/www/root>
            allow from all
        </Directory>
    
        <Directory /var/www/root/redmine>
            RailsBaseURI /redmine
            RailsEnv production
            Options -MultiViews
        </Directory>
    
        # log config follows..
    ....
    

    它运行完美。我在 FreeBSD 9.0 上运行它,但您可以非常相似地执行此操作。

    【讨论】:

      【解决方案3】:

      当我第一次为 ruby​​ on rails 设置自己的服务器时,我忘记设置 apache 的 virtualHost...而不是 php,ruby 需要为每个托管的项目都有一个虚拟主机...

      您也可以使用passenger...顺便说一句,即使您不使用它,您也会在网站上找到很多信息。 http://www.modrails.com/

      【讨论】:

        【解决方案4】:

        问题已解决,我发现此指南很有帮助:http://www.redmine.org/projects/redmine/wiki/HowTo_install_Redmine_on_CentOS_5

        具体来说,我错过了passenger-install-apache2-module中的一个步骤,并且我没有修改apache httpd.conf来加载模块。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-19
          • 1970-01-01
          • 1970-01-01
          • 2014-03-22
          • 2018-10-20
          相关资源
          最近更新 更多