Guia completa de OPENSHIFT de RED HAT para principiantes (Windows)

La empresa REDHAT ha creado una plataforma para desplegar aplicaciones web con muchas opciones como PHP, RUBY, JAVA, PHYTON, NODE.js entre otras y totalmente gratuito, pero para los que somos usuarios de Microsoft Windows esto es algo complicado ya que nunca hemos tocado conceptos como repositorios remotos y pues a mi se me ha complicado algo hacer funcionar una aplicación en esta plataforma pero lo he conseguido ahora una explicaciónde como esto funciona.

Pues el registro es sencillo, es como registrarse en cualquier pagina o servicio web, aqui la URL del registro:

https://www.openshift.com/

Una vez registrado podras acceder a crear nuevas aplicaciones, para ello puedes dale click sobre MYAPPS, alli le das click sobre «ADD APPLICATION»:

Baja en la pagina y selecciona que tipo de aplicación vaz a crear, para el caso voy a utilizar PHP 5.3, te mostrara las opciones y te pedira el nobre de tu aplicación, en este caso le voy a poner: demo4blog, bajas y le das click sobre «Create application», cuando termine te va indicar los pasos que debes de seguir para usar git y actualizar la aplicación.

Los usarios de Windows estamos acostumbrados a usar un FTP para subir nuestras aplicaciones pero en este caso no funciona de esa manera, sino que tenemos que usar una herramienta llamada GIT que trabaja con repositorios, con repositorios me refiero a que en el servidor tenemos un conjunto de carpetas y que las debemos replicar en nuestra PC y despues de realizar los cambios que queramos en las carpeta mediante comandos actualizar el repositorio remoto, que no es otra cosa que las mismas carpetas, pero como se hace esto.

Bien para trabajar con openshift ve a esta pagina https://www.openshift.com/developers/rhc-client-tools-install e instala lo que que te pide, pero siguiendo estas opciones importantes:

Descarga e instala Ruby 1.9 (yo tengo instalado rubyinstaller-1.9.3-p194.exe) pero ten encuenta que al instalar marcale la opcion «Add Ruby executables to your PATH» osea añade la ruta de los archivos ejecutables de Ruby en la variable de entorno de Windows, si no haces esto vaz a estar en problemas, claro puedes hacerlo luego dirigiendote a las «Propiedades del Sistema» (tecla Windows+pausa)-> «opciones avanzadas»->»variables de entorno», alli en la lista inferior (variables del sistema) busca PATH le das doble click y le adicionas al comienzo: «<rutadonde instalastes ruby>\bin;» (sin las comillas), aceptas y listo.

Ahora por el GIT, bien ve y descarga la version de git para windows (yo tengo instalada Git-1.7.11-preview20120710.exe)

Ahora yo todo lo trabajo desde la consola de git pues asi todos los ejemplos y manuales que son para linux los puedes ejecutar y copiar tal cual ya que este es una consola con los comandos de linux asi que si sigues leyendo el manual de instalacion oficial de Openshift te dice que instales gem pues nada ya en la cosola de GIT (encontraras el bash en Menu Inicio->Programas->GIT->Git Bash), si cargas esta opcion veras que carga una una consola de comandos pero muy a lo LINUX, asi que desde alli ejecuta el comando «gem install rhc» sin las comillas claro, no desesperes si parece que no hace nada, si lo hace solo que esta trabajandolo todo desde la internet, asi que demora algo en mostrar algun msg, pero luego ya veras como te van saliendo msgs de instalación.

instalgemrhc

Una vez terminado eso ejecuta el comando «rhc setup» (sin las comillas) para seguir el generador de claves y acceso:

setup1

Alli logeate con tus credenciales que creastes al registrarte en openshift. Luego de logearte te va a preguntar si desea que cree los accesos para poder trabajar, a lo que respondes escribiendo «yes» y pulsando la tecla «Enter», cuando termine ya esta listo, pero que es lo que genera, genera los codigos de autenticación para que se comunique el servidor con tu computador de forma segura.

setup3

Bien si todo salio correcto veraz esta pantalla pero claro sin una de las aplicaciones la que dice «myrad4phpdemo» pues esa es una palicacion mia anterior.

setup4

Con eso ya tienes configurado el cliente para el Git, voy a explicar ahora los tres comandos basicos que se usan para trabajar con esta herramienta:

  • clone: clona un repositorio remoto en la carpeta actua a la que apunta el bash del git ahora mismo.
  • add: esta permite adicionar los nuevos archivos
  • commit: prepara la actualizacion de los archivos
  • push: envia los cambios preparado por commit al repositorio remoto (servidor)

