Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

Contents

Observacion: Este acticulo necesita ser reformateado, esta usando sintaxis de dokuwiki.
Obs: This articule need to be converted, the document is actualy using the dokuwiki syntax.

Prerequisitos

Java JDK 6

Se necesita por lo menos la versión 1.4 de Java JDK, nosotros usaremos las mas actuales(1.6), lamentablemente por defecto las librerías de java-gnu se mantienen referenciadas, por lo que se necesitan de algunos tips para poder configurar correctamente JAVA:

  • Descargar java desde: http__--java.sun.com-javase-downloads-index.jsp e instalarlo
  • Instalar lbrerias java-sun-compat, se puede descargar desde aquí
  • instalar jpackage-utils (//yum install jpackage-utils//)
  • Con todo el software instalado ahora es necesario reconfigurar las librerías usando el comando alternatives.
[root@webserver java]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java
*+ 2           /usr/lib/jvm/jre-1.6.0-sun/bin/java

Enter to keep the current selection[+], or type selection number: 2

Ahora el ejecutar //java -version// deberías obtener algo como:

[root@webserver java]# java -version
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

Apache Maven 2.0.8 o superior

Maven es necesario en la primera fase del proceso de compilación para ensamblar el paquete de instalacion para la instancia de DSpace. Entrega la flexibilidad de personalizar DSpace usando el proyecto Maven en el directorio *//dspace-source/dspace/modules//*

Maven se puede descargar desde http__--maven.apache.org-download.html e idealmente es bueno colocarlo en //*/usr/local/apache-maven*//

Apache Ant

Apache Ant es requerido para la segunda fase del proceso de compilación y es usado cuando el paquete de instalación ha sido construido en *//dspace-source/dspace/target/dspace-<version>-build.dir//*

Ant puede ser descargado desde http__--ant.apache.org

PostgreSQL

Para instalarlo basta con

yum install postgresql-server

Una vez instalado se necesitan activar las conexiones TCP/IP, como estamos utilizando PostgreSQL 8, en el archivo *///var/lib/pgsql/data/postgresql.conf//* descomenta la linea:

listen_addresses = 'localhost'

Luego le agregamos un poco de seguridad editando el archivo *///var/lib/pgsql/data/pg_hba.conf//* agregando la esta linea al inicio de las directivas:

host dspace dspace 127.0.0.1 255.255.255.255 md5

Para luego reiniciar PostgreSQL y dejarlo activado para un posterior inicio automático

  1. chkconfig postgresql on
  2. service postgresql restart

Jakarta Tomcat

Podemos usar el que viene integrado con la distribución, se instalaran numerosas dependencias

yum install tomcat5

Como una precaución hay que dejarlo activado al inicio usando el comando //*chkconfig tomcat5 on*//

Instalación

  • Crear el usuario DSpace, necesita ser el mismo usuario que corre Tomcat:
# useradd -m dspace

Es bueno entonces editar el archivo //*/etc/group*// y dejar al usuario tomcat en el grupo dspace:

dspace:x:500:tomcat

  • Descargar la ultima versión de DSpace y descomprimirlo, idealmente en el directorio *///home/dspace//*

    • Crear el usuario y la base de datos para DSpace (no necesita ser necesariamente el mismo password que el usuario dspace de unix):
    # su -l postgres
    $ createuser -U postgres -d -A -P dspace
    Enter password for new role:
    Enter it again:
    Shall the new role be allowed to create more new roles? (y/n) n
    CREATE ROLE
    $
    
  • Edita el archivo *//dspace-source/dspace/config/dspace.cfg//* se necesita modificar:
dspace.dir          --> Directorio de instalación de DSpace.
dspace.url          --> URL completa del servidor.
dspace.hostname     --> FQDN del servidor.
dspace.name         --> Nombre del sitio DSpace.
db.password         --> Password de la base de datos.
mail.server         --> FQDN del servidor de correos salientes.
mail.from.address   --> Nombre de Mail que aparecerá cuando DSpace envíe correos.
feedback.recipient  --> e-mail de feedback.
mail.admin          --> e-mail del administrador.
alert.recipient     --> e-mail de alertas, errores (no es esencial, pero es muy útil para comenzar un nuevo server o revisar problemas)
registration.notify --> e-mail para la notificación de nuevos usuarios (opcional)
  • Crear el directorio para la instalación de DSpace. Como root:
mkdir /usr/local/dspace
chown dspace.dspace /usr/local/dspace

(Asumiendo que el usuario dspace es el que corre la plataforma.)

  • Como el usuario dspace, hay que generar los paquetes de instalación que quedaran guardados en el directorio *//dspace-source/dspace/target/dspace-version-buid.dir//*:

cd dspace-source/dspace/

mvn package

  • Integrar DSpace a Tomcat, para ello hay dos opciones:
    Copiar los archivos de aplicación web de DSpace hacia el directorio webapps de Tomcat:

cp -r dspace/webapps/jspui /usr/share/tomcat5/webapps
cp -r dspace/webapps/oai /user/share/tomcat5/webapps

O simplemente agregar en la configuración del servidor Tomcat que esta en el archivo *///etc/tomcat5/server.xml//* dentro de la sección *Host*
<code xml>

<Context path="/jspui" docBase="dspace/webapps/jspui" debug="0" reloadable="true" cachingAllowed="false" allowLinking="true"/>

<Context path="/oai" docBase="dspace/webapps/oai" debug="0" reloadable="true" cachingAllowed="false" allowLinking="true"/>
</code>

  • Ahora solo queda crear una cuenta inicial de administrador:
[dspace]/bin/create-administrator

Para ingresar al panel de administración Web necesitas ir a la URL http://ip_servidor:8080/dspace/dspace-admin.

Usar DSpace en Apache usando mod_jk

La idea del modulo mod_jk es utilizar apache para no tener que colocar un puerto especifico en la url del navegador, simplificandole la vida al usuario. Obviamente estas instrucciones son opcionales y complementarias a la instalacion de DSpace.

Verificar si mod_jk esta instalado

Cuando esta instalado, usualmente se encuentra en /etc/httpd/modules/ . Aunque se puede localizar con el comando find:

find / -name "mod_jk"

Si no hay respuesta es porque no se encuentra instalado.

Prerequisitos

Antes de instalar existen unos pequeños requisitos que deberás satisfacer, si alguno de ellos no existe deberás instalarlo. Puedes probar que se cumplen tipeando:

which libtool
which autoconf
which ant

Ademas tienes que tener instalado el paquete httpd-devel, puedes ver si lo tienes instalado con el comando:

rpm -qa|grep httpd-devel

si no lo tienes instalado bastaría con un simple

yum install httpd-devel

Para satisfacer la dependencia.

Instalar mod_jk

Baja el ultimo mod_jk desde el sitio de Tomcat y descomprime el contenido en tu directorio home.

tar xvzf tomcat-connectors-1.2.xx-src.tar.gz

Configura el conector con el path correspondiente a apxs, para luego hacer un make

cd tomcat-connectors-1.2.xx-src/native
./configure --with-apxs=/usr/sbin/apxs
make

Si todo salio correctamnete el archivo mod_jk.so fue creado en el subdirectorio apache-2.0. Copia este archivo a la carpeta de los modulos de apache:

cp apache-2.0/mod_jk.so /etc/httpd/modules

Adicionalmente copia el archivo workers.properties que se encuentra dentro de la carpeta conf hacia la carpeta de configuración de apache /etc/httpd/conf/. Asumiendo que aun se esta en la carpeta native:

cp ../conf/workers.properties /etc/httpd/conf

Configurar workers.properties

Editar el archivo /etc/httpd/conf/workers.properties. Se modificará las carpetas home de Tomcat y Java:

workers.tomcat_home=/home/dspace/tomcat
workers.java_home=/usr/java/jdk1.6.0

Adicionalmente, se debe comentar la linea referente a JVM (esta activada por defecto en Windows) la cambiamos a Unix, por lo siguiente:

# Windows
#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
# IBM JDK1.3
#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)libjvm.so
# Unix - Sun VM or blackdown
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)i386$(ps)server$(ps)libjvm.so

