Configurar cliente oracle para php y apache

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Acabo de terminar una instalación, les dejo las anotaciones.

Si quieres montar un servidor apache+php que sea capaz de conectarse a Oracle, porque tu código php se conecta a una base de datos oracle (disculpen lo obvio, pero no está de más recalcarlo), se debe realizar lo siguiente:

Entorno:
CentOS 7, instalación mínima con acceso a repositorios de CentOS y de pecl.


Instalar los paquetes necesarios y luego actualizar.

Código:
# yum install httpd gcc php php-pear php-devel php-xml

# reboot

# yum update

# reboot

Instalar oracle-instantclient. Esto se descarga desde oracle. Descárguenlo y cópienlo al servidor.

Código:
# yum localinstall oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
# yum localinstall oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm

Crear enlace simbólico a librería

Código:
# cd /usr/lib/oracle/12.2/client64/lib
# ln -s libclntsh.so.12.1 libclntsh.so.11.1

Opcional: configurar proxy para pecl
Código:
# pear config-set http_proxy http://proxy:puerto_proxy

Configurar oci 8

Código:
# pecl install oci8-2.0.12
Cuando pregunte por el home, dar [ENTER] para que tome el valor automático.


Agregar línea de extensión de oci en php.ini

Código:
# vi /etc/php.ini
extension=oci8.so

Esto es por rendimiento. Descomentar opción de cache de sentencia

Código:
# vi /etc/php.ini
oci8.statement_cache_size = 20

Editar archivo de variables de entorno para apache

Código:
#   vi /etc/sysconfig/httpd
y agregar al final
Código:
   # Requerido para Oracle.
   ORACLE_HOME=/usr/lib/oracle/12.2/client64
   LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
   TNS_ADMIN=/usr/lib/oracle/12.2/client64

Crear archivo TNSNAMES.ORA con el string de conexión requerido por su aplicación

Código:
# vi /usr/lib/oracle/12.2/client64/TNSNAMES.ORA
y dentro del tnsnames.ora escriban los orígenes de datos.


Y eso sería.
 
Última modificación:

kal-b

