共享服务器Dreamhost

时间:2012-12-13 23:02:49

标签: ruby-on-rails ruby ruby-on-rails-3 dreamhost

我正在尝试在共享服务器上安装应用。如果我理解正确,因为我正在使用共享服务器,并且Dreamhost没有假设rails 3.2.8我必须使用FCGI,虽然我不确定如何安装并使其正常运行。

从本教程http://wiki.dreamhost.com/Rails_3

我在这里理解我做了什么,

  1. 在dreamhost中,激活PHP 5.x.x FastCGI并确保未选中Phusion Passenger
  2. 在我的localmachine上创建应用
  3. 由于rails不会创建调度和访问文件,因此我在/ public文件夹中创建了以下两个文件
  4. dispatch.fcgi     #!/首页/用户名/ .rvm /红宝石/红宝石1.9.3-P327 /斌/红宝石

    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 1.9.3-p327@global')
    
    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 / gems / ruby​​ 1.9.3-p327')'

    5. 做错了???哦,如果我去服务器,我得到这个Rails application failed to start properly

1 个答案:

答案 0 :(得分:0)

我在一艘小船上。确保在第一行设置用户名。此外,rvm verson缺少dispatch.fcgi的最后一行。从另一个调度示例中获取最后一行并设置您的应用程序名称。

最后确保您的环境和数据库文件设置正确,并且您拥有所需的宝石,例如mysql2,fcgi和therubyracer。

我还没有解决我的问题,但是一旦弄清楚需要什么,我就会发一篇博客文章。