Nota: No basta con descomentar la linea referente a Unix ya que el path esta malo, en vez de:

$(workers.java_home)$(ps)jre$(ps)lib$(ps)i386$(ps)classic$(ps)libjvm.so

debe decir

$(workers.java_home)$(ps)jre$(ps)lib$(ps)i386$(ps)server$(ps)libjvm.so

Configurar mod_jk

En la carpeta /etc/httpd/conf.d/ creamos un archivo llamado jk.conf que tendra el siguiente contenido:

<code apache>
#

  1. Use the JK Module to connect to Tomcat Instance
    #
  2. Load mod_jk module
    LoadModule jk_module modules/mod_jk.so
  1. Where to find workers.properties
    JkWorkersFile /etc/httpd/conf/workers.properties
  1. Where to put jk logs
    JkLogFile /var/log/httpd/mod_jk.log
  1. Set the jk log level debug/error/info
    JkLogLevel info
  1. Select the log format
    JkLogStampFormat "%a %b %d %H:%M:%S %Y "
  1. JkOptions indicate to send SSL KEY SIZE,
  2. JkOptions +ForwardKeySize +ForwardUICompat -ForwardDirectories
  3. Found that these options were necessary with Apache 2.2:
    JkOptions +ForwardKeySize +ForwardDirectories
  4. JkRequestLogFormat set the request format
    JkRequestLogFormat "%w %V %T"
  1. Send all requests for /dspace context to worker ajp13
  2. Note: ajp13 is defined in workers.properties and
  3. uses the AJP 1.3 Protocol
    JkMount /dspace/* ajp13
  1. ... and ditto if you want OAI
    JkMount /dspace-oai/* ajp13
  1. For extra security, deny direct access to any WEB-INF and META-INF directories
    <LocationMatch "/WEB-INF/">

    AllowOverride None
    Deny from all

    </LocationMatch>

<LocationMatch "/META-INF/">

AllowOverride None
Deny from all

</LocationMatch>
</code>

Configurar Tomcat

Revisa el archivo *///home/dspace/tomcat/conf/server.xml//*. y asegurate que el conector AJP 1.3 este descomentado y su configuración sea la siguiente (usa al usuario dspace para editar el archivo)

<code xml>

<Connector port="8009" UIEncoding="UTF-8" tomcatAuthentication="false"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
</code>

Asegurate de colocar correctamente la variable redirectPort al puerto que esta corriendo Tomcat.

Reiniciar el servicio y Probar!

Reinicia Tomcat y Apache.

# service httpd restart
# service tomcat5 restart

Deberias ser capaz de abrir DSpace tanto especificando el puerto 8080 o directamente:

http://servidor:8080/dspace
http://servidor/dspace/

Referencias

– by jmardones

</html>