redmine on apache找不到机架

时间:2012-03-04 11:36:25

标签: ruby-on-rails ruby rack redmine

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

/var/www/vhosts/redmine/public/../config/../vendor/rails/railties/lib/initializer.rb:271:in `require_frameworks': Could not find rack (~> 1.1.0) amongst [] (RuntimeError)

我正在使用捆绑器 rvm info

rvm info

system:

  system:
    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, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.10.3 by Wayne E. Seguin , Michal Papis  [https://rvm.beginrescueend.com/]"
    updated:      "6 days 20 hours 58 minutes 48 seconds ago"

  homes:
    gem:          "not set"
    ruby:         "not set"

  binaries:
    ruby:         ""
    irb:          ""
    gem:          ""
    rake:         "/usr/local/rvm/bin/rake"

  environment:
    PATH:         "/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:     ""
    GEM_PATH:     ""
    MY_RUBY_HOME: ""
    IRBRC:        ""
    RUBYOPT:      ""
    gemset:       ""

这是宝石列表:

actionmailer (2.3.14)
actionpack (2.3.14)
activerecord (2.3.14)
activeresource (2.3.14)
activesupport (2.3.14)
bundler (1.0.22)
coderay (0.9.8)
daemon_controller (1.0.0)
fastthread (1.0.7)
hoe (2.15.0)
i18n (0.4.2)
mysql (2.8.1)
passenger (3.0.11)
rack (1.1.3)
rails (2.3.14)
rake (0.9.2, 0.8.3)
RedCloth (4.2.9)
rubygems-update (1.7.2, 1.7.0)
rubytree (0.5.2)

出了什么问题?

4 个答案:

答案 0 :(得分:2)

您使用的是rvm,但是Apache?

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

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

希望它有所帮助!

答案 1 :(得分:2)

我正在通过RVM和乘客成功运行带有apache的Redmine。我推荐它。

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

接下来,将Redmine所需的乘客和其他宝石安装到红宝石和宝石上。 最后,运行passenger-install-apache2-module为apache创建和安装乘客模块。当您运行安装程序时,它会发出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上运行它,但你可以做同样的事情。

答案 2 :(得分:1)

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

你也可以使用乘客......顺便说一下,即使你不使用它,你也可以在网站上找到很多信息。 http://www.modrails.com/

答案 3 :(得分:0)

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

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