DESESPERADO: Conectar Oracle con PHP

CarlosLL
09 de Mayo del 2006
Hola a [email protected],
Llevo cerca de 1 mes (y no es coña) intentando conectar con la BD Oracle mediante código PHP y empiezo a desesperarme. Os cuento:

+ lo que tengo: S.O. WindowsXP Prof, Lenguaje PHP 4.3.3, Servidor Apache 1.3.24, Cliente Oracle 8i

+ lo que quiero: Conectar mi aplicación web desarrollada en PHP con la BD Oracle 8i (alojada remoto) para hacer las típicas operaciones de consulta, inserción,...

+ mi problema:
instalo el cliente Oracle en mi equipo (c:Orant), instalo y configuro PHP en mi equipo (c:PHP, php.ini >> edito "extension_dir", descomento "php_oci8.dll" y "php_oracle.dll",...), instalo y configuro Apache (C:Apache Group, http.conf), pero al arrancar Apache/PHP me devuelve un warning que debo aceptar varias veces: "OCI.DLL: no se puede encontrar el módulo especificado" (sin más detalles) y cuyo resultado es que no puedo usar las funciones oci en mi código php porque me devuelve error de "función no declarada" (osea, que Apache/PHP no lee la librería "php_oci8.dll", que seguramente hará uso de la librería del cliente Oracle "oci.dll").

+ problemas anteriores que he tenido antes de llegar a este punto (por si sirven de algo o dan ideas):
antes me salian errores como "Unable to load dynamic library 'C:phpextensionsphp_oci8.dll' - The specified module could not be found." y "Unable to load dynamic library 'C:phpextensionsphp_oracle.dll' - The specified module could not be found.". No se haciendo muy bien qué (creo que copiando ciertas librerias a ciertos directorios) he logrado que "php_oracle.dll" no me de más problemas (pudiendo así conectar con la BD mediante la funión ora_logon), pero php_oci8.dll sigue dando por saco (y según tengo entendido, el método OCI me conviene más que el ORA, osea, que más me vale hacerla funcionar de cara a cuando tenga que ponerme a programar).

+ algunas soluciones probadas sin éxito (sacadas de foros en castellano, inglés, chino, alemán,... al menos esto me valdrá para aprender idiomas XD):
A) copiar las librerias php_oci8.dll, php_oracle.dll, php4ts.dll y oci.dll (necesarias para acceder a Oracle con PHP mediante funciones ORA o OCI) a los directorios donde Apache/PHP debería leerlas --> esto ha acabado por ser un cachondeo porque tras consultar en varios foros donde cada uno proponía un directorio donde situarlas (c:windows, c:windowssystem32, c:{APACHE_PATH}apache, c:{PHP_PATH}, c:{PHP_PATH}extensions,...), he terminado por copiarlas a todos y a tomar por culo (perdon por la expresión). Se supone que "php_oracle.dll" y "php_oci8.dll" vienen con la instalación de PHP y se guardan en extensions, pero no se porque al descomentarlas de "php.ini" no hace caso y no las coge. He leido que puede que sea que Apache/PHP se haga la pixa un lio (vete a saber porque) y que por eso debía copiarlas en otros directorios por si alguno "echaba raices y la planta crecia", así que haciendolo he sacado adelante "php_oracle.dll" (ya no me causa esos warnings). El problema es que oci.dll viene con la instalación de Oracle Client, en c:orantbin, y esta librería parece que es la que no se aclara con "php_oci8.dll" y me está dando tantos problemas, así que me las llevo cogiditas de la mano de un directorio a otro a ver si copiándolas en otros sitios apache/php le da por aceptarlas, pero nada.
B) he reinstalado distintas versiones de Apache y PHP a ver si daba con alguna versión de librería que no causara esos problemas, pero de momento nada de nada.

+ algunas ideas:
a) tras forear muchiiiiiiisimo, he leido que es posible que la versión de la libreria OCI.DLL del cliente Oracle no sea compatible con la librería de php_oci8.dll de PHP y hay funciones/métodos/... que no reconoce? en ese caso, debo bajarme otras versiones y machacarlas? pero unas versiones anteriores o posteriores de dichas librerías? de la librería oci.dll, o de php_oci8.dll, o de ambas?...
b) debo moverlas a algún directorio que no he probado todavía?
c) debo darme por vencido y mandarlo todo a tomar viento? :'(
d) debo tirarme por la ventana atado a la CPU de mi PC para asegurar una caida más rápida y dolorosa? :'(