Para tener una copia de la carpeta que tenemos en openshift primero vamos a movernos a una carpeta en donde reciviremos estos elementos, asi que a movernos por medio de cd en el bash, en este caso yo voy a querer que este en d:\myopeshift\demo4blog, pues para eso vamos al bash y le ponemos: cd d:/myopenshift, claro la carpeta debe de existir, sino la creamos con mkdir <nombrecarpeta> donde nombre carpeta en este caso seria «myopenshift» (sin las comillas), pueden ver como lo hice en la imagen en el bash:

setup5

Ahora que ya estamos en la carpeta pues vamos a clonar nuestra aplicacion, para ello ve a la pagina del openshift, si en la que dejamos el browser despues de crear la aplicacion y copia la linea que esta en amarillo algo como git clone ssh://<aqui va algo que no quiero publicar>@demo4blog-webphp.rhcloud.com/~/git/demo4blog.git/, cuando tengas eso puedes pegarlo en la consola, para pegar en las consolas de Windows ve al icono de la parte superior izquierda, dale click y en el menu editar ubica pegar y le das sobre la opcion:

setup6

Si cerrastes la pagina de openshift no entres en panico, entra nuevamente y pulsa sobre myapps luego veras el nombre de tu app y le das click alli veras el codigo ssh del tu app, copialo y escribe en la consola del bash: git clone y pega lo copiado. Al darle enter te va preguntar algo y le respondes con «yes» (sin las comillas) la consola va mostrar el progreso de la copia y otras opciones algo como (e ocultado algunas cosas propias de mi servidor):

clonar

Con eso ha creado un carpeta con el nobre de la aplicacion en este caso «demo4blog» asi que podemos acceder a ella por medio del explorador de Windows y veras que ha creado cinco carpetas, las dos primeras (.git y .openshift) son propias del administrador del GIT asi que nunca toques su contenido, las otras tres (libs, misc y php) son en las que va a estar tu app, pero en realidad solo usa la llamada php alli vaz a colocar todo tu codigo de PHP.

Bien ahora lo que vamos a hacer es cambiar el index.php que esta en la carpeta php de nuestra carpeta creada al clonar el repositorio, edito el archivo index.php y le pondre esto:

<!doctype html>
<html lang=»en»>
<head>
<meta charset=»utf-8″>
<meta http-equiv=»X-UA-Compatible» content=»IE=edge,chrome=1″>
<title>Demo para el blog</title>
</head>
<body>
<h1>
Demo para el blog https://xmeele.wordpress.com
</h1>
<p>
Ahora veran los cambios en el index.
</p>
</body>
</html>

Cuando ya tengo el archivo modificado (index.php lo he editado con cualquier editor de php o con el mismo notepad de Windows) voy nuevamente a mi consola del git y cambio de directorio, recuerden que me dejo en d:\myopenshift pero al clonar me creo otra carpeta asi que le pongo cd demo4blog y alli voy a jecutar los comandos:

  • git add .
  • git commit -a -m ‘miprimerupdate’
  • git push

Y vaz a tener los siguientes resultados en la consola:

update

push

Ahora si vaz a la direccion de la pagina veras que ha actualizado con el nuevo archivo index.php

demolista

Bien hasta aqui ya tienes como subir nuevos php, puedes agreagar carpetas, sub carpetas, archivos y modificar archivos, copiar un proyecto completo, claro esta a la carpeta «php» en la carpeta donde clonaste el repositorio y el trabajo es siempre el mismo:

  • git add . para crear la lista de cambios
  • git commit -a -m ‘tu msg’
  • git push //para que suba los archivos

Bien, ahora lo que queremos es que no solo trabje con PHP sino con MYSQL, para ello volvamos a la web y digamosles add cartritges como en las imagenes:

addcartridge

Aqui seleccionamos MySQL Database 5.1

addmysql

addcartridge1

Bien luego de eso te va a mostrar una pagina con algunos datos de tu BD como nombre de la base de datos, usuario, password y demas pero lo mas importante no esta el ip del servidor, no puedes conectarte sin el ip del server, bien puedes hacer una cosa usar un port forward, con eso lo que va a pasar es que el rhc que instalamos va redireccionar tus puertos hacia los del servidor, para eso ve a la consola del bash y escribe rhc port-forward -a <nombredelaapp> en este caso <nombredelaapp> seria demo4blog.

