Creando una Aplicacion Ruby On Rails sencilla en el Cpanel. [Basico]

Desde hace casi un año vengo conociendo el lenguaje de programacion Ruby y de su framework Rails para la creacion de aplicaciones y paginas web respectivamente.  Hace solo unos meses pude aprender un poco mas sobre el framework Rails en la universidad y pude hacer unas paginas webs un tanto sencillas como practica. Estas paginas fueron hechas en una PC (modo local o localhost) con una aplicacion portatil llamada InstantRails que contiene dentro de una misma carpeta todo lo necesario para comenzar a programar en Rails.

Despues de haber hecho unas cuantas paginas sencillas en local, quise dar el salto a un servidor e implementar dichas aplicaciones rails en lweb de modo que se tenga por internet.  Uno de los principales problemas que tube al intentar esto fue que no encontraba un proveedor de hosting que ofreciera soporte para Ruby On Rails y acceso a mi cuenta por medio de SSH. Luego de tanto buscar y toparme con unos cuantos resellers poco profesionales y sinceros, por fin encontre a dos proveedores que me ofrecen lo que se necesita para poder crear y/o montar una pagina web hecha en Ruby On Rails.

Como en internet no encontre mucha documentacion con los pasos a seguir para crear una aplicacion Ruby on Rails en el Cpanel, tube que pnerme a escudriñar por todo el Cpanel y SSH para lograr hacer lo que queria, asi que aqui les coloco los pasos a seguir para crear una aplicacion Ruby On Rails super sencilla:

Nota 1: Aqui se esta dando por entender que ya tienes acceso a una cuenta de  hosting que soporte Ruby On Rails y tengas acceso SSH ACTIVADO!!!   Si este no es tu caso (y eres de Venezuela), te puedo recomendar cualquiera de los dos que uso actualmente (Servidores en USA y Francia – Dueños en Venezuela y argentina – Pago en $ o Bs.F)

Nota 2: De aqui en adelante usaremos la abreviacion RoR para referirnos a Ruby On rails.

Nota 3: Damos por entendido de que se tiene conocimientos de conexion a un hosting por medio de cuentas Shell y sabes los comandos basicos.

Nota 4: Damos por entendido que el lector tiene conocimientos y experiencia del protocolo FTP y de su uso con los principales clientes FTP para realizar la conexion con su cuenta de hosting.

Nota 5: Damos por entendido que el lector  posee los conocimientos necesarios para crear bases de datos y usuarios de base de datos en el Cpanel de su hosting.

1- Lo primero es entrar al Cpanel, luego hacer click en la opcion “Ruby On Rails”, acontinuacion colocas  en “Nombre de la Aplicacion” el nombre como quieres que se llame tu aplicacion RoR.  Seleccciona la casilla  que dice “Cargar en Boot” para que la aplicacion se autoarranque. elige en Enviroment “Development”  asi le dices a Rails que tu aplicacion esta en desarrollo y no es la version final en implementacion. ahora click en Crear.

Una vez creada la aplicacion podras ver mas abajo tu aplicacion ya creada, fijate que en el campo “Servidor de Vias” hay un link con una URL del tipo http://tudominio.com:12001/ o similar, esto es la direccion que se usa para accesar a tu aplicacion RoR.

Al lado en la misma pagina del Cpanel sale unos botones de PLAY y STOP similares a los de un  reproductor, esto es para ejecutar y poner en funcionamiento la aplicacion RoR o detenerla para que no este ejecutandose en el servidor y no sea accesible por internet.

2- Bien ahora que tenemos lo necesario para nuestra aplicacion nos conectamos a nuestro hosting por medio de SSH con el nombre de usuario y contraseña que nos otorga el proveedor de hosting.

