domingo, 11 de mayo de 2008

Servidor web con oci8

Existen muchas personas que se rompen la cabesa instalando un servidor web con oci8 que es el drivers para leer las base de datos en oracle a continuación les mostrare como se instala en un servidor con debían o ubuntu.

Primero que nada necesitamos descargar las siguientes librerías de la pagina oficial de oracle solo hay que registrarse es totalmente gratuito el registro. Ojo no importa la versión de las librerías si son mas nuevas o mas viejas es indiferente.

instantclient-basic-linux32-10.2.0.1-20050713.zip
instantclient-sdk-linux32-10.2.0.1-20050713.zip

Luego que tienes las librerías las descomprimes de la siguiente manera

unzip instantclient-basic-linux32-10.2.0.1-20050713.zip
unzip instantclient-sdk-linux32-10.2.0.1-20050713.zip

Luego creas una carpeta en la siguiente ruta mkdir -p /opt/oracle/instantclient que es donde el oci8 va a leer las liberias después de esto el procedimiento es el siguiente:

mv instantclient_10_2/* /opt/oracle/instantclient/
cd /opt/oracle/instantclient/
ln -s libclntsh.so.10.1 libclntsh.so
ln -s libocci.so.10.1 libocci.so

echo /opt/oracle/instantclient >> /etc/ld.so.conf
ldconfig

Con esto ya tenemos las librerías lista e incluidas en el path del linux ahora abrimos el asistente de instalación aptitude con apt-get no funciona dice que los paquetes no existen cuando si existen e instalamos los siguientes paquetes

apt-get install build-essential php5-dev php-pear apache2 apache2-doc apache2-utils apache2.2-common libapache2-mod-bt libapache2-mod-php5 libapache2-mod-proxy-html libapache2-mod-ruby libapache2-mod-scgi php5-apache2-mod-bt php5-dev php5-uuid php5-ming php5 php5-cgi php5-cli php5-common php5-curl php5-gd php5-imagick php5-json php5-mcrypt php5-memcache php5-odbc php5-snmp

Aparte tienes qie unstalar esto pero abriendo la consola de aptitude porque si no te dice que no existe

aptitude install build-essentials

Con esto ya tenemos sificiente para instalar el oci8 si quiere adicionarle algo mas ya queda de parte de ustedes, ahora a instalar el oci8

mkdir -p /usr/local/src/
cd /usr/local/src/
pear download oci8
tar xzf oci8-1.1.1.tgz
cd oci8-1.1.1
./configure --with-oci8=shared,instantclient,/opt/oracle/instantclient
make
make install

Ya tenemos el oci8 instalado en el sistema solo falta decirle al php que lo lea y lo hacemos de la siguiente manera

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

/etc/init.d/apache2 restart

Con esto ya tenemos listo nuestro servidor web con las librerias para que lea base de datos oracle

Despues de tener el servior listo si te da problemas con los caracteres especiales en la base de datos tienes que quitar esta linea en ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin" /etc/init.d/apache2 y colocas esto ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin ORACLE_HOME=/opt/oracle/instantclient NLS_LANG=SPANISH_SPAIN.WE8MSWIN1252".

Sincronizar archivos con rsync

Existe muchas personas que hacer respaldos diarios de archivos o sistemas y copiar todo el sistema a diario en el sitio donde respaldan esto si no usan ningun sistema de respaldos com rdiff o muchos otros que existen en linux hay otra manera de hacerlo con rsyn lo cual hace una comparacion de las dos carpetas y copia solo los archivos modificados sin tener que traspasar otra vez toda la data un ejemplo de esto seria de la siguiente manera.

rsync -a -p -v -L -e ssh /carptea_que_ha_sido_modificada root@IP_del_servidor_de_respaldo:/carpeta_a_donde_guarda_respaldo