Miembro Activo
Hola: ... Excelente ... gracias. Aunque es del 2018 ... ¿Qué experiencia u opinión tienes con Oracle (que estoy estudando hace rato) y Drupal (8 en lo exacto)?. Gracias
 

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Hola: ... Excelente ... gracias. Aunque es del 2018 ... ¿Qué experiencia u opinión tienes con Oracle (que estoy estudando hace rato) y Drupal (8 en lo exacto)?. Gracias
Drupal nada :( ¿Tienes problemas para conectarlo a Oracle?
 

kal-b

Miembro Activo
Hola ... gracias por tu respuesta. Estaba interesado ... o en realidad muy interesado en tu respuesta/experiencia respecto de una posible relación entre Drupal y Oracle. No he querido intentar hacer pruebas. No me da el cuero por nada de tiempo. Además de que es complejo aún para quienes se manejan en ambos "programas". Complejo por ciertos "detallitos" que terminan por hacerlo cuesta arriba. Hace tiempo que estamos desarrollando varios proyectos (muy interesantes) con algunos CMS. Para que puedan ser usados por usuarios/organizaciones en sus trabajos. En resumen worpress para cosas "relativamente simples" (aunque es muy bueno para otras más complejas si se manejan bien los recursos y se quita lo superfluo); Joomla para usuarios relacionados a proyectos de diarios electrónicos (estoy resumiendo los comentarios) ... y Drupal para proyectos más grandes y complejos. Para que se le vaya tomando el pulso a herramientas de este tipo (se aprende con lo que se tiene a mano) ... y cuando se tengan las lucas ... y la experiencia, crear proyectos absolutamente personalizados. Bueno, para hacerla corta ... nosotros estamos diseñando y depurando ciertos trabajos interesantes con Drupal (a pesar de que varios nos han tratado de disuadir con argumentos técnicos) ... hasta que podamos migrar a un software (que ya estamos diseñando) propio ... usando Oracle como gestionador de nuestras bases de datos. Sinceramente pensaba pedirte asesoría profesional en ese momento. Nos conocemos, pero fue hace años (varios ya) ... y te tengo considerado para que, en algún momento, trabajemos en conjunto. No por el momento (en realidad no se hasta cuando estaremos trabajando con drupal) ... pero si en su momento. Yo soy entusiasta .. pero me supera la cantidad de trabajo y , por el momento, nada de tiempo. Largo e inoficioso de contar. Eeeen fin ... saludos!
 

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Una consulta @kal-b . Acá me voy a poner medio @unreal4u , pero igual.

¿Por qué Drupal corriendo con Oracle y no corriendo en, no se, Postrgres o el propio MySql que es recomendado por Drupal? Y te lo pregunto porque a pesar de que yo soy del mundo Oracle y considero que Oracle está varios pisos por sobre Postgres (y muchísimos pisos más sobre MySql), no se si vale la pena pagar la licencia de una BD Oracle para ocuparla en Drupal.

Además Oracle es super mañoso con el licenciamiento, especialmente si lo instalarás en una plataforma de virtualización que no sea del mismo Oracle.


Si, Oracle es mejor que Postgres. Vengan de a uno prros.

 

kal-b

Miembro Activo
Una consulta @kal-b . Acá me voy a poner medio @unreal4u , pero igual.

¿Por qué Drupal corriendo con Oracle y no corriendo en, no se, Postrgres o el propio MySql que es recomendado por Drupal? Y te lo pregunto porque a pesar de que yo soy del mundo Oracle y considero que Oracle está varios pisos por sobre Postgres (y muchísimos pisos más sobre MySql), no se si vale la pena pagar la licencia de una BD Oracle para ocuparla en Drupal.

Además Oracle es super mañoso con el licenciamiento, especialmente si lo instalarás en una plataforma de virtualización que no sea del mismo Oracle.


Si, Oracle es mejor que Postgres. Vengan de a uno prros.

Cada cosa a su tiempo. Estamos trabajando con MySql por que es de facto. En resumen no webea nada ... calza como anillo al dedo con Drupal. El posible recurso "óptimo" de los CMS es que se preocupan de gestionar. La gente, el usuario normal, lo usa para tener "algo", una herramienta que se encargue de lo "administrativo". Y él (usuario)... solo del contenido. Un usuario más avanzado, que está siendo más puntilloso en ciertos aspectos (y manejo más superior del desgaste o integridad de los datos ...) comienza a entnder que Postgres es mejor. Pero tiene que lidiar con ciertas salidas de madre en la relación entre ambas. Hemos probado Postgres solo por probar y entender como funca con Drupal por si acaso nos preguntan algo. Peeero ... Oracle es LA forma de trabajo. Sabemos a ciencia cierta que sí o sí terminaremos trabajando con él ... pero no con Drupal y Oracle. Sino ... como tu señalas, con software diseñado especificamente para trabajar con Oracle. Por lo que estamos juntando las lucas para armar el equipo y desarrollar todo el sistema ... "a partir de todo lo que generamos y desarrollamos con drupal". El diseño, el funcionamiento, los detalles se verán funcionando un par de años (o más) hasta que migremos a software privativo. Y ... por eso yo estoy preparándome para trabajar con ello. Y, especialmente con los protocolos de seguridad (y manejo de servidores). En fin ... solo son algunos comentarios. Dando un paso a la vez.
 

kal-b

Miembro Activo
Uuuhhh ... había pasado por alto este comentario. Sí ... bueno ... primero ... se que estoy comentando cosas con gente que sabe mucho (demasiado) de aspectos técnicos. Aspectos que no quiero imaginar por la cantidad de tiempo de experiencia, sesudos estudios y análisis propios(amen de infinitas pruebas). Y .. no lo niego ... he tratado de meterme lo más profundamente posible. Sin embargo no es mi área (salud, educación, social y medioambiental) ... y esta área me supera. Entiendo muchas cosas que ha sido necesario para implementar plataformas de trabajo ... y saber trabajar en equipo ... pero me doy cuenta que el aspecto técnico no es ni remota lo suficientemente profesional que se debería. Y me he esforzado en que se visibilice y se potencie lo más posible.

En el caso de las bases de datos el tema no solo es importante sino esencial y el quid de trabajo en la mayoría de mis actuales relaciones y trabajos. Estoy batallando con ello a niveles que nunca hubiera pensado. El caso del deterioro/integridad, de la sincronización y bloqueo de forma "inteligente", de optimización, del respaldo, redundancia, sergurtidad, etc ... y especialmente del aspecto de "concurrencia" ... me tiene un poco de cabeza.

No porque quiera seguir trabajando a futuro especificamente en ello.... sino porque en todos los trabajos que estamos realizando, se necesitan. Y las organizaciones, empresas y personas relacionadas siempre están preguntando y necesitan orientaciones generales, en primera instancia ... y que "sepamos" derivar especificamente (ese específico es una palabra relativa), cuando corresponda.

Por ejemplo, canal 13 (un par de sus administradores) nos contaban, hace unos años (cuando tenía tiempo de ir a Santiago para unas "famosas reuniones") ... acerca de sus experiencias respecto de usuarios concurrentes. Esa fue la primera vez en que me di cuenta, de una manera directa y patente... lo que implica administrar (tanto tècnica como "socialmente") ... un "portal" de esas dimensiones. Con millones de interacciones diarias. Claro ... uno puede extrapolar cosas así en forma teórica. Sin tener acceso práctico y real (metiendo mano directamente) ... y creer que "sabe" ... pero, hace rato que se que eso puede servir ... pero nunca cuenta realmente en la vida real. Es muchísimo más completo y complejo que eso Por eso vale tanto la pena leer y escuchar la experiencia destilada por años, de otras personas. Y agradecerlas, claro.

Eeeen fin .. solo comentarios al pasar. El tema es un gran tema. Gracias por compartir su conocimiento.
 

galansinchance

enajenao
Si tengo que usar Oracle en el stack, la elección definitiva sería Java (Springboot), incluso lo recomendaría en proyectos con presupuesto, es increíble el rendimiento y capacidad de carga que tienen.

En proyectos pobres acotados, mi alternativa sería mariadb / php / vue en casos que sean sencillos, y postgres / php - node - otro / vue si tendrán que manejar carga, cálculos complejos, geolocalización u otro.
 

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
No se otras bases de datos, pero Oracle se maneja super bien con accesos asquerosamente concurrentes. Claro, la licencia cuesta un riñón y medio pero lo vale.
 
Subir