DB & Oracle Fernando José on 08 Feb 2009 12:19 am
ApEx, OracleXe en Servidor Dedicado ( Desarrollo Oracle Económico?)
Versión — 0001
Estaba buscando una forma económica de desarrollar con Oracle, probé con Amazon Web Services (AWS) pero salía la cuenta muy alta ( alrededor de 100 USD mes ). Ahora encontré un servidor dedicado por 20 EUR al mes ( económico ) en la gama baja de ovh.es, completamos el cuadro con Oracle XE y Apex.
Limitaciones: La base de datos XE está limitada a un procesador y 4GB que es más que suficiente para una aplicación orientada a una PYME. El servidor de entrada de ovh.es es un Celeron con 1GB en RAM, nuevamente suficiente para una PYME.
Resumen: Contratamos un servidor en Kemsirve con Ubuntu ( gama baja de ovh.es ), instalamos Oracle XE para Ubuntu( Base de datos ), y luego instalamos Oracle ApEx ( Entorno RAD para Oracle ).
Tutorial:
Después de contratar un servidor en Kemsirve, llegará un mail con instrucciones para conectarse como root al servidor contratado. Para conectarse al servidor se puede utilizar putty si se está en windows o ssh directamente si se está en un servidor linux. Una vez conectado como root es bueno configurar unas pocas reglas de iptables ya que el servidor Ubunto no tendrá un muro de fuego por defecto, especialmente para no exponer la base de datos directamente al internet ( muy mala idea ).
iptables -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp –dport 8080 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -j ACCEPT
iptables -A INPUT -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -I INPUT 5 -m limit –limit 5/min -j LOG –log-prefix “iptables denied: ” –log-level 7
iptables -A INPUT -i eth0 -j DROP
Las anteriores son reglas que permiten el acceso a los puertos 22,80 y 8080 (ssh, 80 y 8080) , a hacer ping y bloquean todo el resto del tráfico.
Una vez que esto está listo se puede instalar Oracle XE, como root editamos el archivo /etc/apt/sources.list ( se puede usar el comando nano si no se sabe usar en vi ) y agregamos esto al final:
#oracle repos deb http://oss.oracle.com/debian unstable main non-free
Esto incluye el repositorio de Oracle en la lista de aquellos que se puede utilizar para instalar paquetes. Luego instalamos el Oracle XE con los siguientes comandos como root ( el servidor de Kemsirve usar root, si es un Ubuntu se puede usar el comando sudo).
#>wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
#>apt-get update
#>apt-get install oracle-xe
Después de unos minutos está instalado el software pero no tenemos la base todavia, para instalar y configurar la base como root ponermos el comando:
#>/etc/init.d/oracle-xe configure
Durante el procesos de configuración se nos solicitará la clave para los usuarios administradores de la base SYS y SYSTEM ( recordarla! ), luego nos preguntará si queremos iniciar el servicio de la base de datos y listener cuando el servidor se arranque. El proceso crear la una base de datos, configura el listener y establece los archivos de necesarios para iniciar los servicios ( ya se que no hay servicios en los debian!).
Oracle XE ya viene con una versión de ApEx pero es una versión anterior para actualizarla debemos descargarla de la red de tecnología de oracle (otn.oracle.com) y tener una cuenta activa, el registro es gratuito pero es un paso indispensable para continuar. Una vez que se tenga la cuenta podemos proceder con la descarga desde el servidor utilizando lynx ( recurso obtenido de la página web del Pythian Group ), asi como oracle:
#>su – oracle – para pasar a ser el usuario oracle
oracle> cd — para regresar al home de oracle
~oracle> rm .lynx_cookies — en caso de existir este archivo
~oracle> vi lynx.cfg –se puede utilizar nano
Añadimos las siguiente líneas archivo al editarlo
SET_COOKIES:TRUE
PERSISTENT_COOKIES:TRUE
ACCEPT_ALL_COOKIES:TRUE
COOKIE_FILE:~/.lynx_cookies
INCLUDE:/etc/lynx.cfg
Luego llamamos a lynx ( navegador web en consola (que locura!)).
~oracle> lynx -cfg=./lynx.cfg http://download.oracle.com/otn/java/appexpress/apex_3.1.2.zip
Se nos presentará una pantalla para introducir el usuario y contraseña de la red tecnológica de oracle, luego aplastamos botón derecho o intro para descargar el archivo en el mismo directorio en el cual llamamos a la aplicación. Tomá unos pocos minutos es una descarga de alrededor de 90MB.
El instalador de Oracle para debian y todos sus primos está bien, sin embargo no declara las variables de entorno para poder usar la base de datos XE, es por ello que creamos como oracle ( ojo seguimos como oracle ) el archivo .bash_profile.
~oracle> vi .bash profile– en caso de existir este archivo
Agregamos estas líneas:
#!/bin/bash
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
ORACLE_SID=XE
export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin
export PATH
Luego cargamos estas variables de entorno que nos permitirán usar el software de la base de datos.
~oracle> . .bash_profile
–para cargar el perfil en la sesión actual, no necesario si se realizan otras conexiones.
~oracle> env | grep ORACLE
–para valirdar que el ORACLE_HOME y ORACLE_SID esten presentes
~oracle> env | grep PATH
–para valirdar que el PATH apunte a ORACLE_HOME/bin
Una vez establecidas estas variables se debe descomprimir el software que descargamos en algún lugar, yo lo pongo junto a los binarios de la base:
~oracle> cd –para regresar al home de oracle
>>oracle>mv apex_3.1.2.zip ./app/oracle/product/
>>oracle>cd app/oracle/product/
>>oracle>unzip apex_3.1.2.zip
esto crea un directorio que se llama “apex”.
>>oracle>cd apex
>>oracle>sqplus sys@xe as sysdba – para ingresar a la base como sys
—> ingresamos el password
SQL> @apexins SYSAUX SYSAUX TEMP /i/ –este comando instala apex
Después de unos 30 minutos el proceso debe terminar sin errores, inmediatamente sale al sistema para debemos configurar todavia la cuenta de administrador y el puerto del ApEx, para ello como oracle:
~oracle>sqplus sys@xe as sysdba
– para ingresar a la base como sys
SQL>@apxchpwd
– para cambiar la password del usuario “admin” de apex
SQL>@apex_epg_config /usr/lib/oracle/xe/app/oracle/product
– para configurar el plsql gateway (la web)
SQL>ALTER USER ANONYMOUS ACCOUNT UNLOCK;
–desbloquea el usuario anónimo (para la web)
SQL>@apxldimg.sql /usr/lib/oracle/xe/app/oracle/product
–para actualizar la imágenes de ApEx
SQL> SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;
–para validar en que puerto está configurado el gateway ( tiene que ser 8080).
SQL>EXEC DBMS_XDB.SETHTTPPORT(8080);
–para establecer el puerto (en caso de que no sea correcto).
Todos estos pasos se encuentran en la guía de instalación de Oracle ApEx aunque un poco más dispersos. Para ingresar a apex ponemos la dirección del servidor http://miservidor:8080/apex , para ingresar a la consola de administraciónhttp://miservidor:8080/apex/apex_admin.
Ahora bien con esto termino la versión 00001 de esta guía, para poder realizar una aplicación se ingresa a la consola con administrador se crea un workspace de desarrrollo se hace logout y se ingresa con el usuario de desarrollo y el nombre del workspace ( hoy ya me cansé pongo pantallas de eso luego).
Como podrá intuir cualquier paranoico ( yo soy uno ) esta configuración no es extremadamente segura ( depende de que tan seguro sea el oracle ), se puede utilizar un servidor web para redireccionar la información de ApEx eso también espero descubrir como.
Finalmente el producto no está completo sin poder generar PDFs para descargar documentos imprimibles, sé que eso se puede realizar redireccionando datos a un Tomcat y utilizando unas cuantos servlets, ya que la solución de Oracle para ello es de pago, eso también espero adjuntarlo a este tutorial.
Espero que sea de utilidad.
Slds
FJA

