SVN + IBM HTTP Server 7

Si en algún momento te has encontrado con la tarea de tener que realizar una instalación utilizando SVN e IBM HTTP Server, sabrás que no es  una tarea fácil ya que IBM HTTP Server, aunque esta basado en el servidor Web Apache, no cuenta con los módulos de SVN como su contraparte.

El objetivo del procedimiento que se mostrará (dado que fue imposible compilar los módulos de svn directamente contra IBM HTTP Server), es compilar los módulos necesarios de subversión contra la misma versión utilizada por IBM para luego extraer los módulos SVN para su posterior uso. A continuación te presentamos los pasos a seguir.

NOTA: Es muy importante resaltar que los pasos mostrados en este post se sugieren como resolución alternativa.

 Los componentes utilizados para esta instalación se detallan a continuación:

  • Centos 5.5
  • Apache 2.2.8
  • IBM Http Server 7.0
  • Openssl 0.9.8
  • Subversion 1.6.11
  • Utils de subversion 1.6.11

IBM HTTP SERVER:

1.- Descargamos el instalador de la versión 7 de IBM HTTP Server en la siguiente ruta: /usr/local/de/

# wget https://www6.software.ibm.com/sdfdl/v2/regs2//rederpj/Xa.2/Xb.UWefAKXz7zMhKTiuwPP-fqLwBcH0Mw4Mr85KueMcDw/Xc.ihs.7000.linux.ia32.tar/Xd./Xf.LPr.A6va/Xg.6698007/Xi.http/XY.regsrvs/XZ.bV--vjtJuzS4jux99pqF552u8XE/ihs.7000.linux.ia32.tar

2.- Descomprimimos el paquete con:

 # tar xf ihs.7000.linux.ia32.tar

 3.- Accedemos a la carpeta IHS

# cd IHS

 4.- Ejecutamos el instalador :

# java -jar setup.jar

 5.- Aceptamos la licencia y seguimos los pasos mostrados de instalación. Instalando nuestro HTTP Server en la siguiente Ruta: /usr/local/de/HTTPServer

 

OpenSSL

 1.- Descargamos el paquete

# wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz

 2.- Descomprimimos

# tar zxvf openssl-0.9.8e.tar.gz
# cd openssl-0.9.8e

3.- Compilamos

# ./config --prefix=/usr/local/de/openssl
# make
# make install

Apache 2.2.8

1.- Descargamos el paquete de apache de la siguiente URL

wget http://archive.apache.org/dist/httpd/httpd-2.2.8.tar.gz

 2.- Descomprimimos

# tar zxvf httpd-2.2.8
# cd httpd-2.2.8

3.- Creamos el directorio final donde se compilara nuestro apache

# mkdir -p /usr/local/de/http

NOTA: Antes de empezar a compilar es necesario incluir la siguiente Flag export CC="gcc -m32". El cual compilara nuestro apache y Subversión en 32 bits.La Razón de ésto es que aun que se descargo IBM HTTP SERVER x64, el paquete se encuentra compilado para 32bits. Por lo tanto debemos de compilar Apache y SVN de la misma manera

4.- Incluimos la siguiente FLAG

# export CC="gcc -m32"

5.- Compilamos con la siguiente línea:

a.-Antes de compilar instalamos las siguientes librerías en el siguiente orden:

yum install glibc-devel.i386 glibc-devel.x86_64
yum install apr-devel.i386 apr-devel.x86_64
yum install openldap-devel.i386 openldap-devel.x86_64 openldap.i386 openldap.x86_64
yum install libgcj-devel.i386 libgcj-devel.x86_64
yum install zlib.i386 zlib-devel.i386

b.- Compilamos con la siguiente línea:

# ./configure --prefix=/usr/local/de/http --enable-proxy-ajp --enable-proxy --enable-proxy-http --with-ldap --with-ssl=/usr/local/de/openssl/ --enable-mods-shared="all dav" --enable-so --enable-authnz-ldap --with-ldap-lib=/usr/lib --with-included-apr

#make

#make install

Subversión

 1.- Descargamos el paquete de la siguiente URL

