viernes, 1 de febrero de 2008

Instalar oci8 en xampp bajo linux

Bueno estoy de vuelta, buscando como conectarme a una BD Oracle en linux(más específicamente ubuntu 7.10) utilizando el servidor xampp encontro una lista donde habia una solución que no me funcionó del todo bueno busca en la página de xampp y encontré un tip que complementa la solución de la lista. He aquí la solución combinada:

Nota: Estoy usando la versión de xampp 1.6.5a y el oracle instant client 10.2(creo que sirve cualquiera >= 9).

1- Bajar y descomprimir el xampp (yo lo hice en /opt) de http://www.apachefriends.org/en/xampp-linux.html

2- Bajarse el instant client de oracle 10g ú 11g de Oracle
nota: tienes que tener una cuenta creada en oracle para poder descargarlo.
Bueno esta en formato zip para extraer(lo hice también en /opt):

sudo unzip instantclient-basic-linux32-10.2.0.3-20061115.zip

si no tienes para descomprimir instala el Automatix y luego instalas Utilities-Archiving Tools.

3- Despues de descomprimir crea una carpeta llamada instantclient en /opt/lampp/lib/ y copia los archivos:

sudo cp /opt/instantclient_10_2/* /opt/lampp/lib/instantclient

y creas un enlace simbolico:

ln -s /opt/lampp/lib/libclntsh.so.10.2 /opt/lampp/lib/libclntsh.so.9.0

4- Crear el archivo /opt/lampp/lib/instantclient/tnsnames.ora

5- Ahora ejecutas

sudo /opt/lampp/lampp oci8

verás un dialogo:

Please enter the path to your Oracle installation:
ORA_HOME [/opt/lampp/lib/instantclient/] (Usa el que tengas tú)
installing symlinks...
patching php.ini...
OCI8 add-on activation likely successful.
LAMPP: Stopping Apache with SSL...
LAMPP: Starting Apache with SSL...

Y listo, la librería esta instalada.

para probar:

<?php
PutEnv("ORACLE_HOME=/opt/lampp/lib/instantclient");
PutEnv("TNS_ADMIN=/opt/lampp/lib/instantclient");
$c1 = oci_connect("user", "pass", "TNSNAME");
if(!$c1){
echo 'No se pudo conectar a la base de datos \n';
}else{
echo "Conexion realizada con exito\n";
}
?>

Aún no he encontrado como definir las variables de entorno para no tener que hacerlo dentro del archivo(imagino que es con un export dentro del bashrc), si alguien sabe como por favor comentarlo y si lo hago se los cuento luego. Espero que les sirva.

9 comentarios:

gio dijo...

Hola,yo agregue las variables de entorno en el /etc/environment de la siguiente manera y me funciono bien, sin necesidad de llamarlas las PHPs:

ORACLE_HOME=/opt/lampp/lib/instantclient
TNS_ADMIN=/opt/lampp/lib/instantclient
export ORACLE_HOME
export TNS_ADMIN

Piero Recchia dijo...

ok, tienes razon giobanny, no lo habia probado de esa manera, gracias por tu aporte.

Angel Roldan dijo...

MUCHAS GRACIAS!! llevo dos días inténtandolo y solo lo he conseguido con tus pasos. Gracias gracias gracias

Diego dijo...

Alguien sabe a qué se debe este error?

-----------------------
Please enter the path to your Oracle or Instant Client installation:
[/opt/oracle] /opt/lampp/lib/instantclient
dirname: falta un operando
Pruebe `dirname --help' para más información.
Can't find libclntsh.so nicht. Sorry.
-----------------------

Me estanqué en este último paso. Gracias!
Diego

Diego dijo...

Lo solucioné usando la versión 10.2.0.3 del Instant client, en lugar de la Version 11.2.0.1.0.

Diego

Piero Recchia dijo...

Ok, gracias por tu aporte

ahonig dijo...

When you use /opt/lampp/lampp oci8 actually execute /opt/lampp/share/lampp/oci8install, now, if you see the file, you will notice it is written "libclntsh.so.10*", so the only thing to do is to change it to "libclntsh.so*", or create your simbolic link as the oci8install executable-file has it (libclntsh.so.10*)
Regards

Anónimo dijo...

I am Glad i came across this web site.Added pierinator.blogspot.com to my bookmark!

Anónimo dijo...

Hola:

Me marca el siguiente error, espero puedan ayudarme.

root@dce:~# /opt/lampp/lampp oci8
Please enter the path to your Oracle or Instant Client installation:
[/opt/oracle] /opt/lampp/lib/instantclient/
installing symlink...
ln: creando el enlace simbólico «/opt/lampp/lib/instantclient/instantclient»: El archivo ya existe
patching php.ini...
OCI8 add-on activation likely successful.
XAMPP: Stopping Apache with SSL...

Warning: PHP Startup: Unable to load dynamic library '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/oci8.so' - libaio.so.1: cannot open shared object file: No such file or directory in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/oci8.so' - libaio.so.1: cannot open shared object file: No such file or directory in Unknown on line 0