Ahora mismo estoy poniendo un producción un servidor en mi centro de
trabajo, en el que además de tener que dar servicio para la base de
datos
PostgreSQL (explique hace poco
cómo permitir conexiones entrantes a esta BBDD), debe hacer conexiones externas a una base de datos
Oracle.
Estas conexiones las hará un script en PHP por lo que además, deberemos instalar
OCI (Oracle Call Interface) para
PHP. Suponemos que está ya instalado el servidor web Apache 2 y los componentes básicos de PHP.
Instalación de Oracle instantclient
Antes de instalar el
instantclient como tal, debemos instalar la librería
libaio, necesaria para
gestionar entradas/salidas asíncronas al kernel. La instrucción será (utilizo “#” en el
prompt para indicar como superusuario, “$” en caso contrario):
# yum install libaio1
O si usamos una distribución que use APT:
# apt-get install libaio1
Lo siguiente será acceder
al portal de descargas de Oracle y descargar los componentes necesarios para el
instantclient:
Elegimos la última versión, nuestra arquitectura y descargamos
los paquetes RPM. La instalación será inmediata si tenemos una distribución basada en Red Hat:
# yum install paquete.rpm
En caso contrario, deberemos instalar
alien previamente para que convierta los paquetes
RPM en paquetes
DEB:
# apt-get install alien
# alien paquete.rpm
# dpkg -i paquete.deb
Ahora ya nos tocar configurar el famoso fichero
Tnsnames.ora. Este fichero variará de una
configuración a otra por lo que sólo vamos a comentar dónde situarlo. Su ruta debe ser:
/etc/oracle/tnsnames.ora, en caso de no existir, deberemos crearla.
Para
terminar, deberemos crear unas variables de entorno. Para ello
accedemos al fichero /root/.bashrc como superusuario e incluimos las
siguientes líneas:
export TNS_ADMIN=/etc/oracleexport
SQLPATH=/usr/lib/oracle/11.1.0.1/client/binexport
LD_LIBRARY_PATH=/usr/lib/oracle/11.1.0.1/client/lib:$LD_LIBRARY_PATHexport
PATH=$PATH:$SQLPATH
En algunas
distribuciones, también podréis hacer ese cambio en otro fichero:
/etc/environment.
Instalación de OCI en PHP
Ahora
nos toca la parte de PHP, es decir, instalar los componentes necesarios
para poder hacer llamadas a Oracle desde PHP usando el
instantclient que acabamos de instalar (con lo fácil que es hacer esto mismo con
MySQL o PostgreSQL…, las cosas del software cerrado).
Suponemos que tenemos instalado
Apache2 y PHP, pero aún así instalaremos dos paquetes más:
# yum install php-pear php5-dev
# apt-get install php-pear php5-dev
PHP-PEAR
es según definen sus siglas: PHP Extension and Application Repository,
es decir, un repositorio de extensiones y aplicaciones para PHP que
nos permite instalar sin problemas ciertos componentes de PHP que no podemos instalar a través de nuestro gestor de paquetes habitual (me recuerda a
CPAN con Perl, pero esa es otra historia para otra entrada).

Ya estamos en disposición de ejecutarlo para instalar OCI:
pecl install oci8
En la terminal nos aparecerá algo así como:
1-1, ‘all’, ‘abort’, or Enter to continue:
Pulsamos “1″ luego ENTER y escribimos las siguientes opciones (debemos saber
el PATH exacto de nuestras librerías Oracle, cambiará en función de la versión):
shared,instantclient,/usr/lib/oracle/mi_version/client/lib/
PHP-PEAR descargará, configurará, compilará e instalará el módulo. Finalmente, tenemos que añadir a nuestro fichero
php.ini una línea para que cargue la librería dinámica de OCI y puedan hacerse llamadas desde los ficheros PHP.
La ruta del fichero será:
/etc/php5/apache2/php.ini y la línea a agregar junto a las demás extensiones la siguiente:
extension=oci8.so
Reiniciamos el servidor web y listo:
services httpd restart
O:
/etc/init.d/apache2 reload