# wget http://archive.apache.org/dist/subversion/subversion-1.6.11.tar.gz

2.- Descomprimimos los paquetes:

# tar zxvf subversion-1.6.11.tar.gz
# cd subversion-1.6.11

3.- Descargamos el paquete que contiene las dependencias de subversión:

# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.gz

4.- Creamos la carpeta que contendra SVN

# mkdir -p /usr/local/de/svn

5.- Descomprimimos las dependencias

# tar zxvf subversion-deps-1.6.11.tar.gz

 

NOTA: A Partir de este punto se instalan dependencias necesarias para SVN

SQLITE

1.- Accedemos a la carpeta

# cd subversion-1.6.11/sqlite-amalgamation

2.- Creamos la carpeta que contendra SQLITE

# mkdir -p /usr/local/de/svn/sqlite-amalgamation

3.- Compilamos con la siguiente línea:

# ./configure --prefix=/usr/local/de/svn/sqlite-amalgamation/ --enable-threadsafe
# make
# make install

NEON

1.-Accedemos a la carpeta

# cd subversion-1.6.11/neon

2.- Creamos la carpeta que contendra NEON

# mkdir -p /usr/local/de/svn/neon

3.- Instalamos las siguientes librerías:

yum install libxml2.i386 libxml2-devel.i386

3.- Compilamos con la siguiente línea:

# ./configure --prefix=/usr/local/de/svn/neon

 
ZLIB

1.-Accedemos a la carpeta

# cd subversion-1.6.11/zlib

2.- Creamos la carpeta que contendra ZLIB

# mkdir -p /usr/local/de/svn/zlib

3.- Compilamos con la siguiente línea:

# ./configure --prefix=/usr/local/de/svn/zlib/
# make
# make install


SUBVERSIÓN

1.-Accedemos a la carpeta

# cd $Directorio_descarga/subversion-1.6.11

2.- Instalamos las siguientes librerías necesarias:

yum install expat.i386 expat.x86_64 expat-devel.i386 expat-devel.x86_64

3.- Compilamos con la siguiente línea:

# ./configure --prefix=/usr/local/de/svn --with-apxs=/usr/local/de/http/bin/apxs --with-apr=/usr/local/de/http --with-apr-util=/usr/local/de/http --with-sqlite=/usr/local/de/svn/sqlite-amalgamation/ --with-neon=/usr/local/de/svn/neon/ --with-zlib=/usr/local/de/svn/zlib/

# make
# make install
 

Pasos Finales 

  • Una vez terminamos de compilar svn,  los módulos mod_dav_svn y authz_svn se encontrarán en la siguiente ruta:
/usr/local/de/http/modules
-rwxr-xr-x 1 root root 573591 Aug 22 05:24 mod_dav_svn.so
-rwxr-xr-x 1 root root  33791 Aug 22 05:24 mod_authz_svn.so
  • copiamos estos módulos a la carpeta de http ibm
     /usr/local/de/HTTPServer/modules
  • Añadimos las siguientes líneas en el fichero de configuración http.conf
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

 

WordPressTwitterBlogger PostShare

Añadir un módulo a un Apache compilado

Apache es uno de los servidores webs mas extendidos en el mercado debido a su versatilidad, alta configuración, variedad de módulos, etc.

Habiendo expuesto estas caracteristicas, seguramente en algún punto te habrá tocado compilar este servidor desde cero debido a requerimientos de instalación u otro motivo. Si es tu primera vez haciendo una compilación, sabrás que puede volverse una tarea difícil.

Si tras haber compilado Apache te encuentras con el problema de que se te ha olvidado un módulo que necesitas, solo tienes que seguir los siguientes pasos para añadirlo sin volver a pasar por el tedioso proceso de recompilarlo.

Para este ejemplo en particular añadiremos el modulo mod_proxy, pero los pasos valen para cualquier módulo que necesites.

Valiéndonos de "APXS" que es una herramienta para construir e instalar módulos de Apache, que tuvo que ser generada cuando compilamos nuestro Apache. Ejecutaremos lo siguiente:
NOTA:

Es muy importante recordar que este comando tiene que ejecutarse utilizando la carpeta que se usó para compilar Apache inicialmente, ya que en el momento de ejecutar nuestro "Configure" con nuestras opciones de compilación, se   especifican las rutas de instalación de nuestro Apache. Por lo que es muy importante que guardemos las carpetas que utilicemos para nuestras compilaciones en una ubicación segura. Ejemplo
# httpd-2.2.22     ---> Carpeta utilizada para compilar apache inicialmente

# httpd-2.2.22/modules/proxy -----> Carpeta con los módulos de proxy

# /usr/local/http -----> ruta de nuestro apache compilado

# /usr/local/httpd/bin/apxs -----> ruta de "APXS"


/usr/local/httpd/bin/apxs -c -i -a httpd-2.2.22/modules/proxy/mod_proxy.c

donde:
-c : Compila los módulos.
-i : Instala los módulos DSO.
-a : Activa el modulo automáticamente, añadiendo las lineas de LoadModule en httpd.conf

Resultado:

/usr/local/http/build/libtool --silent --mode=compile gcc -prefer-pic   -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/http/include  -I/usr/local/http/include   -I/usr/local/http/include   -c -o mod_proxy.lo mod_proxy.c && touch mod_proxy.slo
/usr/local/http/build/libtool --silent --mode=link gcc -o mod_proxy.la  -rpath /usr/local/http/modules -module -avoid-version    mod_proxy.lo
/usr/local/http/build/instdso.sh SH_LIBTOOL='/usr/local/http/build/libtool' mod_proxy.la /usr/local/http/modules
/usr/local/http/build/libtool --mode=install cp mod_proxy.la /usr/local/http/modules/
cp .libs/mod_proxy.so /usr/local/http/modules/mod_proxy.so
cp .libs/mod_proxy.lai /usr/local/http/modules/mod_proxy.la
cp .libs/mod_proxy.a /usr/local/http/modules/mod_proxy.a
chmod 644 /usr/local/http/modules/mod_proxy.a
ranlib /usr/local/http/modules/mod_proxy.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/http/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/http/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/http/modules/mod_proxy.so

 

WordPressTwitterBlogger PostShare

Informes de estadísticas con Awstats

En este post encontraréis los pasos de instalación de Awstats que es una herramienta opensource para generar informes de estadísticas basándose en los logs del servidor. Awstats soporta varios formatos de logs de servidores web entre ellos Apache, IIS, etc además de tener la ventaja de poder personalizar los mismos.

Esta instalación la realizaremos utilizando una distribucion Ubuntu 10.01

  1.   Instalamos el paquete de awstats con el siguiente comando
apt-get install awstats

 

  1. Localizar el siguiente fichero “awstats_configure.pl”
Resultado:

/usr/share/doc/awstats/examples/awstats_configure.pl

NOTA: El fichero "awstats_configure.pl" que se encuentra en la ruta anterior esta en una ruta ejemplo, por lo que  para instalar correctamente correctamente Awstats, lo moveremos a /usr/local/awstats

 

  1. Movemos el directorio
cd /usr/share/doc/awstats

mv examples/ /usr/local/awstats

 

  1. Ejecutamos el fichero de configuración:
cd /usr/local/awstats

perl awstats_configure.pl

Resultado:

root@ip-10-48-127-145:/usr/local/awstats# perl awstats_configure.pl

----- AWStats awstats_configure 1.0 (build 1.8) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).

-----> Running OS detected: Linux, BSD or Unix

-----> Check for web server install

Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /etc/apache2/apache2.conf

-----> Check and complete web server config file '/etc/apache2/apache2.conf'
  All AWStats directives are already present.

-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> website.bbvaglobalnet.com     -----> Nombre del sitio web del cual necesitamos generar nuestras estadísticas

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>

-----> Create config file '/etc/awstats/awstats.website.bbvaglobalnet.com.conf'
Error: Failed to open '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf' for read.

 

  1. Este punto falla ya que no existe ni el fichero ni la ruta, por lo que lo crearemos a mano:
 mkdir -p /usr/local/awstats/wwwroot/cgi-bin/

 

  1. El fichero awstats.model.conf se encuentra comprimido en la siguiente ruta /usr/local/awstats por lo que procedemos a descomprimirlo