on 04 Mar 2009 at 18:58 1.danwan said …
Hola José,
Muchas gracias por tus guías. Gracias a ellas hemos solventado y descubierto alguna que otra cosa. Estabamos pensando en contratar algún hosting en kemsirve/ovh. Nos iría perfecto saber que opinas al respecto, que consideras que se debe tener en cuenta (backups infraestructura/base de datos,…) y problemas que te has encontrado (¡ya que lo tienes comprado!)
Como no todo pueden ser peticiones, te envío un tutorial sobre la solución para imprimir pdfs que no es de pago (cocoon) directa desde la web de un buen amigo mio (http://www.poveravoce.net/blog/?p=85).
Saludos!
Dani
on 04 Mar 2009 at 20:37 2.Fernando José said …
Hola Dani.
El servidor de kemsirve es una buena opción. Sin embargo hacer los backups puede ser un problema ya que solo tiene la opción de hacerlos por ftp en la red interna en la gama de ovh ( que es más costosa ).
Tengo ya instalado apex en un servidor para una applicación pequeña y no he tenido problemas.
Estaba pensando solventar el tema de los backups con un volúmen en Amazon S3.
Saludos
FJA
on 04 Mar 2009 at 20:37 3.Fernando José said …
Ahh muchas gracias por el tutorial. Ahora estoy liado pero espero probarlo en breve. Slds
FJA
on 13 Mar 2009 at 04:26 4.Pablo said …
Hola Fernando, gracias por el tutorial, ya lo complete pero me encuentro con el error de que no me carga los css ni el javascript en el index. No hace nada al pulsar el botón Login, comprobé que en la dirección http://localhost:8080/i/ se encuentra todo… además de verificar que la carpeta tiene los permisos para ser accedida, que puede ser?. Saludos
Pablo Gerez
on 13 Mar 2009 at 09:25 5.Fernando José said …
Pablo para acceder es el :8080/apex
on 13 Mar 2009 at 14:08 6.Pablo said …
Si ingresa al index con http://localhost:8080/apex , pero no me toma ni los estilos ni el javasctipt, tal es asi que cuando intento hacer login el boton no hace nada.
on 19 Mar 2009 at 18:48 7.Juan Camilo Ruiz said …
Exelente articulo. Presenta una solución enfocada para Pymes donde se pueden llegar a desarrollar aplicaciones pequeñas, web y que utilicen un motor de base de datos Oracle.
Hasta ahora descubro tu blog, voy a adicionarlo a mi blogroll.
Saludos
Juan Camilo
on 22 Apr 2009 at 16:21 8.Randall said …
Gracias por el artículo. Tengo un duda sobre el kemsirve. Tenía entendido que sólo estaba disponible para residentes europeos. Sigue siendo así o ya cambiaron esa política?
on 22 Apr 2009 at 19:44 9.Fernando José said …
Hola Randall.
La verdad no tengo la menor idea al respecto, voy a intentar averiguarlo.
on 22 Apr 2009 at 19:49 10.Fernando José said …
Hola Juan Camilo.
Gracias por tu comentario.
No he podido escribir estos días porque estoy con mucho trabajo pero en Junio se vienen mas artículos.
Slds
FJA
on 22 Apr 2009 at 20:33 11.Fernando José said …
Hola Pablo el problema es al cargar las imágenes. Pon atención en ese paso.
on 28 Apr 2009 at 00:16 12.jose said …
Hola Fernando :
Tengo un negocio de e-mailing y necesito un servidor dedicado para dar este servicio, he estado buscando un servidor dedicado economico y que tenga buen performance, crees tu que el de Kemsirve pueda serme util ya que debo enviar 1 millon de correos cada vez y no quiero que el servidor tenga ningun tipo de restricciones, favor de responder a mi correo. Saludos. Jose
on 13 Jun 2009 at 05:21 13.Antonio Párraga said …
Hola, muy intresante tu artículo, soy nuevo en esto de base de datos, y me llama la atención tu afirmación de que : “La base de datos XE está limitada a un procesador y 4GB que es más que suficiente para una aplicación orientada a una PYME.” cómo pueden saber que 4GB es suficiente para una PYME?, acaso hay algún indicador como una media obtenida a partir de encuestas a las Pymes? Disculparás mi ignorancia, la verdad no soy DBA o cosa por el estilo, pero me empieza a gustar esto de las bases de datos, sobre todo, me llaman la atención Oracle XE y DB2 Express C que es ilimitada si la comparamos con Oracle XE.
Antonio.
on 14 Jun 2009 at 22:42 14.Oscar Palacios said …
Saludos.
Estoy intentando configurar el APEX incluido en el ORACLE 11g Enterprise Edition para acceder a las aplicaciones via https, algunos articulos indican que debo modificar algunos archivos contenidos dentro del $ORACLE_HOME/Apache para configurar el puerto, así como el opmn.xml para acivar el modo SSl, ref: http://c2anton.blogspot.com/2006/10/setting-up-ssl-for-application-express.html El problema es que tal directorio no existe, lo mismo pasa con el archivo opmn.xml, tengo entendido que estos elementos estan presentes cuando se ha instalado el Oracle http Server, posiblemente como un componente del OAS, me parece que actualmente mi modo de acceso al APEX es por medio del default pl/sql gateway.
Como dije anteriormente no instalé manualmente el APEX, solo completé algunos pasos para su configuración, ya tengo aplicaciones desarrolladas y funcionando.
Espero que alguien me pueda dar una idea para poder acceder a las aplicaciones APEX via https, considerando las restricciones mencionadas, hasta ahora lo que he hecho es:
- Crear un nuevo wallet por medio del Oracle Wallet Manager, con lo que generé una petición de certificado.
- Generar un nuevo certificado por medio del OpenSSL.
- Configurar el APEX para usar el wallet creado anteriormente, se podría suponer que con esto es suficiente, pero hasta este punto no se han configurado puertos o servicios así que no conozco el modo de probarlo.
- Intenté bajar el OHS directamente, pero no lo encontré como tal, estoy descargando el Oracle WebLogic Server 10.3 Full Package Installer, planeo instalarlo en otro home esperando que esto me cree el arbol de directorios necesario.
Espero que me puedan ayudar, dejo mi correo: aqua_palacios@hotmail.com
De antemano, muchas gracias.
on 22 Jun 2009 at 00:35 15.Fernando José said …
Hola Antonio.
Prueba a crear una tabla de clientes con unos cuantos registros no llega a ocupar ni 64K. Si ere suna PYME asumo que no tendras tantos clientes ni una facturación tan brutal. Con unos pocos cientos de megas seran mas que suficientes.
Algunos portales que llevo de empresas en PHP con MYSQL no ocupan ni un mega. He alli mi afirmación de que con 4GB es mas que suficiente.
Slds
FJA
on 22 Jun 2009 at 00:37 16.Fernando José said …
No tengo ni idea de lo que me pides. No llevo servidores de mailing masivo ( ni espero llevarlos nunca ).
Saludos
FJA
on 22 Jun 2009 at 00:42 17.Fernando José said …
Yo de lo que comprendo de este asunto es que se puede utilizar el APEX con un servidor apache por delante o con un servidor creado en PLSQL que tiene Oracle.
No he probado usarlo con SSL así que tendré que montar tu configuración y probar. Según veo lo que quieres es un servidor web seguro como entrada al APEX.
Me lo quedo de tarea.
Slds
FAJ
on 22 Jun 2009 at 00:45 18.Fernando José said …
No tengo la mas remota idea si solo es válido para residentes europeos.
on 22 Jun 2009 at 00:45 19.Fernando José said …
Saludos gracias por pasarte por el blog.
on 22 Jun 2009 at 00:46 20.Fernando José said …
Es un problema en el paso de la carga de las imagenes ojo con el parámtro /i/
on 13 Jul 2009 at 18:17 21.Rayback said …
Buenos Dias:
Soy de Panamá Estoy intentado instalar el apex en un servidor local y al momento de corre el comando de @apexins me manda un error en la instalacion como si faltara crear algunos usuarios previo a la corrida de este comando. No se si estos usuarios debe generarlos en el OEM? Me podrian guiar sobre este particular…
on 13 Jul 2009 at 19:19 22.Fernando José said …
Seria interesante que pongas el error. Con tan poca información se puede hacer poco.
El script que mencionas crea todo lo necesario.
Slds
FJA
on 17 Jul 2009 at 20:03 23.eluna said …
Pablo, probá @apex_epg_config SYSTEM_DRIVE:\TEMP ( donde SYSTEM_DRIVE es el disco donde tenès instalado el apex). Esto deberìa funcionar, ya que así arreglé mi problema con las imágenes que no se cargaban en el login.
Saludos.
Esteban.
on 05 May 2010 at 16:35 24.Ricardo Munoz said …
Hola una simple pregunta, lo que pasa es que por el momento no estoy utilizando lo que es Oracle xe pero quiero que cuando comience el servidor no cargue automaticamente esta aplicacion ya que estoy trabajando en una maquina virtual y me alenta bastante el arranque, que archivo(s) debo cambiar para que no se inicie desde el arranque de la maquina virtual? He estado buscando y no lo encuentro se los agradeceria mucho