una vez conectados, nos situamos a la carpeta donde se creo la aplicacion ( normalmente se ubica en el directorio /etc/rails_app, asi que

 cd etc/rails_apps/nombreaplicacion 

Una vez ubicados en la carpeta de nuestra aplicacion tecleamos el siguiente comando:

 rails nombreaplicacion 

Esto nos creara la estructura de la aplicacion.

3- Luego de esto debemos crear el controlador de la pagina principal y sus respectivos campos de base de datos. en este caso, y debido a que este es un  tutorial super sencillo e optado por crear un formulario basico y sin mucho maquillaje en donde se solicite los datos de un alumno como nombre, apellido, cedula y se almacenen en la base de dato.   para crear esta estructura tecleamos

 ruby script/generate scaffold alumno nombre:string apellido:string cedula:string 

esto nos creara los archivos html, ruby y estructura de la base de dato necesarios para que en la pagina se visualice el formulario solicitando esos datos.

-alumno es el nombre del controlador que contiene los campos apellido, nombre y cedula,  mas adelante este nombre lo usaremos pero en plural (alumnos) para accesar a nuestra pagina.

4- Ahora solo nos falta migrar la estructura de la base de datos al manejador de base de datos.  antes que nada debemos crear una base de datos y su respectivo usuario en el Cpanel de nuestra cuenta de hosting.

En mi caso use MySQL, asi que para conectar mi aplicacion RoR al servidor de bases de datos MySQL de mi hosting tube que editar el archivo database.yml para que pueda realizar dicha conexion. Este archivo se encuentra en directorio de tu aplicacion dentro de una carpeta llamada “config”  …/nombreaplicacion/config/database.yml

Para editarlo tan solo debemos descargarlo y abrirlo con nuestro editor de codigo favorito y lo editamos de modo que quede similar a este:

Una vez editado tan solo nos falta migrar la estructura antes mencionada a la base de datos creada en el Cpanel, para hacerlo tecleamos en la consola SSH:

 rake db:migrate 

Esto nos debe haber creado las respectivas tablas en la base de datos MySQL.

5- Ahora tan solo debemos correr la aplicacion, para ello debemos dirigirnos de nuevo al Cpanel donde creamos la aplicacion, es decir en “Ruby On Rails”

Recuerdas los botones verde que dice “Correr” debajo de la comlumna acciones ?, pues bueno le damos click alli para iniciar nuestra aplicacion RoR, una vez iniciada tan solo nos falta abrir el navegador  y visualizar nuestra pagina recien creada.  podemos ir a nuestra pagina dando click en el enlace que dice “URL” ubicado debajo del campo SERVIDOR DE VIAS.

si todo salio como esperabamos entonces deberias estar observando una pagina similar a esta.

un momento aqui no sale los campos que habiamos creado,  esto se debe a que esta es la pagina perdeterminada que coloca Rails al crear una aplicacion, para ver la pagina que nosotros creamos tan solo debemos escribir en el navegador la url de nuestra aplicacion rails junto con el nombre de la tabla en plural de la base de datos que creamos.  nos deberia aparecer algo asi:

Bueno eso es todo por los momentos, espero que les sirva tanto como a mi.

Saludos.

  • Share/Bookmark

Sin Entradas Similares.

Esta entrada fue publicada en Rails, Tutoriales y etiquetada , , . Guarda el enlace permanente.

22 respuestas a Creando una Aplicacion Ruby On Rails sencilla en el Cpanel. [Basico]

  1. Sergio dice:

    Hola amigo, cuales son los servicios hosting que soportan RoR en Venezuela? Ando buscando. Gracias

  2. JaMuNiX dice:

    @Sergio. Hola amigo, Aqui en Venezuela es bastante dificil conseguir un buen proveedor que ofresca RoR con acceso Shell. he estado años buscando y solo e podido encontrar un proveedor de hosting con estas caracteristicas. La gente de FjGroup ofrece hosting RoR y acceso SSH. lo e probado y funciona bastante bien.
    Un consejo: cuando busques un proveedor de hosting con RoR, preguntales si tienen acceso shell ya que este es indispensable para poder usar rails, tambien pideles una demo gratuita (antes de comprar) por unos dias para que puedas probar el RoR y el acceso Shell y ver si realmente los tienen activos y satisface tus necesidades.
    Esto lo digo porque ya me e llevado varias decepciones y perdida de dinero adquiriendo un hosting que a la final no tenia nada de lo que solicitaba.
    Con el proveedor que te digo no tendras esos problemas pero si buscas otro, pregunta antes de comprar.
    Saludos y espero te sirva

  3. Pakorito dice:

    Hola, muy buen tutorial

    Solo un detalle al momento de hacer el rake, me muestra lo siguiente:

    rake aborted!
    Access denied for user ‘root’@'localhost’ (using password: YES)

    en mi database.yml ya lo configuré con los datos correspondientes, pero JAMAS indique que mi user mysql fuera root

    Alguna idea de como solucionar esto?

    Saludos y muchas gracias

  4. JaMuNiX dice:

    Ese error puede ser porque tal vez no hayas escrito corrrectamente los datos de usuario o contraseña. revisa tambien que el usuario tenga todos los privilegios de uso de la base de datos que le has asignado. eso lo puedes hacer en el cPanel.

  5. Daniel dice:

    Hola jamunix que gustaria que me dieras los dos hosting que dan servicio RoR, te lo agradezco de antemano y gracias por el tutorial.

  6. JaMuNiX dice:

    @Daniel. Hola Daniel, el proveedor de hosting RoR en Venezuela es FjGroup. Si te fijas esta en la respuesta que le di a Sergio mas arriba.

    Saludos y espero te sirva.

  7. Melvin dice:

    excelente.. esto era lo que estaba buscando..

  8. Hola que amigos, tengo el siguiente caso:

    Un cliente tiene una aplicación RoR en Cpanel pero desea pasarse de proveedor es tan simple la migración como bajar por FTP los archivos y subirlos al nuevo proveedor, que aspectos debería tomar en cuenta. suponiendo que este nuevo proveedor soporta RoR’s.

    Gracias por la ayuda.

  9. JaMuNiX dice:

    En teoria pordria ser tan sencillo como lo dices, copiar los archivos por ftp al servidor del nuevo hosting y migrar la base de datos con el comando ruby db:migrate . El detalle podria estar en que debe asegurarse que el nuevo servidor tenga las mismas gemas instalada o que por lo menos tenga las que necesita la aplicacion que va a migrar.

    Saludos

  10. Melvin dice:

    Amigo compre en FjGroup para trabajar con rails, pero tengo un gran problema, cree la apliacion desde el cpanel, e instale el gem de postgres-pr, pero cuando intento iniciar el servidor me dice:

    Rails requires RubyGems 1.3.1 (your have 1..2.0). Please ‘gem
    update –system’ and try again.

    esta instalado en el servidor la version 2.2.2. estoy consultando con los amigos de Fj Group pero aun no me han podido solucionar, que tu crees que pueda ser??

  11. JaMuNiX dice:

    Sip por lo que se ve creo que deberia actualizar tal como te pide el mensaje de error. Eso es algo que no me agrada mucho de RoR, que debes revisar bien que versiones de gemas son compatibles con la instalacion de Ruby y Rails. Espera la respuesta de FjGroup que de seguro podran ayudarte en algo. sino habra que conformarse con esa instalacion en el servidor ya que un cambio mas drastico podria afectar las demas cuentas de los demas clientes.
    Saludos y suerte.

  12. Melvin dice:

    si eso es lo que me estan diciendo, pero que puedo hacer??? dado que estoy creando el primer proyecto desde cpanel y al mandar a correr me lanza ese error… entonces sino solucionan no voy a poder usar el hosting con rails :(

  13. Daniel dice:

    @Jamunix Ya estoy trabajando con jfGroup y me va de maravilla, pero cuando intento seguir tus pasos para crear la aplicación me genera un error cuando ejecuto el \rake db:migrate\ me dice \no susch file or directory mysql\ ya cree la base de datos en el cpanel con el usuario y la clave y ese mismo usuario y clave lo coloco en el database.yml

    Que pordria estar pasando?

  14. JaMuNiX dice:

    @Daniel asegurate de estar ejecutando el comando dentro de la carpeta de la aplicacion, por ejemplo /etc/rails_apps/nombreaplicacion. Asegurate de estar colocando correctamente todos los datos de Mysql.

    Los pasos explicativos aqui en el post funcionan en su mayoria para aplicaciones hiper- sencillas como la que hago en la explicacion. si creaste una pagina algo mas compleja que requiere plugins y demas, puede que seguir exactamente estos pasos no te funcionen.

    Otra cosa que puedes hacer es crear de nuevo la aplicacion desde cero.

    Saludos

  15. Daniel dice:

    @JaMuNiX ok fijate que en el database.yml en el adaptador tenia mysql y lo cambie por Mysql ejecuto la migracion desde la carpeta de mi aplicacion y lo que me dice es lo siguiente “rake aborted! Please install the Mysql adapter: ‘gem install activerecord-Mysql_adapter’ (no such file to load — active_record/connection_adapters/Ysql_adapter”

    Cuando ejecuto el comando para instalar las gem ‘gem install activerecord-Mysql_adapter’ me dice que no pudo encontrar esa gema.

    Ah debo acotar que ya no instala las aplicaciones en etc/… ahora las instala en una carpeta llamada /rails_apps/ y alli dentro coloca la aplicacion por ejemplo /rails_apps/miaplicacion

  16. JaMuNiX dice:

    @Daniel entonces debe ser problemas con la gema de MySql… creo que tube ese mismo problema hace algun tiempo. pero no lo arregle yo sino la misma compañia de hosting…

    En RoR por lo que veo estos problemas suelen suceder y mucho, yo me e encontrado con muchos errores incluso en un servidor dedicado configurado para RoR

    mandales a a FjGroup el error que te pide la gema de MySql, por que ya en esos casos no es algo que pueda solventar tu o yo. ya eso requiere de la intervencion del sysadmin del servidor.

    Saludos y suerte.

  17. Daniel dice:

    @JaMuNiX Ouch! temía que me dijeras eso… bueno le escribiré al hosting a ver que me pueden resolver para este caso. Muchas gracias por tu ayuda y excelente blog.

    Saludos.

  18. JaMuNiX dice:

    @Daniel en caso de no funcionar nada ya no queda otra que buscar un hosting especializado para RoR, ya que muchos de los hosting tipicos no estan debiadamente configurados para soportar RoR. ademas de ser algo un poco complicado ya que si por ejemplo instalas una version de Ruby en un servidor y le colocas la ultima version RubyGems, cuando instales Rails capas y no sea compatible… eso me a pasado en mi servidor. es por eso que en la web http://rubyonrails.org/download recomiendan versiones de Ruby inferiores a la version actual que es la 1.9.1

    Saludos

  19. Daniel dice:

    @JaMuNiX Conoces algún hosting especializado? yo estoy usando FjGroup que fue el que recomendaste y me ha ido buenísimo solo en la parte de rails es que tengo estos problemitas…

  20. JaMuNiX dice:

    @Daniel mira se que http://www.hostingrails.com railshosting.org son algunos de los especializados aunque en esta categoria no e probado ninguno… la otra opcion es adquirir un VPS o servidor dedicado en USA (mas economico) y configurarlo … eso si alli si debes de tener mucho mas conocimientos y no solo de Ruby o de Rails, sino de todas las herramientas necesarias, ademas de comandos linux.

  21. Daniel dice:

    @JaMuNiX Estoy de vuelta pero mas encaminado, sabes que logre correr la aplicacion pero desde el puerto :3000 y mientras tengo el ruby script/server ejecutando el mongrel. Pero cuando entro al link con el puerto que te genera el Cpanel para la aplicacion me genera el error que te coloco abajo. Dice que que no hay una tabla stories pero claro que no la tengo porque el database.yml lo tengo direccionado a MYSQL y no a SQLite3. }que haria falta instalar para que la aplicacion corra bien con el servidor del cpanel y no con el mongre?

    ActiveRecord::StatementInvalid in StoriesController#index

    SQLite3::SQLException: no such table: stories: SELECT * FROM “stories”
    RAILS_ROOT: /home/apucrea/rails_apps/shovell

    Application Trace | Framework Trace | Full Trace
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:188:in `log’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/sqlite_adapter.rb:132:in `execute’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/sqlite_adapter.rb:372:in `catch_schema_changes’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/sqlite_adapter.rb:132:in `execute’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/sqlite_adapter.rb:275:in `select’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all_without_query_cache’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/query_cache.rb:60:in `select_all’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/query_cache.rb:81:in `cache_sql’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/query_cache.rb:60:in `select_all’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:635:in `find_by_sql’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1490:in `find_every’
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:589:in `find’
    app/controllers/stories_controller.rb:5:in `index’
    /usr/bin/mongrel_rails:19:in `load’
    /usr/bin/mongrel_rails:19
    Request

    Parameters:

    None
    Show session dump

    Response

    Headers:

    {“Content-Type”=>”",
    “cookie”=>[],
    “Cache-Control”=>”no-cache”}

  22. JaMuNiX dice:

    @Daniel, revisa bien los pasos que haces cuando creas la aplicacion, intenta esto:
    - entra en cPanel y crea la aplicacion, luego ve a la terminal y dirigete a la carpeta de la aplicacion que creaste.
    - una ves dentro de la carpeta de la aplicacion crea la estructura de la web y la tablas de la base de datos con el tipico comando que usamos ruby script/generate scaffold ….
    - has los cambios necesarios en el database.yml para que funcione con mysql.
    -migra la base de datos con rake db:migrate
    - vuelve al cPanel y arranca la aplicacion desde alli.
    -entra en la aplicacion desde la url y puerto que te coloca.

    con esto deberia funcionarte correctamente.

    este tipo de errores los encontraras mucho en RoR, muchos de estos se generan cuando almacenas informacion en un campo que no admite ese tipo de datos, es decir si creaste una tabla con puros campos del tipo integer (numero) no podras almacenar por ejemplo un nombre o una letra o simbolo.

    Tengo una aplicacion hecha corriendo sin problemas en el mismo servidor donde esta tu cuenta de hosting, te paso la url a tu correo para que la veas.

    saludos y suerte