forward

Nota: si el comando port-forward encuentra el puero 3306 ocupado (puerto por defecto de mysql) o el puerto 80 ocupado te dara otro puerto diferente, tenga cuidado de guardar configuraciones en los programas con esos puertos diferentes.

Ahora si usas una aplicacion de windows como MySQL Querry Borwser o MySQLWorkBench (son gratuitos) podras conectarte como si estubieras en tu entono local:

mysqlqb

Con eso podras manejar tu BD remota como si estubieras en el localhost, pero que pasa si olvide mi usuario y contraseña y tambien el nombre de mi base de datos como me conecto o como obtengo esa información, pues se peude desde el bash de git con el comando: rhc cartridge show mysql-5.1 -a <nombreapp> donde en este caso <nombreapp> es demo4blog.

Adicionado ultimamente:

Cuando quieras desarrollar una aplicacion el nombre del servidor esta en esta variable global $OPENSHIFT_MYSQL_DB_HOST y el puerto $OPENSHIFT_MYSQL_DB_PORT.

Bien ya esta creo que con esto ya tienen lo necesario para trabajar con Openshift, comenten si tiene alguna duda.

Acerca de

Antes que nada voy a dejar en claro algo, en este blog escribo como se me place, asi que no busquen errores de ortografia o de redaccion que los van a encontrar a montones y tampoco me critiquen o me digan nada sobre ellos pues no tengo intencion alguna de cambiarlos, lo que escribo lo dejo asi y no lo corrijo,claro esta a menos que sean lineas de codigo. Jorge Prado Anci, profesional en desarrollo de aplicaciones, en especial las dirigidas a bases de datos. He trabajado con VFP en casi todas sus versiones, se algo de Java (que no me gusta, es eso solo no me gusta, es bueno pero no me gusta), lo suficiente de PHP como para tener mi propio CMS(es que sigue sin gustarme por la capacidad de desorden que te permite este “lenguaje”), VB lo conoci y lo deteste tanto que lo olvide al punto de no querer adoptar ni por obligacion a su reemplazante VB .NET (por lo mismo de Java) y si C# este si me encanta y aun que conozco bastante bien el lenguaje, la verdad es que me falta mucho del Framework (del 100% estare en un 65%). Soy un apasionado por el orden (en los proyectos de desarrollo), de la programacion en capas (de MVC conozco pero no he aplicado mucho), los estandares y las condenadas pruebas unitaria. Venga creo que ya con esto fue suficiente.

