【问题标题】:Rails 3 on dreamhost?Dreamhost上的Rails 3?
【发布时间】:2010-02-12 07:33:08
【问题描述】:

我想在 Dreamhost 上部署一个小型 Rails 3 应用(仅用于测试目的,没什么大不了的),我想知道是否有人已经这样做了...请选择以下选项之一:

  1. 我做到了,而且非常简单,方法如下:...
  2. 虽然我没试过,但应该很简单,方法如下:...
  3. 这很复杂,但这应该可以帮助您入门:....
  4. NO WAI!!!1!one!1 将其设置在 slicehost 或其他非共享主机上,否则试图将其强加在 DH 上会痛苦地死去

想法?

【问题讨论】:

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


    【解决方案1】:

    您可以这样做,但它需要高级 sysadm 技能。

    为了在 DreamHost 上使用 Rails 3,您需要:

    • 安装 Ruby 1.8.7
    • 安装 RubyGems
    • 安装 Rails 3

    所有内容都在您自己的主目录中,因为您没有权限在其他地方安装所有内容。

    此外,这不能保证与现有的 Dreamhost 乘客配置一起使用。

    【讨论】:

    • 谢谢 - 是的,我怀疑是这样的,这对我来说是选项 4 :-)
    • 有了rvm,这不是很困难
    【解决方案2】:
    【解决方案3】:

    不幸的是,我认为这在很大程度上取决于 Dreamhost 为您安装 gem,并允许通过共享环境访问它们。您可以联系他们的支持部门,了解他们是否以及何时计划将 Rails 3 部署到他们的共享服务器。

    另一方面,您可以按照您的第四个选项所暗示的那样去做,然后继续在某个地方获得一个切片(不一定需要使用 SliceHost;您可以使用 Heroku 廉价地部署)这允许您部署自己的 gem。

    希望这会有所帮助!

    【讨论】:

    • Heroku 是个好主意 - 我很好奇他们何时/如何支持 Rails 3。将四处看看,谢谢!
    • heroku 与其他任何人相比都非常昂贵
    • 在下面查看我的答案,我在 Dreamhost 和 fastcgi 上使用 rvm 没有问题
    【解决方案4】:

    我刚刚收到了来自 Dreamhost 的电子邮件。大约 2 个月前,我向他们发送了有关 Rails 3.0 的电子邮件,正如我们所说,他们开始将其推送到他们的服务器上。假设一切顺利,Rails 3 应该会在一个月内得到支持。

    【讨论】:

      【解决方案5】:

      我分配空间的dreamhost 机器pisces 昨天似乎已升级到Rails 3.0.3。我只注意到一个 Redmine 实例严重损坏:(

      【讨论】:

        【解决方案6】:

        截至今天,这是我的梦想主机:

            $ rails -v
            Rails 3.0.3
        
            $ ruby -v
            ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
        
            $ gem list
        
            *** LOCAL GEMS ***
        
            abstract (1.0.0)
            actionmailer (3.0.3, 2.3.8, 2.3.5, 2.3.4, 2.3.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.2)
            actionpack (3.0.3, 2.3.8, 2.3.5, 2.3.4, 2.3.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.2)
            actionwebservice (1.2.6, 1.2.3)
            activemodel (3.0.3)
            activerecord (3.0.3, 2.3.8, 2.3.5, 2.3.4, 2.3.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.2)
            activeresource (3.0.3, 2.3.8, 2.3.5, 2.3.4, 2.3.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.2)
            activesupport (3.0.3, 2.3.8, 2.3.5, 2.3.4, 2.3.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.2)
            acts_as_taggable (2.0.2, 1.0.4)
            ajax_scaffold_generator (3.1.11, 2.2.1)
            archive-tar-minitar (0.5.2, 0.5.1)
            arel (2.0.4)
            auth_generator (2.0.1, 1.5.3)
            Bloglines4R (0.1.0)
            BlueCloth (1.0.0)
            builder (2.1.2, 2.0.0)
            bundler (1.0.7)
            camping (1.5.180, 1.5)
            capistrano (2.5.1, 2.1.0, 1.4.1)
            classifier (1.3.1)
            cmdparse (2.0.2, 2.0.0)
            curb (0.1.4)
            daemons (1.0.10, 1.0.9)
            dbd-mysql (0.4.3)
            dbi (0.4.3)
            deprecated (2.0.1)
            erubis (2.6.6)
            eventmachine (0.12.10, 0.12.8)
            facets (2.2.1, 1.8.54)
            fastthread (1.0.7, 1.0.1)
            feedtools (0.2.29, 0.2.28)
            ferret (0.11.6, 0.11.4)
            flickr (1.0.2)
            gd2 (1.1.1, 1.1)
            gen (0.41.0)
            geoip (0.6.1)
            gettext (1.90.0)
            glue (0.41.0)
            gnuplot (2.2)
            gravtastic (2.0.0)
            gruff (0.3.1)
            haml (2.0.3)
            hoe (1.5.1)
            hpricot (0.6)
            htmltools (1.10)
            i18n (0.4.2, 0.4.1)
            localization_generator (1.0.8)
            login_generator (1.2.2)
            madeleine (0.7.3)
            mail (2.2.15)
            markaby (0.5)
            mechanize (0.7.6)
            metaid (1.0)
            mime-types (1.16)
            mini_magick (1.2.3)
            mysql (2.7)
            needle (1.3.0)
            net-sftp (1.1.1)
            net-ssh (2.0.23, 1.1.2)
            nitro (0.41.0)
            nokogiri (1.4.4)
            og (0.41.0)
            oniguruma (1.1.0)
            packet (0.1.14)
            PageTemplate (2.2.0)
            ParseTree (2.1.1)
            payment (1.0.1)
            pdf-writer (1.1.8)
            podcast (0.0.4)
            polyglot (0.3.1)
            rack (1.2.1, 1.1.0, 1.0.1, 1.0.0)
            rack-mount (0.6.13)
            rack-test (0.5.6)
            radiant (0.6.9)
            rails (3.0.3, 2.3.8, 2.3.5, 2.3.4, 2.3.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.2)
            railties (3.0.3)
            rake (0.8.7, 0.8.3, 0.8.2)
            RedCloth (3.0.4)
            rfacebook (0.9.8)
            rmagick (1.15.14)
            rspec (1.1.3)
            ruby-breakpoint (0.5.1)
            ruby-debug (0.10.0)
            ruby-openid (2.1.7)
            ruby-yadis (0.3.4)
            ruby_odeum (0.4.1)
            rubyforge (0.4.5)
            RubyInline (3.6.7)
            rubypants (0.2.0)
            rubyzip (0.9.1)
            ruport (1.6.0)
            ruport-util (0.14.0)
            ruwiki (0.9.3)
            salted_login_generator (2.0.2)
            shipping (1.5.1)
            SimpleSearch (0.5.0)
            sqlite3-ruby (1.2.1)
            stemmer (1.0.1)
            switchtower (1.0.1)
            syntax (1.0.0)
            tagtools (0.0.3)
            thor (0.14.6, 0.14.4)
            tidy (1.1.2)
            treetop (1.4.9)
            tzinfo (0.3.23)
            unicode (0.1)
            uuidtools (1.0.3)
            webgen (0.4.7)
            wee (0.10.0)
            xhtmldiff (1.0.0)
            xml-simple (1.0.11)
            ym4r (0.6.1)
            youtube-g (0.4.9.9)
        

        【讨论】:

          【解决方案7】:

          来自乘客文件:http://www.modrails.com/documentation/Users%20guide%20Apache.html#bundler_support

          在您的应用中创建文件 config/setup_load_paths.rb 并添加以下行:

          $: << "<path-where-bundler-gem-was-installed>/lib"
          

          我使用以下命令在供应商/捆绑包路径中解压了捆绑器 gem:

          gem unpack bundler --target=vendor/bundle
          

          还有其他宝石:

          bundle install --deployment
          

          这应该适用于 Dreamhost 和 Passenger >= 2.2.14

          【讨论】:

          • 太糟糕了 Dreamhost 共享服务器仍然卡在Passenger 2.2.9
          【解决方案8】:

          我能够通过使用 rvm 和 fastcgi 来实现它

          我的 .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 for your rails app"
          

          我的 dispatch.fcgi 看起来像(注意你需要填写):

          #!/usr/bin/env /home/<MY_HOME_DIR>/.rvm/bin/ruby-1.9.3-p0@awesome
          
          require 'rubygems'
          require 'fcgi'
          
          ENV['RAILS_ENV'] ||= 'production' 
          #ENV['RAILS_ENV'] = 'development'
          
          
          # Set GEM_PATH and GEM_HOME ("user" is your dreamhost user)
          ENV['GEM_HOME'] ||= '/home/<MY_HOMEDIR>/.rvm/gems/ruby-1.9.3-p0@awesome'
          ENV['GEM_PATH'] ||= '/home/<MY_HOMEDIR>/.rvm/gems/ruby-1.9.3-p0@awesome:/home/<MY_HOMEDIR>/.rvm/gems/ruby-1.9.3-p0@global'
          require 'rubygems'
          Gem.clear_paths
          
          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
          
          Rack::Handler::FastCGI.run  Rack::PathInfoRewriter.new(Imjustsayin::Application)
          

          【讨论】:

            猜你喜欢
            • 2011-06-08
            • 1970-01-01
            • 1970-01-01
            • 2014-05-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多