2012-06-19 124 views
1

我尽可能地尝试了dreamhost documentation(用于Redmine 1.x,上次编辑大约一年前)和redmine install documentation在Dreamhost共享主机上安装Redmine版本2.0.2

我试图安装版本2.0.2,我拉下使用

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

我以前rvm,以安装相应的依赖关系,获取Ruby 1.9.3的本地版本。它似乎很好,直到我到了必须在浏览器中加载它的最后一步。 Passenger发现错误,说明应用程序无法启动。它显示为:

该应用程序已在启动过程中退出(即在config/environment.rb的评估 期间)。该错误消息可能已写入 Web服务器的日志文件。请检查网络服务器的日志文件 (即不是(Rails)应用程序的日志文件),以了解为什么 应用程序已退出。如果这没有帮助,那么请使用下面的 backtrace来调试问题。

我无法找到日志中的任何有用的东西(甚至找不到它err'd的地方 - 也许我一直在寻找在错误的地方/home/username/logs/my.site.com/http?)

回溯看起来是依赖性错误,但它看起来很通用。

我用来安装适当的宝石的命令:(我用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 
+0

“回溯看起来像是依赖性错误,但看起来很通用。”无论如何都要粘贴它。 – Amadan

+0

我注意到你的“bundle -v”输出显示版本1.1.4,但你的回溯显示的是1.0.7的路径。 FWIW,我在DH共享主机上运行Redmine 1.2.1。我不记得需要安装任何特别的东西才能使它工作,我相信我使用了默认的ruby(1.8.7)。 – joecullin

回答

1

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

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

改用FCGI。在fcgi宝石添加到您的Gemfile

gem "fcgi" 

~/foo.yourdomain.com/public/dispatch.fcgi创建一个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 
+0

它的工作原理,谢谢! – almostflan

相关问题