DESESPERADO: Conectar Oracle con PHP
Hola a tod@s,
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)
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)
Debes de poner las dll's que descomentes en la misma ruta donde está PHP.EXE y debe jalar
checa eso carnal.
checa eso carnal.
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
ademas en mi pc esta el oracle cliente es neceario que este con servidor para probar mis aplicaciones en localhost
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!
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!
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.
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.
yo no entendi lo que se debe hacer (tengo el mismo problema) no te importaria explicarlo mejor?
Gracias!
Gracias!
Sabes si estan soportadas las versiones?
Lo que he visto en el foro de oracle indica que no
Lo que he visto en el foro de oracle indica que no
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)
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)
Has probado a poner en la directiva "extension_dir" del "php.ini" el directorio donde tengas el php_oci8.dll??
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
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