PHP4 con soporte OCI
Hace mucho tiempo, yo solía bajar los fuentes del PHP4, para luego conseguir una copia del Oracle 8i y empezar la larga (y triste) labor de compilar un PHP con soporte Oracle.
En ese tiempo, utilizaba SuSE 7.2 y cuando habían actualizaciones de seguridad, tenía que volver a repetir todo el proceso.
Luego de cambiarme a Debian 3.0 (Woody), la forma no cambió mucho, igual seguía la vieja receta.
Recién con Debian 3.1 (Sarge), y con la disponibilidad del Oracle-XE, se me ocurrió investigar si existía algún atajo para evitar la vieja y tediosa receta, y he aquí lo que encontré:
En ese tiempo, utilizaba SuSE 7.2 y cuando habían actualizaciones de seguridad, tenía que volver a repetir todo el proceso.
Luego de cambiarme a Debian 3.0 (Woody), la forma no cambió mucho, igual seguía la vieja receta.
Recién con Debian 3.1 (Sarge), y con la disponibilidad del Oracle-XE, se me ocurrió investigar si existía algún atajo para evitar la vieja y tediosa receta, y he aquí lo que encontré:
- Actualizar el repositorio para poder bajar el Oracle-XE, agregando al archivo /etc/apt/sources.list, lo siguiente:
deb http://oss.oracle.com/debian/ unstable main non-free - Luego actualizar el repositorio con:
apt-get update - Verificar que el swap sea mayor a 1024MB, si no el cliente Oracle-XE no instalará. Temporalmente puedes hacer esto:
$ dd if=/dev/zero of=/tmp/swap00 bs=512k count=1024
$ mkswap /tmp/swap00 && swapon /tmp/swap00
(si necesitas más, repite lo anterior con un número distinto a "00"). - Instala el cliente Oracle-XE con el comando:
apt-get install oracle-xe-client - Cargar el entorno del cliente Oracle-XE con el comando:
$ . /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin/oracle_env.sh
Hasta aquí la primera parte, ahora recién vamos a compilar lo estrictamente necesario para obtener el soporte OCI en PHP:
- Instala las herramientas necesarias:
$ apt-get install dpkg-dev php4-dev - Bajamos los fuentes del PHP4:
$ apt-get source libapache-mod-php4 - Ingresamos al directorio donde está lo que necesitamos:
$ cd php4-2.3.10/ext/oci - Configuramos la extensión:
$ phpize
Configuring for:
PHP Api Version: 20020918
Zend Module Api No: 20020429
Zend Extension Api No: 20021010
$ sh configure
(..)
checking for Oracle-OCI8 support... yes, shared
checking Oracle Install-Dir... /usr/lib/oracle/xe/app/oracle/product/10.2.0/client
checking Oracle version... 10.1
checking for OCILobIsTemporary in -lclntsh... yes - Compilamos:
$ make
(..)
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam). - Instalamos:
$ make install
Installing shared extensions: /usr/lib/php4/20020429/ - Configuramos nuestro php para utilizar el módulo recién creado:
$ echo "extension=oci8.so" >> /etc/php4/apache/php.ini - Recargamos el apache:
$ /etc/init.d/apache reload
Y listo, eso es todo lo que hay que hacer, sin complicarse la vida editando el debian/rules y luego peleándose con el aburrido dpkg-buildpackage -rfakeroot -b.
Ahora, esta receta debe funcionar sin mayores cambios en las demás distribuciones de Linux.
KIT