martes, 3 de febrero de 2009

Compilar servidor web con source code en linux

Aveces nesecitamos un servidor web y tenemos dos manera de hacerlo utilizando los paquetes precompilado o compilando tu propia paqueteria en este ejemplo les voy a mostrar como instalar un servidor web con extensiones oci8 para oracle y base de datos mysql ademas de las librerias graficas gd, freetype, t1, jpeg y gif

Primero que nada hay que instalar el apache nos descargamos la ultima version del mismo en formato .tar.gz

tar zxvf httpd-2.2.11.tar.gz

cd httpd-2.2.11

./configure --prefix=/etc/apache2 --exec-prefix=/etc/apache2 --bindir=/usr/sbin --sbindir=/usr/sbin --libexecdir=/etc/apache2/libexec --sysconfdir=/etc/apache2/conf --sharedstatedir=/etc/apache2/com --localstatedir=/etc/apache2/var --libdir=/etc/apache2/lib --datarootdir=/etc/apache2/share --datadir=/etc/apache2/share --infodir=/etc/apache2/share/info --localedir=/etc/apache2/share/locale --mandir=/etc/apache2/man --docdir=/etc/apache2/share/doc/PACKAGE --enable-authn-alias --enable-authn-anon --enable-authn-dbm --enable-auth-digest --enable-ext-filter --enable-deflate --enable-log-config --enable-env --enable-mime-magic --enable-cern-meta --enable-expires --enable-headers --enable-usertrack --enable-unique-id --enable-setenvif --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-ssl --enable-dav --enable-status --enable-autoindex --enable-asis --enable-info --enable-cgi --enable-dav-fs --enable-vhost-alias--enable-negotiation --enable-dir --enable-actions --enable-speling --enable-userdir --enable-alias --enable-rewrite --enable-so --enable-mods-shared=all --enable-substitute --enable-echo

make

make install

Con esto ya tenemos nuestro apache instalado y listo para funcionar ahora procedemos a instalar las librerias necesarias para los graficos y el oci8

tar zxvf jpegsrc.v6b.tar.gz

cd jpeg-6b

./configure --prefix=/usr/local/jpeg --exec-prefix=/usr/local/jpeg --bindir=/usr/local/jpeg/bin --sbindir=/usr/local/jpeg/sbin --libexecdir=/usr/local/jpeg/libexec --datadir=/usr/local/jpeg/share --sysconfdir=/usr/local/jpeg/etc --sharedstatedir=/usr/local/jpeg/com --localstatedir=/usr/local/jpeg/var --libdir=/usr/local/jpeg/lib --enable-shared --enable-static

make

make install

Cuando esta ejecutando el make install el da uns errores pero esos errores es porque no puede crear los directorios a donde se va a instalar lo uq ehay que hacer es agarrar las direcciones de los directorios y crearlas hasta que deje de dar error

tar zxvf t1lib-5.1.2.tar.gz

cd t1lib-5.1.2

./configure --prefix=/usr/local/t1 --exec-prefix=/usr/local/t1 --bindir=/usr/local/t1/bin --sbindir=/usr/local/t1/sbin --libexecdir=/usr/local/t1/libexec --datadir=/usr/local/t1/share --sysconfdir=/usr/local/t1/etc --sharedstatedir=/usr/local/t1/com --localstatedir=/usr/local/t1/var --libdir=/usr/local/t1/lib --with-x --with-gnu-ld --with-pic

make

make install

tar zxvf freetype-2.3.8.tar.gz

cd freetype-2.3.8

./configure --prefix=/usr/local/freetype --exec-prefix=/usr/local/freetype --bindir=/usr/local/freetype/bin --sbindir=/usr/local/freetype/sbin --libexecdir=/usr/local/freetype/libexec --sysconfdir=/usr/local/freetype/etc --sharedstatedir=/usr/local/freetype/com --localstatedir=/usr/local/freetype/var --libdir=/usr/local/freetype/lib --enable-biarch-config --with-old-mac-fonts --with-fsspec --with-fsref --with-quickdraw-toolbox --with-quickdraw-carbon --with-ats --with-pic --with-gnu-ld

make

make install

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

tar zxvf oci8-1.3.4.tgz

cd oci8-1.3.4

phpize

./configure --with-oci8=shared,instantclient,/opt/oracle/instantclient

make

make install

Con esto ya tenemos todas las librerias graficas necesarias las gd no las vamos a compilar porque ella vienen nativas en casi todas las distribuciones entonces procedemos a compilar el php

tar zxvf php-5.2.8.tar.gz

cd php-5.2.8

./configure --with-apxs2=/usr/sbin/apxs --enable-mod-charset --enable-fastcgi --enable-debug --enable-sigchild --enable-magic-quotes --with-oci8=instantclient,/opt/oracle/instantclient --with-zlib-dir --with-jpeg-dir=/usr/local/jpeg --enable-ftp --with-gd --enable-gd-native-ttf --enable-sysvshm --enable-sysvsem --with-mysql --with-freetype-dir=/usr/local/freetype --with-zlib --with-mm --with-curl --enable-debug --enable-safe-mode --enable-sigchild --enable-libgcc --disable-ipv6 --enable-dba --enable-calendar --enable-dbase --enable-exif --enable-gd-jis-conv --enable-mbstring --enable-shmop --enable-soap --enable-sqlite-utf8 --enable-zip --enable-magic-quotes --enable-wddx --with-iconv --with-gettext --enable-bcmath --with-bz2 --with-t1lib=/usr/local/t1/ --with-mime-magic --with-openssl --with-pdo-mysql --with-mysqli --enable-sysvmsg

make

make install

Con esto ya tenemos nuestro servidor web casi listo solo nos falta cagarles las extensiones de php al apache y lo hacemos de la siguiente manera

vi /etc/apache2/conf/httpd.conf

Agregamos al final del archivos las siguientes lineas

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

Ya con esto esta listo nuestro servidor si queremos revisar si cargo todos los modulos creamos un info.php de la siguiente manera

vi /etc/apache2/share/htdocs/info.php

dentro de este archivo agregamos estas lineas

phpinfo();
?>

abrimos un navegador y escribes eta direccion http://tuip/info.php

domingo, 1 de febrero de 2009

Cambiar ruta de base de datos de mysql

A veces se llena el filesystem donde tenenmos alojada la base de datos aqui les pongo una manera de como cambiar la ruta de la base de datos con sus respectivos permisos y usuarios

mysql_install_db --datadir=/ruta/donde/quieras
chown -R mysql.mysql /ruta/donde/quieras
mysqld_safe --datadir=/ruta/donde/quieras --user=root &

Con esto ya tendremos nuestra base de datos en otro filesystem y funcionando correctamente.