2012-12-13 192 views
0

我想在共享服務器上安裝應用程序。如果我理解正確,因爲我使用的是共享服務器,並且Dreamhost不假設導軌3.2.8我必須使用FCGI,但我不確定如何安裝並使其正常運行。共享服務器Dreamhost

來自本教程http://wiki.dreamhost.com/Rails_3

要我理解這裏我做什麼,

  1. 在Dreamhost的,激活PHP 5.xx的FastCGI的,並確保乘客的Phusion未選中
  2. 我LOCALMACHINE創建應用
  3. 因爲軌道沒有按」牛逼創建調度和訪問文件我在/公用文件夾

dispatch.fcgi #!/首頁/用戶名/ .rvm /紅寶石/紅寶石1.9.3-p創建兩個以下文件327 /斌/紅寶石

ENV['RAILS_ENV'] ||= 'production' 
ENV['HOME'] ||= `echo ~`.strip 
ENV['GEM_HOME'] = File.expand_path('~/.rvm/gems/ruby 1.9.3-p327') 
ENV['GEM_PATH'] = File.expand_path('~/.rvm/gems/ruby 1.9.3-p327') + ":" + 
    File.expand_path('~/.rvm/gems/ruby [email protected]') 

require 'fcgi' 
require File.join(File.dirname(__FILE__), '../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 

然後創建上傳到一個文件夾中的文件 的.htaccess

<IfModule mod_fastcgi.c> 
AddHandler fastcgi-script .fcgi 
</IfModule> 
<IfModule mod_fcgid.c> 
AddHandler fcgid-script .fcgi 
</IfModule> 

Options +FollowSymLinks +ExecCGI 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L] 

ErrorDocument 500 "Rails application failed to start properly" 
  1. 和Dreamhost的指向公用文件夾
  2. 確信dispatch.fcgi有777用於寫入
  3. ssh並在公用文件夾中運行以下命令:。 /dispatch.fcgi
  4. 穿越我的手指,但它不工作,我得到以下錯誤

    ./dispatch.fcgi:第1行:ENV [RAILS_ENV]:找不到命令 ./dispatch.fcgi:第1行: =:命令未找到 ./dispatch.fcgi:第2行:ENV [HOME]:命令未找到 ./dispatch.fcgi:第2行:=:找不到命令 ./dispatch.fcgi:第3行:語法錯誤附近意外的標記(' ./dispatch.fcgi: line 3: ENV [ 'GEM_HOME'] = File.expand_path( '〜/ .rvm /寶石/紅寶石1.9.3-P327')」

做錯了嗎?哦,如果我去服務器上,我得到這Rails application failed to start properly

回答

0

我在一個simlar船。確保你在第一行設置你的用戶名。另外,rvm verson缺少dispatch.fcgi的最後一行。從另一個調度示例獲取最後一行並設置您的應用程序名稱。

最後確定您的環境和數據庫文件設置正確,並且您具有所需的gem,如mysql2,fcgi和therubyracer。

我還沒有完成解決我的問題,但是一旦我找出需要什麼,我會發一篇博文。