1

我尝试尽可能多地遵循Dreamhost 文档(用于 Redmine 1.x,最后一次编辑大约是一年前)和redmine 安装文档

我正在尝试安装我使用的 2.0.2 版本

hg clone --updaterev 2.0-stable https://bitbucket.org/redmine/redmine-all

我使用rvm获取 Ruby 1.9.3 的本地版本,以便安装适当的依赖项。在我必须在浏览器中加载它的最后一步之前,它似乎进展顺利。我从乘客那里收到一条错误消息,指出应用程序无法启动。上面写着:

应用程序在启动期间退出(即在评估 config/environment.rb 期间)。错误消息可能已写入 Web 服务器的日志文件。请检查 Web 服务器的日志文件(即不是 (Rails) 应用程序的日志文件)以找出应用程序退出的原因。如果这没有帮助,请使用下面的回溯来调试问题。

我在日志中找不到任何有用的东西(甚至找不到出错的地方——也许我找错地方了?/home/username/logs/my.site.com/http

回溯看起来像是一个依赖错误,但看起来很一般。

我用来安装正确 gem 的命令是:(我使用的是 mysql)

$ bundle install --without development test postgresql sqlite rmagick

在我的 web 目录中运行bundle show给了我这个:

~/my.site.com$ bundle show
Gems included by the bundle:
  * actionmailer (3.2.5)
  * actionpack (3.2.5)
  * activemodel (3.2.5)
  * activerecord (3.2.5)
  * activeresource (3.2.5)
  * activesupport (3.2.5)
  * arel (3.0.2)
  * builder (3.0.0)
  * bundler (1.1.4)
  * coderay (1.0.6)
  * erubis (2.7.0)
  * hike (1.2.1)
  * i18n (0.6.0)
  * journey (1.0.4)
  * json (1.7.3)
  * mail (2.4.4)
  * mime-types (1.18)
  * multi_json (1.3.6)
  * mysql2 (0.3.11)
  * net-ldap (0.3.1)
  * polyglot (0.3.3)
  * prototype-rails (3.2.1)
  * rack (1.4.1)
  * rack-cache (1.2)
  * rack-openid (1.3.1)
  * rack-ssl (1.3.2)
  * rack-test (0.6.1)
  * rails (3.2.5)
  * railties (3.2.5)
  * rake (0.9.2.2)
  * rdoc (3.12)
  * ruby-openid (2.1.8)
  * sprockets (2.1.3)
  * thor (0.15.2)
  * tilt (1.3.3)
  * treetop (1.4.10)
  * tzinfo (0.3.33)

这是我的可执行版本:

$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ rails -v
Rails 3.2.5
$ bundle -v
Bundler version 1.1.4
$ gem -v
1.8.24

任何帮助,将不胜感激。

编辑:这是回溯。

#   File    Line    Location
0   /usr/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/setup.rb  10  in `exit'
1   /usr/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/setup.rb  10  
2   /usr/lib/ruby/1.8/rubygems/custom_require.rb    36  in `gem_original_require'
3   /usr/lib/ruby/1.8/rubygems/custom_require.rb    36  in `require'
4   /home/username/site.com/config/boot.rb  6   
5   /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `gem_original_require'
6   /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `require'
7   /home/username/site.com/config/application.rb   1   
8   /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `gem_original_require'
9   /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `require'
10  /home/username/site.com/config/environment.rb   2   
11  /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `gem_original_require'
12  /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `require'
13  config.ru   3   
14  /usr/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/builder.rb  46  in `instance_eval'
15  /usr/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/builder.rb  46  in `initialize'
16  config.ru   1   in `new'
17  config.ru
4

1 回答 1

1

尝试使用系统的 ruby​​ 1.8 而不是使用 rvm 和 ruby​​ 1.9。

不要在 Dreamhost 上使用乘客。Dreamhost 的乘客是旧版本(v2.2.9),只会加载旧版本的机架,并且会随机擦除环境变量,导致您的站点偶尔无法加载。

请改用 FCGI。将fcgigem 添加到您的 Gemfile

gem "fcgi"

在以下位置创建dispatch.fcgi文件~/foo.yourdomain.com/public/dispatch.fcgi

#!/usr/bin/env ruby

# Set necessary environment variables
ENV['HOME'] ||= `echo ~`.strip
ENV['GEM_HOME'] = File.expand_path('~/.gems')
ENV['GEM_PATH'] = File.expand_path('~/.gems') + ":" + '/usr/lib/ruby/gems/1.8'

#require File.dirname(__FILE__) + '/../config/boot'
#require File.dirname(__FILE__) + '/../config/environment'
require '/home/user/programs/redmine-2.0.3/config/boot'
require '/home/user/programs/redmine-2.0.3/config/environment'

class Rack::PathInfoRewriter
  def initialize(app)
    @app = app
  end

  def call(env)
    env.delete('SCRIPT_NAME')
    parts = env['REQUEST_URI'].split('?')
    env['PATH_INFO'] = parts[0]
    env['QUERY_STRING'] = parts[1].to_s
    @app.call(env)
  end
end

Rack::Handler::FastCGI.run Rack::PathInfoRewriter.new(RedmineApp::Application)

要重新启动您的应用程序,您必须手动终止该dispatch.fcgi进程,否则您的更改将不起作用

pkill dispatch.fcgi
于 2012-06-19T17:07:34.330 回答