2012-06-19 154 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

相關問題