Рельсы 3 на Dreamhost?

Я хотел бы развернуть небольшое приложение Rails 3 на Dreamhost (только для целей тестирования, ничего серьезного), и мне интересно, если кто-нибудь уже сделал это... Пожалуйста, выберите один из следующих:

  1. Я сделал это, и это очень легко, вот как: ...
  2. Хотя я не пробовал, это должно быть легко, вот как: ...
  3. Это довольно сложно, но это должно помочь вам начать....
  4. НЕТ WAI!!!1! One!1 Установите его на slicehost или другой неиспользуемый хостинг, иначе вы умрете мучительной смертью, пытаясь форсировать его на DH

Мысли?

8 ответов

Решение

К сожалению, я думаю, что это во многом зависит от того, как Dreamhost установит для вас гемы и предоставит доступ к ним через общую среду. Вы можете связаться с их отделом поддержки для получения дополнительной информации о том, когда и когда они планируют развертывание Rails 3 на своих общих серверах.

С другой стороны, вы могли бы сделать то, что подразумевает ваш четвертый вариант, и просто пойти дальше и где-нибудь получить срез (это не обязательно должно быть с SliceHost; вы могли бы дешево развернуть с Heroku), что позволяет вам развертывать ваши собственные гемы.

Надеюсь это поможет!

Вы можете сделать это, но это требует продвинутых навыков системного администратора.

Чтобы использовать Rails 3 на DreamHost, вам необходимо:

  • установить Ruby 1.8.7
  • установить RubyGems
  • установить Rails 3

все в вашем собственном домашнем каталоге, потому что у вас нет прав устанавливать все в другом месте.

Кроме того, это не гарантирует работу с существующей конфигурацией Dreamhost Passenger.

Я только что получил письмо от Dreamhost. Я написал им около 2 месяцев назад о rails 3.0, и они начинают загружать его на свои серверы, как мы говорим. При условии, что все получится, рельсы 3 должны быть поддержаны в течение месяца.

Машина-мечта, на которой я выделил место, pisces, похоже, вчера обновилась до Rails 3.0.3. Я только заметил, потому что экземпляр Redmine ужасно сломался:(

На сегодняшний день вот какая машина моей мечты:

    $ 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)

Я смог заставить это работать с помощью 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)

Из документации для пассажиров: http://www.modrails.com/documentation/Users%20guide%20Apache.html

Создайте файл config/setup_load_paths.rb в своем приложении и добавьте следующую строку:

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

Я распаковал пакетный драгоценный камень в вендоре / пути пакета с этой командой:

gem unpack bundler --target=vendor/bundle

И другие драгоценные камни с:

bundle install --deployment

Это должно работать с Dreamhost и Passenger >= 2.2.14

Другие вопросы по тегам