Acabo de instalar un acutal XAMPP en mi win7 (x64) de la PC a escribir algunos de los scripts de PHP para conectarse a oracle DB. También tengo una normal de oracle 11.2.0 instalado el cliente (RUTA de acceso y el ORACLE_HOME están configurados correctamente). El cliente se utiliza para el resto de mi trabajo sin ningún tipo de problemas.

Cuando intento conectar a oracle DB PHP falla con Fatal error: Call to undefined function oci_connect() in. Recuerdo que tuve que habilitar el «oci8-extensiones» en mi php.ini cuando yo hice lo mismo hace algunos años en un x32 winXP PC.
Pero mi actual xampp no tiene estas dll en el php/ext carpeta (sólo un php_oci8_12c.dll que tira varios errores de funciones desconocidas en apache inicio y que es para oracle 12 y no 11) y el php.ini también dice que sólo son necesarios para el instante cliente.

;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client

También esta ASÍ las preguntas muestra que el uso de la observación de extensión con un cliente normal no va a funcionar (que también probé).

He intentado buscar en google para encontrar una solución, pero todas las «soluciones» son «instalar win32 instantánea de cliente y habilitar la extensión». Pero no puedo hacer esto ya que la mayoría de mis QA-el trabajo requiere que el instalado y configurado 11.2.0-cliente y no tengo la .dll en mi php/ext-carpeta de todos modos

También traté de copiar el ociw32.dll desde el cliente/bin a la carpeta de php/ext-carpeta, pero luego de apache dice que no es un PHP-biblioteca.

Entonces, ¿cómo puedo habilitar PHP oracle bibliotecas para uso de oci8 para XAMPP en win7 x64 SIN la instalación de win32 Oracle Instant Client y la destrucción de mi configuración actual?

edit: también he probado los pasos descritos en el PHP: Manual de Instalación (Post de: samantha punto vincent at gmail dot com) incluyendo el cambio de mi servidor apache http.conf que también no ayuda.

También estoy confundido de mi phpinfo()-Salida como dice

Configure Command   "--with-pdo-oci=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared"
InformationsquelleAutor bish | 2015-01-05

1 Comentario

  1. 5

    Finalmente encontré una solución:

    He descargado el real OCI-Dll desde «PECL :: Paquete :: oci8 :: 2.0.8» (en mi caso el de 32 bits, de subprocesos DLL) y, a continuación, quita la ; de esta línea

    ;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client

    También he añadido las siguientes líneas a mi http.conf de apache

    SetEnv ORACLE_BASE "C:/oracle/"
    SetEnv ORACLE_HOME "C:/oracle/product/11.2.0/client_1"  

    Después de que se me reinicia apache, se aseguró de que mi conexión-alias es probablemente puesto en mi tsnames.ora y, a continuación, podría utilizar la oci8-funciones sin ningún tipo de problemas.

    • por favor me puedes decir donde la has de poner los archivos que usted descarga?
    • En su php/bin-directorio.
    • con el tuyo descargado sin cambiar de http.conf, este tutoriales: XAMMP | ORACLE | y PHP.NET
    • Hola me preguntaba ¿qué hace el ‘SetEnv ORACLE_BASE «C:/oracle/»‘ hacer? Es este el cliente de Oracle y no el Instante en que el cliente?
    • He utilizado la normal de Cliente de Oracle y NO en el instante de cliente como se dijo en la pregunta
    • no estaba funcionando antes, entonces lo que hice? he copiado los archivos orannzsbb11.dll , oci.dll y oraociei11.dll a c:\windows\system32. y reiniciar apache y por último, es de trabajo…..:)

Dejar respuesta

Please enter your comment!
Please enter your name here