2012-12-13 150 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。

我还没有完成解决我的问题,但是一旦我找出需要什么,我会发一篇博文。