Espacio de Trabajo


Apache, PHP y Oracle XE en Ubuntu

Publicado en Bases de datos, Lenguajes de programación, Linux, Oracle, PHP, Ubuntu por Artemio Estrella sobre el Abril 21, 2007

En este post explicaré la forma de conectar Oracle XE con PHP. Para referencia de como instalar Oracle XE en Ubuntu, está el siguiente post:

Instalar Oracle XE en Ubuntu

Lo primero que hay que hacer, es instalar el cliente de Oracle XE:

# sudo apt-get update
# sudo apt-get install oracle-xe-client

Es necesario compilar la extensión OCI8 de Oracle para PHP, por tanto hay que instalar los paquetes necesarios para dicha compilación:

# sudo apt-get install php-pear php5-dev build-essential

Y ahora compilamos:

# sudo pecl install oci8

El proceso de compilación nos va a pedir la ruta de la librería del cliente de Oracle. Ya que tenemos instalado el cliente en nuestra computadora, la ruta viene siendo la siguiente:

/usr/lib/oracle/xe/app/oracle/product/10.2.0/client

Directorio ORACLE_HOME

Una vez hecha la compilación, lo siguiente es configurar Apache/PHP.

# sudo gedit /etc/php5/apache2/php.ini

Agregamos al archivo la línea:

extension=oci8.so

Guardamos el archivo php.ini y cerramos gedit.

Por último, reiniciamos Apache:

# sudo /etc/init.d/apache2 restart

Nos resta hacer una prueba de conexión, esto lo mostraré en el siguiente post, pues quiero hacer mención de la librería ADOdb para PHP.

Con información de:

http://doc.ubuntu-fr.org/oci8

10 comentarios a 'Apache, PHP y Oracle XE en Ubuntu'

Suscribirse a los comentarios con RSS o Enlace inverso a 'Apache, PHP y Oracle XE en Ubuntu'.

  1. teodoro dicho,

    en Septiembre 3, 2007 en 12:03 pm

    Estoy tratando de seguir los pasos para tener php con oracle cuando compilo oci8 con pecl, en el archivo oci8.c me larga muchos errores de sintaxis del codigo.Algun comentario ?


  2. en Septiembre 7, 2007 en 7:51 am

    Por qué no pones el listado de errores, para ver específicamente dónde te está dando problemas y ver si te puedo ayudar.

  3. Patricio dicho,

    en Septiembre 20, 2007 en 2:05 am

    Hola..
    He consegido con exito que al compilar yo mismo el apache y el php (tengo el server 10g en la misma compu) la extencion oci8 me funcione… pero lo que quiero ahora es poder compilar solo la extencion oci8 de manera que el resto de la instalacion la maneje el apt… esto para que las actualizaciones se manejen automaticamente. El punto es que no consigo que me funcione… conoces alguna forma de que esto sea posible…. ???

  4. Carlos Andres dicho,

    en Noviembre 8, 2007 en 10:30 am

    Hola, muchas gracias por tu guia. Al ejecutar
    sudo pecl install oci8 e indicarle la ruta de ORACLE_HOME obtengo este mensaje al finalizar

    checking Oracle version… configure: error: Oracle-OCI8 needed libraries not found
    ERROR: `/tmp/pear/cache/oci8-1.2.4/configure –with-oci8′ failed

  5. Carlos Andres dicho,

    en Noviembre 10, 2007 en 8:04 am

    Hola, hasta aqui todo muy bien y muchas gracias amigo por tu post.
    Pero estoy esperando el siguiente post “Nos resta hacer una prueba de conexión, esto lo mostraré en el siguiente post, pues quiero hacer mención de la librería ADOdb para PHP.”

    Muchas gracias


  6. en Noviembre 10, 2007 en 10:55 am

    Qué tal Carlos, he dejado abandonado el proyecto y precisamente este fin de semana estoy por continuarlo. Dame oportunidad de reconfigurar mi equipo y yo creo que para el lunes pongo un ejemplo de como hacer un query hacía Oracle desde PHP.

  7. brujula dicho,

    en Noviembre 14, 2007 en 1:17 pm

    tengo el mismo problema que Carlos Andres
    checking Oracle version… configure: error: Oracle-OCI8 needed libraries not found
    ERROR: `/tmp/pear/cache/oci8-1.2.4/configure –with-oci8′ failed
    la plataforma esta a 32 bits y según he leido hay esta el problema pero no lo soluciono

    abierto a sugerencias

  8. ixla dicho,

    en Noviembre 28, 2007 en 5:52 am

    hola, prueba lo siguiente:
    cuando hagas:
    >sudo make install

    te dirá lago parecido a :
    Installing shared extensions: /usr/lib/php5/20060613+lfs/

    entonces haces:
    >cd /usr/lib/php5/20060613+lfs
    >ldd oci8.so

    y te dirá algo como:
    linux-gate.so.1 => (0xffffe000)
    libclntsh.so.11.1 => /opt/oracle/instantclient/libclntsh.so.11.1 (0xb6548000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb63f5000)
    libnnz11.so => /opt/oracle/instantclient/libnnz11.so (0xb624a000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb6246000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb621f000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb6208000)
    libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb61f1000)
    /lib/ld-linux.so.2 (0×80000000)
    libaio.so.1 => not found
    Son librerias dinamicas, si en alguna te pone “not found” … entoces deberias instalartelas con apt-get, haces un restart del apache y pruebas a ver si te funciona el oci.
    Un saludo y suerte.

  9. luizk dicho,

    en Diciembre 12, 2007 en 8:43 pm

    hola a todos,
    en mi caso consigo terminar el proceso de compilacion-instalacion pero al intentar realizar la conexion a la base de datos con ocilogon(”user”,”pass”); me devuelve el siguiente error

    Warning: ocilogon() [function.ocilogon]: ORA-12162: TNS:net service name is incorrectly specified in /var/www/bd2/practica7/pr71.php on line 12

    ya he probado mil cosas pero nada… si no es mucha molestia ¿podrian echarme un cable?

    un saludo y gracias

  10. Javier Roque dicho,

    en Julio 23, 2008 en 2:31 pm

    Hola, porfavor necesito ayuda.
    Tengo ubuntu hardy heron, con lampp y cuando intento instalar el oci8 me sale lo siguiente :

    Starting to download oci8-1.3.3.tgz (127,320 bytes)
    ………………………..done: 127,320 bytes
    10 source files, building
    running: phpize
    Configuring for:
    PHP Api Version: 20041225
    Zend Module Api No: 20060613
    Zend Extension Api No: 220060519
    1. Please provide the path to the ORACLE_HOME directory. Use ‘instantclient,/path/to/instant/client/lib’ if you’re compiling with Oracle Instant Client : autodetect

    1-1, ‘all’, ‘abort’, or Enter to continue: shared,instantclient,/opt/oracle/instantclient_10_2
    1. Please provide the path to the ORACLE_HOME directory. Use ‘instantclient,/path/to/instant/client/lib’ if you’re compiling with Oracle Instant Client : autodetect

    1-1, ‘all’, ‘abort’, or Enter to continue:

    Si le doy enter me sale esto otro:

    checking for unistd.h… yes
    checking for long int… yes
    checking size of long int… 4
    checking if we’re on a 64-bit platform… no
    checking OCI8 libraries dir… lib
    checking Oracle version… configure: error: Oracle client libraries not found
    ERROR: `/tmp/pear/cache/oci8-1.3.3/configure –with-oci8′ failed

    Te agradeceré mucho la ayuda

Escribe un comentario