La instalación por defecto de PHP no lleva soporte para Oracle si en el momento de su instalación no había ni un cliente ni un servidor Oracle en el sistema. La puesta en marcha de un módulo PHP para proporcionar conexión a un Oracle en un servidor remoto consta de dos pasos: Instalar el Oracle Instant Client y Generar e instalar el módulo OCI.
Al instalar el servidor web directamente en los primeros pasos de la instalación (ver artículo Instalar Debian 4 Etch en un Compaq Proliant DL 360) recibimos un Apache 2.0 con PHP 5.2.0, e instalaremos el Oracle InstantClient 11.1.0.1-1, generando un módulo PHP usando el código fuente de OCI8 versión 1.2.4 (todo último estable).
Instalar Oracle Instant Client
Instalar el Oracle Instant Client nos proporciona conexión a un servidor Oracle remoto en nuestra red, disponible para todos los programas del sistema. Oracle los distribuye en archivos comprimidos o RPMs, pero no DEBs (propios de Debian). Para poder trabajar directamente con los RPMs debemos instalar el Gestor de Paquetes de Red Hat, y aprovechamos para instalar la librería de acceso aio que nos servirá en la puesta en marcha:
$ apt-get install rpm libaio1
1.- Bajar paquetes de Oracle Instant Client de
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
- oracle-instantclient-basic-11.1.0.1-1.i386.rpm
- oracle-instantclient-devel-11.1.0.1-1.i386.rpm
- oracle-instantclient-sqlplus-11.1.0.1-1.i386.rpm
Y los copiamos a /root/tmp/
2.- Instalar paquetes
$ rpm -ivh /root/tmp/oracle-instantclient-*
3.- Crear directorio para archivos de configuración
$ mkdir /etc/oracle
4.- Obtener el archivo tnsnames.ora del servidor remoto dónde nos vamos a conectar y copiarlo a /etc/oracle/
5.- Agregar variables de entorno
$ vim /root/.bashrc
Agregar las siguientes líneas
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
6.- Reiniciar la sesión de root para que los cambios en las variables de entorno tengan efecto.
7.- Comprobar conectividad con servidor remoto
$ sqlplus usuario@servidor
Dónde usuario es el nombre de usuario o esquema y servidor es uno de los definidos en el tnsnames.ora
Pedirá la contraseña y si todo va bién nos devolverá el prompt del servidor Oracle.
Generar e Instalar módulo OCI en PHP
Para generar el módulo debemos instalar algunas herramientas de desarrollo
$ apt-get install build-essential php5-dev
1.- Si no está creado, creamos el directorio de fuentes
$ mkdir -p /usr/local/src
2.- Nos movemos a ése directorio
$ cd /usr/local/src
3.- Descargamos las fuentes PECL del futuro módulo OCI:
$ wget
http://pecl.php.net/get/oci8-1.2.4.tgz
4.- Descomprimimos
$ tar xzf oci8-1.2.4.tgz
5.- Entramos al directorio creado
$ cd /usr/local/src/oci8-1.2.4
6.- Preparamos el módulo para que sea generado para PHP
$ phpize
7.- Configuramos el módulo para la generación
$ ./configure –with-oci8=shared,instantclient,/usr/lib/oracle/11.1.0.1/client/lib/
La ruta es dónde se encuentran los *.so que hemos instalado con el InstantClient
8.- Construcción e instalación
$ make
$ make install
9.- Editamos la configuración de PHP.
$ vim /etc/php5/apache2/php.ini
Añadimos la línea:
extension=oci8.so
y repetimos lo mismo para el archivo /etc/php5/cli/php.ini
10.- Reiniciamos Apache
$ /etc/init.d/apache2 restart
11.- Comprobamos que ha sido instalado correctamente realizando un simple script PHP que contenga únicamente la función phpinfo() y verificamos que existe una nueva sección titulada OCI8.
Y éso es todo… Puedo decir que esta preparación me ha servido perfectamente para instalar un foro phpBB 3 RC7, recién salida del horno, que ya lleva de serie soporte para Oracle. Aunque realmente ha sido simple, es posible que cuelgue una guía de instalación.
Saludos!
Tags: Apache, Debian, Instalacion, Linux, PHP, Server, Shell, Sistemas
Escribe un Comentario