ruby-on-rails deployment ruby-on-rails-3 dreamhost

ruby on rails - Rails 3 on dreamhost?



ruby-on-rails deployment (8)

A partir de hoy, aquí está lo que es mi máquina dreamhost:

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

Me gustaría implementar una pequeña aplicación Rails 3 en dreamhost (solo para propósitos de prueba, nada serio) y me pregunto si alguien ya lo ha hecho ... Por favor elija una de las siguientes opciones:

  1. Lo hice y es muy fácil, así es como ...
  2. Aunque no lo intenté, debería ser fácil, así es como ...
  3. Es bastante complicado, pero esto debería comenzar: ....
  4. NO WAI !!! 1! One! 1 Configúrelo en SlotHost o en otro hosting no compartido o morirá de muerte dolorosa tratando de forzarlo en DH

¿Pensamientos?


Acabo de recibir un correo electrónico de dreamhost. Hace unos 2 meses les envié un correo electrónico con respecto a los rieles 3.0, están empezando a insertarlo en sus servidores mientras hablamos. Suponiendo que las cosas funcionen, los rieles 3 deben recibir soporte dentro del mes.



De la documentación de Passenger: http://www.modrails.com/documentation/Users%20guide%20Apache.html#bundler_support

Cree un archivo config / setup_load_paths.rb en su aplicación y agregue esta línea:

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

Desempaqué la gema de bundler en la ruta del proveedor / paquete con este comando:

gem unpack bundler --target=vendor/bundle

Y las otras gemas con:

bundle install --deployment

Esto debería funcionar con Dreamhost y Pasajero> = 2.2.14


Desafortunadamente, creo que depende en gran medida de que Dreamhost instale las gemas por usted y permita el acceso a ellas a través del entorno compartido. Puede ponerse en contacto con su departamento de soporte para obtener más información sobre si y cuándo planean implementar Rails 3 en sus servidores compartidos.

Por otro lado, podrías hacer lo que implica tu cuarta opción y solo seguir adelante y obtener un trozo en algún lugar (no necesariamente tiene que estar con SliceHost; podrías implementarlo de forma económica con Heroku), que te permite desplegar tus propias gemas.

¡Espero que esto ayude!


La máquina de Dreamhost a la que le he asignado espacio, piscis, parece haberse actualizado a Rails 3.0.3 ayer. Solo me di cuenta porque una instancia de Redmine se rompió horriblemente :(


Pude hacer que esto funcionara usando rvm y fastcgi

Mi archivo .htaccess se veía así:

<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"

Y mi dispatch.fcgi se veía como (nota que necesitas completar):

#!/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)


Puedes hacer esto pero requiere habilidades avanzadas de sysadm.

Para utilizar Rails 3 en DreamHost necesitas:

  • instalar Ruby 1.8.7
  • instala RubyGems
  • instalar rieles 3

todo en su propio directorio de inicio porque no tiene privilegios para instalar todo en otro lugar.

Además, esto no garantiza que funcione con la configuración existente de Dreamhost Passenger.