miércoles, 21 de enero de 2009

Instalando Laop en vez de Lamp

Los servidores Web conocidos como LAMP (Linux, Apache, Mysql, Php/Perl/Python) son practicamente un estandar en internet. La popularidad de estos servidores se deben a varias razones ademas de la seguridad y el manejo especialmente a la hora de instalar.
En este articulo documento los pasos y algunas piedras en el camino que encontre cuando decidimos, con mi equipo de trabajo, instalar LAOP (Linux, Apache, Oracle, Php/Perl/Python).
Instalación:
** Actualización al 02/09/2013
** Realicé la misma instalación en Debian Wheezy la última versión que tenemos hoy.

Como primer paso instalar el paquete libaio1
apt-get install libaio1

Descargar del sitio de Oracle 3 rpms necesarios para instalar apache con oracle:
http://www.oracle.com/technetwork/database/features/instant-client/
o
http://www.oracle.com/technetwork/topics/linuxsoft-082809.html

Una vez bajado el archivo con unzip obtenemos 3 rpms.
Los convertimos a .deb con el programa alien, las siguientes lineas las extraje del sitio Zital:

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


** Actualización al 30/08/2013
Los instantclient están actualmente en la versión 12.1
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

Dos pasos importantes:
- Crear la carpeta /etc/oracle y grabar en esta el archivo tnsnames.ora
En este archivo estan los parametros para conectarse a la base de datos con la que vamos a trabajar, puede
estar en el mismo servidor o bien algún otro de la red local o inclusive que este en otro lugar físico.
- Editar el archivo /root/.bashrc como usuario root.
Este archivo lo consulta apache cuando recibe un pedido de conexión con la base de datos.
vi /root/.bashrc
export TNS_ADMIN=/etc/oracle
export SQLPATH=/usr/lib/oracle/11.1.0.1/client/bin
export LD_LIBRATY_PATH=/usr/lib/oracle/11.1.0.1/client/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$SQLPATH

Instalar Apache 2.2 y php 5
apt-get install apache2.2-common libapache2-mod-php5 php5

Instalar oci8 para php:
apt-get install php-pear php5-dev
luego ejecutar el siguiente comando: pecl install oci8
y nos pide elegir lo siguiente: 
shared,instantclient,/usr/lib/oracle/11.1.0.1/client/lib:
ingresar la ruta donde se instalo instantclient: /usr/lib/oracle/11.1.0.1/client

Una vez finalizada la instalacion de oci8 se debe agregar al archivo php.ini la siguiente linea:
echo extension=oci8.so >> /etc/php5/apache2/php.ini
Como ultimo para agregar (importante) la localizacion de /etc/oracle en apache
echo TNS_ADMIN=/etc/oracle >> /etc/apache2/envvars

Reiniciamos apache: /etc/init.d/apache2 restart

y tenemos apache on conexion a oracle, existen programas en php que pueden probar la conexion.

__