Tagged with: , , , , , , , , , , , , , , , ,
Publicado en php, TI, Webs Internet
22 comments on “Guia completa de OPENSHIFT de RED HAT para principiantes (Windows)
  1. Kevin dice:

    Xmeele, muchas felicidades por tu post, me ha ayudado mucho, el mejor de todos los que he visto y desde luego todo correcto y muy bien explicado. De nuevo gracias.

  2. Pablo dice:

    Gran post. Muchas gracias me ha servido de mucho. Pero me he atascado en algo. Yo utilizo workbench y me da error al crear «new server instance».
    Ya he parado el servidor apache que tengo por el 8080 y el servidor MySQL que tengo por el 3306.

    Prodrias ayudarme.

    Muchas gracias por anticipado y enhorabuena por ese post.

    • xmeele dice:

      Pablo:
      Si lo que deseas es crear una instancia para administrar el servidor «Server Administration» no creoq ue eso sea posible ya que estarias pidiendo a RedHat que te deje administrar el servidor de MySQL que tiene en la nube y eso no creo que sea posible ya que si lees el segundo paso en el Workbemch esta pidiendo un archivo de configuracion para manipularlo y no creoq ue tengas ese nivel de seguridad dentro de redhat como para hacerlo, pero si lo que quieres es ver tu base de datos, crear un esquema, si se puede hacer, si no haz podido hacer el esquema o consultas a ala base de datos dedes este software indicame que error se produce.
      Como dato final esto es una plataforma para desplegar aplicaciones, no es un servidor virtual donde puedes configurar todo a tu gusto, claro seria genial que se pudiera pero al menos hasta donde he visto no se puede configurar los servidores (Apache y MySQL).

      • Pablo dice:

        La verdad es que intentar crear una instancia del servicor fue un fallo por mi parte.
        He creado una conexión con los datos que me proporciona si he podido hacerla.

        Voy a probar a crear alguna tabla a ver si me funciona bien.

        De nuevo muchas gracias y enhorabuena por esto que haces.

  3. wil dice:

    Buenas, queria saber como le camio el usuario y el pass a un proyecto ya creado en el git bash

  4. denis dice:

    Me gusta usar con MySQL en win – herramienta gratuita de Valentina Studio, hace todo lo que necesito, y lo hace muy bien http://www.valentina-db.com/en/valentina-studio-overview

  5. […] tenia una relación ciclica osea se relaciona asi misma, en ese mismo mes al fin pude acceder a Openshift de RedHat un servicio de esa empresa gratuito para desplegar aplicaciones web y publiqué un tutorial de como […]

  6. Leandro dice:

    muchas gracias

  7. Hola, gran post, gracias por tu aporte. Tengo un problema, cuando quiero conectar a través de MySQL Query Browser a mi localhost, no logro hacerlo, he introducido el usuario y contraseña que obtengo después de escribir la línea «rhc cartridge show mysql-5.5 -a php5» que me muestra: Database name, password, username; tomo estos valores y los introduzco tal como está en este tutorial, pero el puerto local disponible que me muestra es: 127.0.0.1:3307, no me muestra el puerto 3306, yo tengo instalada en mi máquina el Apache y MySQL de una instalación antigua, me manda error de conexión. Gracias

  8. Hola Xmeele, aún tengo un problema para conectar mi bd, esta es mi línea de conexión:

    <?php
    $conexion= mysql_connect($OPENSHIFT_MYSQL_DB_HOST, "adminWcpnq2E", "a-VI9I8ALFF"); //servidor, usuario, password

    entiendo que debo poner el nombre del servidor con esa variable, pero no muestra nada o cómo debo capturarla. Muchas gracias

  9. Carlos Malatesta dice:

    Estimado,
    cree un openshift con drupal. El tema es que yo en un servidor de mi trabajo tengo un drupal ya configurado y todo modificado. Como hago para pisar el drupal openshift online con el de un equipo fisico?
    Ya lo tengo clonado el drupal online a una pc.

  10. Santi dice:

    Hola, tengo un problema al generar el token con «rhc setup» despues de poner «yes» para generar el token me dice:

    Generating an authorization token for this client … Only valid UTF-8 encoded inputs are accepted

  11. Edgar Campos dice:

    Hola amigo tengo una consulta. yo ya tengo agregada una cuenta, y cuando hago «rhc setup» toma los datos de esta y no me deja instalar otra, como puedo hacer eso?

  12. Hernan dice:

    Hola. Excelente el contenido. He logrado publicar una aplicación que actualiza una base de datos de mysql. Lo que si he puesto directamente en la URL es el IP y el puerto que brinda openshift. ¿Como se utilizan las variables $OPENSHIFT_MYSQL_DB_HOST y $OPENSHIFT_MYSQL_DB_PORT? Directamente para encadenar la URL?

  13. Leandro dice:

    Muchas gracias, ha sido de gran utilidad su aporte!

  14. Hernan Edy dice:

    Excelente el contenido; algunos aspectos hay que profundizarlos; el $OPENSHIFT_MYSQL_DB_HOST y el $OPENSHIFT_MYSQL_DB_PORT deben ser «capturados» por el lenguaje de programación con una sentencia de variable de memoria. En términos de PHP para el HOST:
    define( «DB_SERVER», $_ENV[‘OPENSHIFT_MYSQL_DB_HOST’] );
    $connect = mysql_connect( DB_SERVER, DB_USER, DB_PASSWORD );
    En términos de Java:
    DB_SERVER = System.getenv(‘OPENSHIFT_MYSQL_DB_HOST’)

  15. grovervas dice:

    Excelente tutorial lo he seguido paso a paso, agunos detalles que resolvi porque las versions son otras, pero me funciono a la perfección y ahora tengo mi app en codeigniter corriendo sin problemas….

  16. Jashimi Sugaya dice:

    Tengo un problema al subir mi repositorio local a mi server openshift , mi app en codeigniter no puede conectar a mi base de datos , como puedo reiniciar el mysql ??

  17. La vista previa del desarrollador ya no utiliza rhc, use oc como herramienta de línea de comandos

Replica a Kevin Cancelar la respuesta

Escribe tu dirección de correo electrónico para suscribirte a este blog, y recibir notificaciones de nuevos mensajes por correo.

Únete a otros 468 suscriptores
Blog Stats
  • 415.644 hits