Gracias por vuestro tiempo y espero una respuesta que acabe con mi sufrimiento y me permita dormir tranquilo.
PD: mi reino por una pista, aunque sea falsa!!! (abstenerse de pegar enlaces a tutoriales de instalación de PHP, Apache, Oracle,... pues creo que ya los he hecho todos y incluso empiezo a aprendermelos de memoria)

Wilson Garz?.
09 de Mayo del 2006
como lograte solucionar este problema por favor tengo el mismo

Yorch
09 de Mayo del 2006
Debes de poner las dll's que descomentes en la misma ruta donde está PHP.EXE y debe jalar

checa eso carnal.

hardsoft
09 de Mayo del 2006
holas,tengo instalado en mi pc oracle y mysql es necesario comentar extension=php_mysql.dll y decomentar extension=php_oci8.dll.
ademas en mi pc esta el oracle cliente es neceario que este con servidor para probar mis aplicaciones en localhost

Elisa
09 de Mayo del 2006
Hola,

Haz intentado conectarte a tu base de datos, desde el SQL Plus ?
una ves que estes seguro de que te puedes conectar, y que hayas configurado todo para que lo puedas hacer desde sqlpplus,

jejeje calma calma yo tuve el mismo problema, y despues de intentar de todo... lo logre!

Bien, segun recuerdo... me marcaba los mismos errores que a ti, haciendo memoria... vayamos por partes...
veo que ya lograste que apache jalara el modulo de Php, correcto? las librerias de php para Windows, no vienen en el isntalador, debes bajarte el php completito donde viene las extensiones que necesitas, en el php.ini, se descomentan lo que vas ausar, ya sea el php_oracle.dll o el oci8_php.dll, pero no ambos...

Si no mal recuerdo, mi version de php instalada no era la misma que los dll ke habia bajado, asi ke revisa bien eso.. para k no haya dificultad...

espero t sirva de ayuda, si no, pues contactame y vemos que podemos hacer, saludos!

CarlosLL
09 de Mayo del 2006
Muchas gracias Elisa ¡ ¡ ¡ ¡
Me funcionó a la perfección. Quiero compensarte por el favor que me has hecho ¿ de donde eres ?. Si vives cerca de mi tierra, podemos vernos y cenar juntos, luego si quieres nos vamos a tu casa, nos tomamos una copa y si nos entonamos, te bajo las braguitas y te chupo tu cueva del amor hasta que salgan tus jugos a borbotones, luego te penetraré con mi estaca del placer hasta que nuestros aullidos de gusto sean solo uno para terminar corriendome entre tus tetas mientras te extiendes mi jugo de la vida por todo tu sexo húmedo y sin vello de tal manera que mi lefa tape por entero tu rajita del placer.
Un besito, mi amor.

xxxxx
09 de Mayo del 2006
yo no entendi lo que se debe hacer (tengo el mismo problema) no te importaria explicarlo mejor?

Gracias!

carlitros
09 de Mayo del 2006
Sabes si estan soportadas las versiones?
Lo que he visto en el foro de oracle indica que no

carlitros
09 de Mayo del 2006
Otra cosa
Como tienes la variable PATH? me refiero al orden en que tengas los path´s de donde carga las librerias (Creo que en windon tambien hay una variable PATH)

jcc
09 de Mayo del 2006
Has probado a poner en la directiva "extension_dir" del "php.ini" el directorio donde tengas el php_oci8.dll??

REGMBOYT
09 de Mayo del 2006
Tengo un problema que hace 1 MES no puedo resolver
Me da el siguiente error:

Fatal error: Call to undefined function NewADOConnection() in D:\\ElectroNet\\connections\\conprueba1.php on line 7
PHP Warning: PHP Startup: Unable to load dynamic library \\'c:\\php\\ext\\php_oci8.dll\\' - Acceso denegado. in Unknown on line 0