Temas etiquetados como: ‘Oracle’

Apache2.2 + PHP5 + OCI: Cliente Oracle en Debian

22 Enero, 2009

El amigo ZiTaL ha escrito un how to detallado de como poder utilizar conexiones oracle en debian en los desarrollos en PHP el cual “fusilo”

Muy importante: Antes de empezar a instalar tendremos que tener como mínimo 1024 MB de SWAP (área de intercambio) libre, por lo que aconsejo que tengas como mínimo 1,5 GB de SWAP (área de intercambio).

PRE-INSTALACIÓN: Necesitamos el paquete libaio1.

apt-get install libaio1

Para empezar tenemos que conseguir los siguientes RPM’s de la página de Oracle:

Oracle instantclient basic
Oracle instantclient devel
Oracle instantclient sqlplus

Que los podemos descargar de aquí:

http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html

Si quereis los he pasado a deb con alien y los podeis descargar aquí:

http://zital.no-ip.org/debian/oracle/

Y descargamos los ficheros.

Si no os fiais de mi, pues simplemete habrá que pasarlos de rpm a deb con alien:

apt-get install alien
alien oracle-instantclient-basic_11.1.0.1-2_i386.rpm
alien oracle-instantclient-devel_11.1.0.1-2_i386.rpm
alien oracle-instantclient-sqlplus_11.1.0.1-2_i386.rpm

y ya tendremos los deb correspondientes.

los instalamos:

dpkg -i oracle-instantclient-basic_11.1.0.1-2_i386.deb
dpkg -i oracle-instantclient-devel_11.1.0.1-2_i386.deb
dpkg -i oracle-instantclient-sqlplus_11.1.0.1-2_i386.deb

Ahora creamos la carpeta /etc/oracle:

mkdir /etc/oracle

Y crearemos dentro de esta carpeta el archivo tnsnames.ora

nano /etc/oracle/tnsnames.ora

Y tendremos que crear un fichero del estilo:

NOMBRE_MAQUINA.DOMINIO.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
...

Cambiar NOMBRE_MAQUINA, DOMINIO.COM, HOST y PORT por sus respectivos valores.

Según cuantos servidores Oracle tengamos ;)

Si no sabeis rellenar este fichero, CREO que lo podremos encontrar en el servidor donde este alojado el servidor de base de datos de Oracle.

Ahora tendremos que editar el .bashrc del root y le añadiremos las siguientes lineas:

nano /root/.bashrc
export TNS_ADMIN=/etc/oracle
export SQLPATH=/usr/lib/oracle/11.1.0.1/client/bin
export LD_LIBRARY_PATH=/usr/lib/oracle/11.1.0.1/client/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$SQLPATH


Para que los cambios del .bashrc surjan efecto tendremos que volvernos a logear.

Ya hemos terminado de instalar el cliente de Oracle.

Instalacion de Apache2.2 con PHP5:

Si ya lo tienes instalado omite este paso ;)

apt-get install apache2.2-common libapache2-mod-php5 php5

Instalacion del oci8 para php:

apt-get install php-pear php5-dev
pecl install oci8

Al instalar el oci8 nos aparecera un prompt del tipo:

1-1, 'all', 'abort', or Enter to continue:

Pulsamos 1 y ENTER

y escribimos lo siquiente en el prompt:

shared,instantclient,/usr/lib/oracle/11.1.0.1/client/lib/

y pulsamos ENTER para confirmarlo y otra vez ENTER para que empiece la instalación

el sistema empezará a compilar el módulo y si todo ha ido bien nos pondrá algo como:

Build process completed successfully
Installing '/usr/lib/php5/20060613+lfs/oci8.so'
install ok: channel://pecl.php.net/oci8-1.2.5
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini

solamente nos quedará añadir las correspondientes lineas en el php.ini:

echo extension=oci8.so >> /etc/php5/apache2/php.ini

y reiniciar el apache:

/etc/init.d/apache2 reload

Espero que os sirva de ayuda ;)

Fuente original: esdebian.org