root@ip-10-48-127-145:/usr/local/awstats# ll
total 180

-rw-r--r--  1 root root 17688 2009-09-08 17:10 awstats.model.conf.gz
-rwxr-xr-x  1 root root  5504 2011-02-02 08:55 awstats_updateall.pl*
drwxr-xr-x  2 root root  4096 2012-06-21 16:35 css/
-rw-r--r--  1 root root  2562 2008-11-15 16:03 example.pm.gz
drwxr-xr-x  2 root root  4096 2012-06-21 16:35 js/

# gunzip  awstats.model.conf.gz

# mv awstats.model.conf /usr/local/awstats/wwwroot/cgi-bin/

 

  1. Ejecutamos nuevamente nuestro fichero de configuración:
# perl awstats_configure.pl

Resultado:

----- AWStats awstats_configure 1.0 (build 1.8) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).

-----> Running OS detected: Linux, BSD or Unix

-----> Check for web server install

Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /etc/apache2/apache2.conf

-----> Check and complete web server config file '/etc/apache2/apache2.conf'
  All AWStats directives are already present.

-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
  File awstats.model.conf updated.

-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> website.bbvaglobalnet.com

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>

-----> Create config file '/etc/awstats/awstats.website.bbvaglobalnet.com.conf'
Config file /etc/awstats/awstats.website.bbvaglobalnet.com.conf created.

-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=website.bbvaglobalnet.com
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue...

A SIMPLE config file has been created: /etc/awstats/awstats.website.bbvaglobalnet.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'website.bbvaglobalnet.com' with command:
> perl awstats.pl -update -config=website.bbvaglobalnet.com
You can also read your statistics for 'website.bbvaglobalnet.com' with URL:
> http://localhost/awstats/awstats.pl?config=website.bbvaglobalnet.com

Press ENTER to finish...

 

  1. Awstats por defecto instala el fichero “awstats.pl” en la ruta: /usr/lib/cgi-bin/. Para mantener nuestra instalación consistente moveremos este fichero a la siguiente ruta:
# mv /usr/lib/cgi-bin/awstats.pl /usr/local/awstats/wwwroot/cgi-bin/

 

  1. Modificaremos las siguientes líneas en el fichero de configuración de apache, que especificamos durante la instalación:
vi /etc/apache/apache.conf

Modificar las siguientes lineas:

# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"                    Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"                            Alias /awstatscss "/usr/share/awstats/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"            por          Alias /awstatsicons "/usr/share/awstats/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"                    ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

 

  1. Para generar las estadísticas es necesario:
Nuestros ficheros de configuración de Awstats se encuentran en la ruta: /etc/awstats
Hacemos una copia de nuestro fichero de configuración global de awstats el cual servirá como plantilla todos los dominios para los cuales queramos nuestras estadísticas

Ejemplo:

cp etc/awstats/awstats.conf /etc/awstats/awstats.site_name.conf

cp /etc/awstats/awstats.conf /etc/awstats/awstats.website.bbvaglobalnet.com.conf

 

  1. Modificamos los parámetros LogFile, SiteDomain y HostAliases en nuestro fichero de configuración para nuestro sitio
vi /etc/awstats/awstats.website.bbvaglobalnet.com.conf

Ejemplo:

LogFile="/var/log/apache2/website.log"

SiteDomain="website.com"

HostAliases="website.com www.website.com 127.0.0.1 localhost"

 

  1. Una vez modificadas las variables,  podemos crear nuestras estadísticas
perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=website.bbvaglobalnet.com -configdir="/etc/awstats"

NOTA: Es muy importante especificar la opción -configdir ya que de lo contrario luego se pueden originar problemas como el siguiente:

Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats.

 

  1. Finalmente podemos visualizar nuestras estadísticas, introduciendo lo siguiente en nuestro navegador:
http://127.0.0.1/awstats/awstats.pl?config=website.bbvaglobalnet.com

 

 

 

 

 

 

WordPressTwitterBlogger PostShare