DocMGR

Instalación de DocMGR 0.55.3

Documento original http://diariodeunadministrador.blogspot.com/2006/03/instalacin-de-docmgr-0553.html

DocMGR 0.55.3 http://www.docmgr.org/ es un gestor de documentación que incluye características tales como indexación de contenidos, control de versiones, gestión de usuarios y grupos, colecciones de archivos… entre otras.

Para instalar docmanager 0.55.3 necesitamos los siguientes paquetes para Debian Sid. La mínima versión para Debian es Etch (que tiene php 5) o Sarge si lo compilamos, o usamos un backport. Con la madurez actual de Etch (testing a 28-03-2006) recomiendo esta por sus archivos más actualizados y estabilidad moderada. Entre los siguientes paquetes, es posible que no se necesiten todos, pero son los que hay en mi instalación (en negrita, algunos que no pueden faltar, aparte de los propios de cada programa claro)

PHP 5.x

ii php-pear 5.1.2-1 PEAR - PHP Extension and Application Reposit
ii php5-clamavlib 0.12a-1+b1 PHP ClamAV Lib - ClamAV Interface for PHP5 S
ii php5-cli 5.1.2-1+b1 command-line interpreter for the php5 script
ii php5-common 5.1.2-1+b1 Common files for packages built from the php
ii php5-gd 5.1.2-1+b1 GD module for php5
ii php5-imap 5.1.2-1 IMAP module for php5
ii php5-ldap 5.1.2-1+b1 LDAP module for php5
ii php5-mapscript 4.8.1-2 module for php5-cgi to use mapserver
ii php5-mhash 5.1.2-1+b1 MHASH module for php5
ii php5-mysql 5.1.2-1+b1 MySQL module for php5
ii php5-pgsql 5.1.2-1+b1 PostgreSQL module for php5
ii php5-recode 5.1.2-1+b1 recode module for php5
ii php5-xsl 5.1.2-1+b1 XSL module for php5

Postgresql 8.x

ii postgresql-8.1 8.1.3-2 object-relational SQL database, version 8.1
ii postgresql-8.1-plr 0.6.2-2 Procedural language interface between Postgr
ii postgresql-client-8.1 8.1.3-2 front-end programs for PostgreSQL 8.1
ii postgresql-client-common 48 manager for multiple PostgreSQL client versi
ii postgresql-common 48 manager for PostgreSQL database clusters
ii postgresql-contrib-8.1 8.1.3-2 additional facilities for PostgreSQL

Apache 2.x

ii apache-common 1.3.34-2 support files for all Apache webservers
ii apache2 2.0.55-4 next generation, scalable, extendable web se
ii apache2-common 2.0.55-4 next generation, scalable, extendable web se
ii apache2-doc 2.0.55-4 documentation for apache2
ii apache2-mpm-prefork 2.0.55-4 traditional model for Apache2
ii apache2-utils 2.0.55-4 utility programs for webservers
ii libapache-mod-auth-mysql 4.3.9-2.1+b1 Apache module for MySQL authentication
ii libapache2-mod-auth-pam 1.1.1-6 module for Apache2 which authenticate using
ii libapache2-mod-auth-pgsql 2.0.3-3 Module for Apache2 which provides pgsql auth
ii libapache2-mod-perl2 2.0.2-2 Integration of perl with the Apache2 web ser
ii libapache2-mod-php5 5.1.2-1+b1 server-side, HTML-embedded scripting languag
ii libapache2-mod-security 1.8.7-1 Tighten web applications security for Apache
ii libapache2-modxslt 2004112100-3.1 XSLT processing module for Apache 2.0.x base

Otras aplicaciones externas requeridas para añadir funcionalidad

A continuación pongo la información del DocMGR instalado sobre los programas que usa. Cuando lo instaléis y os logoneéis, podéis ir a Administrar –> Aplicaciones externas y os informará de que tenéis y que no. Con apt-get install podéis instalar todo lo que os falte y que queráis usar. Algunas son xpdf, clamav o antiword.

Una vez instalados vamos a configurar cada parte de forma básica para que funcione (después se puede ir afinando)

Configuración Postgresql

Editamos el archivo /etc/postgresql/8.1/main/pg_hba.conf que se encarga de la seguridad y añadimos o cambiamos lo que hay en negrita. A mi no me ha funcionado postgresql sin hacer esto.

# Database administrative login by UNIX sockets
local all postgres trust

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all postgres 127.0.0.1/32 trust
host all all 127.0.0.1/32 md5
# IPv6 local connection:
host all all ::1/128 md5

Configuramos PHP

Editamos el archivo /etc/php5/apache2/php.ini para el servidor apache y /etc/php5/cli/php.ini que es el de configuración del cliente para que usen postgresql y otras cosas mas:

max_execution_time = 39200 #(segundos, 12 horas, 30 sg por defecto) - Dejarlo por defecto en 30 sg puede ser un problema al ejecutar algunos scripts y que estos se paren antes de que se terminen de ejecutar. Como con todo, cada uno puede afinarlo como quiera.
max_input time = 600 # (segundos, 60 sg por defecto), es el tiempo máximo que cada script puede gastar analizando sintácticamente datos que han sido pedidos.
max_memory_limit = 256M #(8M por defecto) máxima cantidad de memoria que un script puede consumir
post_max_size = 1024M # máximo tamaño de un POST que php aceptará
upload_max_filesize = 1024M # máximo tamaño de archivo que se puede subir al servidor
extension = pgsql.so # La extensión o modulo para poder usar postgresql en php

