Ruby on rails 共享服务器Dreamhost

Ruby on rails 共享服务器Dreamhost,ruby-on-rails,ruby,ruby-on-rails-3,dreamhost,Ruby On Rails,Ruby,Ruby On Rails 3,Dreamhost,我正在尝试在共享服务器上安装应用程序。如果我理解正确,因为我使用的是共享服务器,而Dreamhost不认为rails 3.2.8,那么我必须使用FCGI,尽管我不知道如何安装和确保它正常运行 来自本教程 我在这里的理解是我所做的 在dreamhost中,激活PHP5.x.xFastCGI并确保未选中Phusion Passenger 在我的本地计算机上创建应用程序 因为rails不创建分派和访问文件,所以我在我的/public文件夹中创建了以下两个文件 调度.fcgi #!/home/usern

我正在尝试在共享服务器上安装应用程序。如果我理解正确,因为我使用的是共享服务器,而Dreamhost不认为rails 3.2.8,那么我必须使用FCGI,尽管我不知道如何安装和确保它正常运行

来自本教程

我在这里的理解是我所做的

  • 在dreamhost中,激活PHP5.x.xFastCGI并确保未选中Phusion Passenger
  • 在我的本地计算机上创建应用程序
  • 因为rails不创建分派和访问文件,所以我在我的/public文件夹中创建了以下两个文件
  • 调度.fcgi #!/home/username/.rvm/rubies/ruby-1.9.3-p327/bin/ruby

    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"
    
    
    AddHandler fastcgi script.fcgi
    AddHandler fcgid script.fcgi
    选项+FollowSymLinks+ExecCGI
    重新启动发动机
    重写cond%{REQUEST_FILENAME}-F
    重写规则^(.*)$dispatch.fcgi/$1[QSA,L]
    ErrorDocument 500“Rails应用程序无法正确启动”
    
  • 已上载到文件夹并指向dreamhost中的公用文件夹
  • 确保dispatch.fcgi有777可供写入
  • ssh并在公用文件夹中运行以下命令:.
    /dispatch.fcgi
  • 交叉我的手指,但它不工作,我得到以下错误

    ./dispatch.fcgi:第1行:ENV[RAILS\u ENV]:未找到命令 ./dispatch.fcgi:第1行:=:未找到命令 ./dispatch.fcgi:第2行:ENV[HOME]:未找到命令 ./dispatch.fcgi:第2行:=:未找到命令 ./dispatch.fcgi:第3行:意外标记附近的语法错误
    ('
    ./dispatch.fcgi:第3行:
    ENV['GEM_HOME']=File.expand_path('~/.rvm/gems/ruby 1.9.3-p327')”


  • 做错了吗???哦,如果我在服务器上运行,我会发现这个
    Rails应用程序无法正确启动

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

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

    我还没有解决我的问题,但一旦我弄清楚需要什么,我会写一篇博客