Prerequisites

Java

Oracle JDK 1.7.x. Use the latest available. OpenJDK should also work but we are recommending using the Oracle distribution.

$ yum install java-1.7.0-openjdk-devel

Glassfish

Glassfish Version 4.1 is required.

Important: once Glassfish is installed, a new version of the WELD library (v2.2.10.SP1) must be downloaded and installed. This fixes a serious issue in the library supplied with Glassfish 4.1.

  • Download and install Glassfish (installed in /usr/local/glassfish4 in the example commands below):

    $ wget http://dlc-cdn.sun.com/glassfish/4.1/release/glassfish-4.1.zip
    $ unzip glassfish-4.1.zip
    $ mv glassfish4 /usr/local
  • Download WELD v2.2.10.SP1 and install it in the modules folder:

    $ cd /usr/local/glassfish4/glassfish/modules
    $ mv weld-osgi-bundle.jar weld-osgi-bundle.jar.2.2
    $ wget http://central.maven.org/maven2/org/jboss/weld/weld-osgi-bundle/2.2.10.SP1/weld-osgi-bundle-2.2.10.SP1-glassfish4.jar
    $ /usr/local/glassfish4/bin/asadmin start-domain domain1
  • Verify Weld version:

    $ /usr/local/glassfish4/bin/asadmin osgi lb | grep 'Weld OSGi Bundle'

PostgreSQL

1. Installation

Version 9.3 is recommended.

We recommend installing Postgres from the EPEL repository:

$ wget http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
rpm -ivh pgdg-centos93-9.3-1.noarch.rpm

$ yum install postgresql93-server.x86_64
$ chkconfig postgresql-9.3 on
$ service postgresql-9.3 initdb
$ service postgresql-9.3 start
$ cd /etc/init.d; mv postgresql-9.3 postgres; chmod +x postgres

2. Configure access to PostgresQL for the installer script

  • The installer script needs to have direct access to the local PostgresQL server via Unix domain sockets. So this needs to be set to either “trust” or “ident”. I.e., your pg_hba.conf must contain either of the 2 “local” entries below:

    local all all ident sameuser
    or
    local all all trust

3. Configure database access for the Dataverse application

  • The app will be talking to PostgresQL over TCP/IP, using password authentication. If you are running PostgresQL on the same server, modify the localhost entry that’s already in the pg_hba.conf to look like this:

    host all all 127.0.0.1/32 password
  • If the Dataverse application is running on a different server, you will need to add a new entry to the pg_hba.conf granting it access by the network address ([ADDRESS] should be the numeric IP address of the Glassfish server):

    host all all [ADDRESS]      255.255.255.255 password
  • In some distributions, PostgresQL is pre-configured so that it doesn’t accept network connections at all. Check that the “listen_address” line in postgresql.conf is not commented-out and looks like this:

    listen_addresses='*'
    

Solr

  • Download and Install Solr:

    $ wget https://archive.apache.org/dist/lucene/solr/4.6.0/solr-4.6.0.tgz
    $ tar xvzf solr-4.6.0.tgz
    $ rsync -auv solr-4.6.0 /usr/local/
    $ cd /usr/local/solr-4.6.0/example/solr/collection1/conf/
    $ mv schema.xml schema.xml.backup
    $ wget -q --no-check-certificate https://github.com/IQSS/dataverse/raw/master/conf/solr/4.6.0/schema.xml

Start Up Scripts

  • Example of Glassfish Startup file:

    set -e
    ASADMIN=/usr/local/glassfish4/bin/asadmin
    case "$1" in
    start)
            echo -n "Starting GlassFish server: glassfish"
            # Increase file descriptor limit:
            ulimit -n 32768
            # Allow "memory overcommit":
            # (basically, this allows to run exec() calls from inside the
            # app, without the Unix fork() call physically hogging 2X
            # the amount of memory glassfish is already using)
            echo 1 > /proc/sys/vm/overcommit_memory
    
            # Set UTF8 as the default encoding:
            LANG=en_US.UTF-8; export LANG
            $ASADMIN start-domain domain1
            echo "."
            ;;
              stop)
            echo -n "Stopping GlassFish server: glassfish"
    
            $ASADMIN stop-domain domain1
            echo "."
            ;;
    
              *)
            echo "Usage: /etc/init.d/glassfish {start|stop}"
            exit 1
            esac
    exit 0