Las anteriores directivas están igual en los dos ficheros. Además debe aparecer la sección [PostgreSQL].

Configuramos Apache 2

Editamos el archivo /etc/apache2/apache2.conf

ServerRoot "/etc/apache2" # por defecto
ServerName "nombre_del_host"

El archivo /etc/apache2/sites-enabled/000-default contiene los sitios permitidos del servidor. Este es el archivo que viene por defecto y el contenido está modificado, no es el que viene originalmente, así que hay que tener cuidado con esto y fijaros en lo que hay antes de hacer nada.

En este caso tenemos:

NameVirtualHost *:80 # Todo lo que llega al puerto 80 (el servidor web por defecto)
<virtualhost *:80>
ServerAdmin admin@mail # mail administrador del sitio
DocumentRoot /var/www/ # Documento raíz del servidor web

<directory / >
Options FollowSymLinks
AllowOverride None
</directory>

<directory /var/www >
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
RedirectMatch ^/$ /doc/ #Para que se al poner la dirección de la web, el servidor vaya directamente a la carpeta /doc y cargue DocMGR de forma automática. Esta carpeta doc, la copiaremos en los siguientes pasos al directorio raíz del servidor apache.
</directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<directory "/usr/lib/cgi-bin" >
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On

</virtualhost>

Recargamos los ficheros de los servidores para asegurarnos de que las configuraciones se van a aplicar con

# /etc/init.d/apache2 reload

Reloading apache 2.0 configuration…

# /etc/init.d/postgresql-8.1 reload

Reloading PostgreSQL 8.1 database server: main.

Poner archivos de DocMGR en apache2

Una vez que los requisitos están cumplidos, debemos hacer funcionar la aplicación. Para ello, debemos tener descargados los archivos

docmgr-0.55.3.tar.gz desde http://sourceforge.net/project/showfiles.php?group_id=39658 Spanish.zip desde http://wiki.docmgr.org/index.php/Language_Files

El primero lo descomprimimos con tar y se nos creará la carpeta doc en el directorio donde lo descomprimamos, con todos los subdirectorios y archivos de DocMGR.

# tar -zxvf docmgr-0.55.3.tar.gz

El segundo lo descomprimimos con unzip, que nos dará como resultado los archivos Castellano.php y es.js que son los archivos de idioma Castellano. Estos los movemos a la carpeta doc/lang/ para que estén disponibles para DocMGR.

# unzip Spanish.zip

Archive: Spanish.zip inflating: Castellano.php inflating: es.js

# mv Castellano.php es.js doc/lang/

Una vez hecho esto, movemos el directorio doc/ , ya con el idioma español, al directorio raíz de apache2

# mv doc /var/www/

Le cambiamos el propietario y grupo a a www-data que es el usuario de apache2, para que pueda manejar los archivos.

# cd /var/www/
# chown -R www-data:www-data doc

Le cambiamos los permisos a 770 para que solo el usuario y grupo www-data tenga acceso (o root).

# chmod -R 770 doc

Creación de la base de datos de DocMGR

A continuación, creamos la base de datos docmgr usando el comando su para ejecutar el comando proporcionado con (-c) con el usuario de sistema postgres (-l) desde consola de root. El comando createdb esta disponible cuando instalamos postgresql.

# su -l postgres -c "createdb docmgr"

Creamos la estructura de la base de datos docmgr con el script docmgr.pgsql que se encuentra en el directorio /var/www/doc/scripts. Primero cambiamos el propietario y grupo del script a postgres para que pueda ser ejecutado y después lo ejecutamos así:

# chown -R postgres:postgres /var/www/doc/scripts/docmgr.pgsql
# psql -d docmgr -f /var/www/doc/scripts/docmgr.pgsql -u postgres

Con el comando psql podemos gestionar Postgresql, la opción -d es la base de datos donde vamos a ejecutar las sentencias del archivo dado con -f y con el usuario de la base de datos llamado postgres. Cuando os pida la contraseña del usuario, dais a intro sin escribir nada. Si usais otro usuario pues escribis la contraseña si tiene.

En la carpeta /var/www/doc/scripts/ hay otros archivos interesantes que podréis ejecutar según vuestros intereses, recordando siempre cambiar los permisos. De hecho, recomiendo encarecidamente cambiar los permisos de toda esta carpeta para que no se puedan acceder con el servidor web. Entre otros están los script de indexación o de generación de bases de datos de versiones anteriores a postgres.

También hay otro archivo importante que deberíais configurar a vuestro gusto este es /var/www/doc/config/config.php y es el archivo que sirve para configurar DocMGR, entre otras cosas, parametros de conexión a la base de datos (si cambiais el nombre de la base de datos, puerto, host, etc. hay que ponerlo aquí), directorio de los ficheros, directorio de importación, lenguaje por defecto,etc.

Para más información www.docmgr.org

Comprobación de la instalación

Para comprobar que todo ha salido correctamente, abrimos nuestro navegador web favorito (en mi caso Firefox) y ponemos la dirección http://localhost que debería llevarnos a la pantalla de login.

inicio sesión

Si es así, ya esta funcionando, después introducimos el usuario admin y contraseña admin por defecto y ya podemos usarlo y configurarlo.