Tomcat Manual installation in Debian and Ubuntu

Leave a comment

First download apache tomcat


Decompress the downloaded apache tomcat:

tar zxvf apache-tomcat-7.0.76.tar.gz

Now move the decompressed file in the following location:

mv apache-tomcat-7.0.76 /opt/tomcat

Install java

apt-get install default-jdk

Set the environment variables in .bashrc:

nano ~/.bashrc

Add the following lines to the end of the file:

export JAVA_HOME=/usr/lib/jvm/default-java
export CATALINA_HOME=/opt/tomcat

Simply save and exit .bashrc, then make the changes effective by running the following command:

. ~/.bashrc

To start Tomcat, run the following script:


You should get a result similar to:

Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr/lib/jvm/default-java
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.

Test through web browser by the address:


DSpace Manual for BALID Trainee


Training on DSpace Institutional Repository Organized by BALID Institute of Information Management (BIIM)

1-2 May 2014



DSpace Installation on Debian

 Add root password and create dspace as a user and enter password for dspace at the time of Debian installation. While installing Debian, select Desktop Environment, SQL database, SSH server & Standard System options.

 First create a dspace user in debian for Dspace, if you did not add at the time of Debian installation.

root@dir:~#adduser dspace

Add source list

root@localhost:~#nano /etc/apt/sources.list

Comment or erase all and add the followings:

deb squeeze/updates main contrib

deb-src squeeze/updates main contrib non-free

deb squeeze contrib non-free main

deb-src squeeze contrib non-free main


Upgrade the Software.

root@localhost:~#sudo apt-get update

root@localhost:~#sudo apt-get dist-upgrade

Then install other softwares as prerequisites for Dspace installation. It is a good approach to install sun-java6-jdk.

root@dir:~# apt-get install sun-java6-jdk

root@dir:~# apt-get install tomcat6

root@dir:~#apt-get install maven2

root@dir:~#apt-get install postgresql-8.4


(In training we are skipping the above four packages installation. We are going to install the above five packages with one command from CD.  In Training kits, we provide a CD which has all pre-requisites of Dspace installation in .deb file extension. You can install all .deb packages with one command. )

First in enter in the directory which contain .deb files

 root@localhost:~#cd /media/cdrom/ dspacepackages/

root@localhost:/media/cdrom/dspacepackages# dpkg -i *.deb


After installing prerequisite softwares, create dspace database in postgresql for Dspace.


root@dir:~# cd /home/dspace/

root@dir:/home/dspace# su postgres

postgres@dir:/home/dspace$ 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

postgres@dir:/home/dspace$ exit


root@dir:/home/dspace# su dspace

dspace@dir:~$ createdb -U dspace -E UNICODE dspace



Set Up Environment Variables:

root@dir:/home/dspace#sh -c ‘echo export PATH=$PATH:\”/usr/lib/jvm/java-6-sun/bin\” >> /etc/profile’

root@dir:/home/dspace# sh -c ‘echo export JAVA_HOME=\”/usr/lib/jvm/java-6-sun\” >> /etc/profile’

root@dir:/home/dspace# sh -c ‘echo export JRE_HOME=\”/usr/lib/jvm/java-6-sun/jre\” >> /etc/profile’


After that download the latest version of Dspace

root@dir:/home/dspace# wget


Untar the downloaded dspace

root@dir:/home/dspace#tar –zxvf dspace-4.1-src-release.tar.gz


We have dspace in training CD. We are not going to download it

root@dir:/home/dspace#tar –zxvf /media/cdrom/dspace-4.1-src-release.tar.gz


Set right configuration

root@dspace:/home/dspace# cd dspace-4.1-src-release/

root@dir:dapace-src-release#nano dspace/config/dspace.cfg


Thereafter build Dspace by running the following command

root@dir:/home/dspace/dspace-src-release#cd dspace

root@dir:/home/dspace/dspace-src-release/dspace# mvn package


[INFO] Scanning for projects…


[WARNING] Unable to get resource ‘org.dspace:dspace-pom:pom:10’ from repository central

( Error transferring file:

[INFO] ————————————————————————


[INFO] ————————————————————————

[INFO] Error building POM (may not be this project’s POM).

Project ID: org.dspace:dspace-parent:pom:1.8.2

Reason: Cannot find parent: org.dspace:dspace-pom for project: org.dspace:dspace

for project org.dspace:dspace-parent:pom:1.8.2


[INFO] ————————————————————————

[INFO] Trace

org.apache.maven.reactor.MavenExecutionException: Cannot find parent: org.dspace

If you have problem in your Internet connectivity, you will get the above messages. These messages

also can get, if you have proxy in your Internet connectivity. To solve this problem, set proxy in you

maven configuration file.


root@dir:/home/dspace/dspace-src-release/dspace#nano /etc/maven2/settings.xml


Uncomment and set you proxy in the following section-














root@dir:/home/dspace/dspace-src-release/dspace# mvn package

root@dir:/home/dspace/dspace-src-release/dspace# cd target/dspace-4.1-build/

root@dir:/home/dspace/dspace-src-release/dspace/target/dspace-4.1-buildr# ant fresh_install


To complete installation, you should do the following:

Setup your Web servlet container (e.g. Tomcat) to look for your DSpace web applications in:



copy any web applications from /home/dspace/webapps/ to the appropriate place for your servlet

container. (e.g. ‘$CATALINA_HOME/webapps’ for Tomcat)


root@dir:/home/dspace/dspace-src-release/dspace#cp -r /dspace/webapps/* /var/lib/tomcat6/webapps/



Create Dsapce administrator by using the command

root@dir:/home/dspace/dspace-src-release/dspace# /home/dspace/bin/dspace create-administrator


Assign permission to dspace installation directory

root@dir:/home/dspace/dspace-src-release/dspace#chmod -R 777 /dspace/*


Finally you can get your Dsapce by pointing the address in your web browser:



If ant fresh_install fail to download GeoLiteCity do the following-

In order to use DSpace Solr Usage Statistics, you will need to

manually re-run:

ant update_geolite


You may manually install this file by following these steps:

(1) Download the file from

(2) Unzip it to create a file named ‘GeoLiteCity.dat’

(3) Copy that file to ‘/dspace/config/GeoLiteCity.dat’

Configuration and Customization of Dspace

We have to change the following sections at the time of DSpace installation. Before the command “mvn package”

The location of main Dspace configuration file is –   



##### Basic information ######


# DSpace installation directory

dspace.dir = ${dspace.install.dir} Put your Dspace installation Directory


# DSpace host name – should match base URL. Do not include port number.

dspace.hostname = ${dspace.hostname} Assign your hostname here


# DSpace base host URL. Include port number etc.

dspace.baseUrl = ${dspace.baseUrl}


# DSpace base URL. Include port number etc., but NOT trailing slash

# Change to xmlui if you wish to use the xmlui as the default, or remove

# “/jspui” and set webapp of your choice as the “ROOT” webapp in

# the servlet engine.

dspace.url = ${dspace.baseUrl}/xmlui


# Name of the site = ${} Write your Dspace name here


# Default language for metadata values

default.language = ${default.language}


##### Database settings #####


# Database name (“oracle”, or “postgres”) = ${}


# Database username and password

db.username = ${db.username}

db.password = ${db.password} Insert your database password here


# From address for mail

mail.from.address = ${mail.from.address} Put your E-mail Address here


# Currently limited to one recipient!

feedback.recipient = ${} Put your E-mail Address here


# General site administration (Webmaster) e-mail

mail.admin = ${mail.admin} Put your E-mail Address here


# Recipient for server errors and alerts

alert.recipient = ${mail.alert.recipient} Put your E-mail Address here


# Recipient for new user registration emails

registration.notify = ${mail.registration.notify} Put your E-mail Address here



# Boolean search operator to use, current supported values are OR and AND

# If this config item is missing or commented out, OR is used

# AND requires all search terms to be present

# OR requires one or more search terms to be present

search.operator = OR Define your default search operator here


##### Handle settings ######

#handle.canonical.prefix = ${dspace.url}/handle/ Uncomment it to use your own URL

# If omitted, the canonical URL prefix will be

handle.canonical.prefix = ${handle.canonical.prefix} Comment it to use your own URL


# CNRI Handle prefix

handle.prefix = ${handle.prefix} Comment it to use your own URL


##### Settings for item count (strength) information #### = false Change this to truefor enabling Item-counter


# The default is to use a cache

# webui.strengths.cache = true Uncomment this line


# Set to true to use local server URLs (i.e. http://myserver.myorg/handle/123456789/1)

webui.feed.localresolve = false Set it to true to use your own URL


#### Controlled Vocabulary Settings #####

# Enable or disable the controlled vocabulary add-on

# Warning: this feature is not compatible with WAI (it requires javascript to function)


# webui.controlledvocabulary.enable = true Uncomment this line to enable controlled vocabulary

Cron Jobs setup for DSpace production system

1 Comment

Add crob jobs with the following lines in crob jobs
root@dspace#crontab -e

@hourly /home/dspace/bin/dspace itemcounter

@hourly /home/dspace/bin/dspace stats-util -f
@hourly /home/dspace/bin/dspace stats-util -i
@daily /home/dspace/bin/dspace stats-util -u
@daily /home/dspace/bin/dspace stats-util -m

@daily /home/dspace/bin/dspace update-discovery-index -o
@weekly /home/dspace/bin/dspace update-discovery-index -b -f
@monthly /home/dspace/bin/dspace update-discovery-index -c

@weekly /home/dspace/bin/dspace checker -u -d2h -p
@weekly /home/dspace/bin/dspace checker-emailer -a
@monthly /home/dspace/bin/dspace cleanup

10 0 * * * /home/dspace/bin/dspace embargo-lifter

0 1 * * * /home/dspace/bin/dspace sub-daily

10 1 * * * /home/dspace/bin/dspace stat-general
20 1 * * * /home/dspace/bin/dspace stat-monthly

10 2 * * * /home/dspace/bin/dspace stat-report-general
20 2 * * * /home/dspace/bin/dspace stat-report-monthly

@weekly /home/dspace/bin/dspace filter-media
0 3 * * * /home/dspace/bin/dspace index-update
0 6 * * * /home/dspace/bin/dspace generate-sitemaps

Koha installation process (as per BALID Koha training 3-7 September 2013)

Leave a comment

Assume that you have two Debian user, one is default root, another is koha (which you have created during Debian installation process). Beside, both root and koha user password is same, for example 123. Moreover, you have set your host as localhost, you have no proxy behind net and you have Debian Koha dependency packages in your DVD. Then relax and be seated easily for going with the following-
To run all the command directly from the root, log in through root terminal directly by using root password (you may log in through normal terminal as super user for root by this command
koha@localhost:~$ su
Password:*** (Enter root password. e.g. 123)
Now it is time to update your existing software and packages. So you need to edit your Debian source list. The name of the file is sources.list and the path is /etc/apt/sources.list, which contains the description of source. So, open the file with a text processor by e.g. nano. To save the changes you’ve made, press Ctrl+O. To exit nano, type Ctrl+X.
root@localhost:~# nano /etc/apt/sources.list
After entering the command, you will find few lines of sources list. Use # in front of lines (which are uncommented) to make it comment. Your next task is to add the following lines at the end of previous commented lines.

deb squeeze/updates main contrib
deb-src squeeze/updates main contrib non- free
deb squeeze contrib non-free main
deb-src squeeze contrib non-free main
deb squeeze main
Add the key in gpg.asc to your APT trusted keys:
wget -O- | sudo apt-key add –
Press Yes when prompted.
Now update and upgrade the system and have a nap! You may sometimes be asked to enter Y to confirm or allow.
root@localhost:~# apt-get update
root@localhost:~# apt-get upgrade
Hmmm, how long it takes? Now install MySQL
root@localhost:~# apt-get install mysql-server
Enter root password when prompted. Use the same password e.g.123
(If you found problem executing apt-get install command you may try aptitude install)
Enter or change directory which contains Debian Koha dependencies. In your case the path may be as follows
root@localhost:~# cd /media/cdrom/KohaDebPackages/

Use dpkg command, as it is a tool for installing an already available Debian package (because it does not download anything). To do this, we use its -i option.
root@localhost:/media/cdrom/KohaDebPackages# dpkg -i *.deb
How it makes the life so easier!
If any error occurred use the following command
root@localhost:~# apt-get –f install
Okay, now create Koha environment as follows
root@localhost:~# nano /etc/profile
You will find some programming statements after running above command, starts with if and ends with fi, this is a system-wide .profile file for the BASH. Now add the following two lines at the end of the lines of profile. These two lines are for exporting environment variable for Perl and Koha configuration.
export PERL5LIB=/usr/share/koha/lib
export KOHA_CONF=/etc/koha/koha-conf.xml
By default web server apache has 80 port, you will use it for OPAC. You need to add another port 8080 for your staff client interface. So now open the ports.conf file and add the 8080 port under the ‘Listen 80’ line
root@localhost:~# nano /etc/apache2/ports.conf
Listen 8080
Have you Koha source eg. koha-3.12.04.tar.gz or koha-latest-tar.gz file in your DVD? If yes then copy the file in your Koha directory or folder.. Now change your directory to Koha under Home as follows.
root@localhost:~# cd /home/koha
Now ex tract Koha source file in the koha folder using following command.
root@localhost:/home/koha# tar -zxvf koha-3.12.04.tar.gz
Change directory to koha-3.12.04
root@localhost:/home/koha# cd koha-3.12.04
Now check which Perl dependency is missing
root@localhost:/home/koha/koha-3.12.04#./ -m –u
You will get a list which will show the number of missing module along with module name, version installed and required and whether the module is required or not. If you found ‘Yes’ under ‘Module is required’ column, than install it through CPAN, otherwise ignore those if you do not have enough time. But it is advisable to install all which are missing. During cpan configuration after giving the following command, make it automatically.
root@localhost:/home/koha/koha-3.12.04# cpan

cpan1> install MooseX::Storage
cpan2> install Data::Paginator
cpan3> install Test::WWW::Mechanize
cpan4> quit
Above modules are for example. Now you will have to create Koha database . Can you remember your MySQL root password? Yes, 123. Now run the following command.
root@localhost:# mysql -u root -p
Enter mysql root password:***
root@localhost:# create database koha;
Perl programs such as Koha or the various Perl modules it uses can be installed using a series of commands:
perl Makefile.PL: This command checks for prerequisites and creates a configuration file needed by make make: This compiles the software and creates executables
make test: It runs test cases to ensure proper installation, flags errors, and warnings in case of problems make Install: This installs the executable files into proper directories in the server. Now first execute the following command
root@localhost:/home/koha/koha-3.12.04# perl Makefile.PL
After executing the command you have to go through a configuration by answering few questions. Press enter for default values other than the following Statements:

Please specify the user that owns the database to be used by Koha [katikoan] root
Please specify password of the user that owns the database to be used by koha [katikoan] 123
Execute the following commands next
root@localhost:/home/koha/koha-3.12.04# make
root@localhost:/home/koha/koha-3.12.04# make test
root@localhost:/home/koha/koha-3.12.04# make install
Koha’s files have now been installed. In order to use Koha’s command-line batch jobs, you should set the following environment variables:
root@localhost:/home/koha# export KOHA_CONF=/etc/koha/koha-conf.xml
root@localhost:/home/koha# export PERL5LIB=/usr/share/koha/lib
Now make Apache charset Unicode compliant.
root@localhost:/home/koha# nano /etc/apache2/conf.d/charset
#AddDefaultCharset UTF-8
AddCharset UTF-8 .utf8
AddDefaultCharset UTF-8
Now we create a symbolic link in Apache2 from koha. A symbolic link is just a pointer to the actual Koha file.

root@localhost:/home/koha# ln -s /etc/koha/koha-httpd.conf /etc/apache2/sites- available/koha
Koha uses Apache2’s Rewrite module to manipulate URLs. To allow this we need to enable the module using the a2enmod command
root@localhost:/home/koha# a2enmod rewrite
Enabling Koha’s virtual hosts we need to run a2ensite command
root@localhost:/home/koha# a2ensite koha
Finally we restart Apache2 to load the new configuration changes
root@localhost:/home/koha# /etc/ini.d/apache2 restart
Koha’s Zebra daemon script can be set up as a service and configured in the system start-up profile. This way we ensure that zebrasrv starts automatically when the machine reboots. To set up the script as a service we create a symbolic link to it from the /etc/init.d/ folder
root@localhost:/home/koha# ln -s /usr/share/koha/bin/
To setup this service in the start-up profile, we use the update-rc.d command
root@localhost:/home/koha# update-rc.d koha-zebra-daemon defaults
Now start koha web installation by pointing the admin page
http://localhost:8080 or or

You can check what your IP Address is by typing ifconfig in the command line. To use koha from your LAN, do the following
root@localhost:/home/koha# nano /etc/koha/koha-httpd.conf
#OPAC Setup
Example Before:
Example After:
#Intranet Setup / Koha Admin Setup
Example Before:
Example After:
Finally we restart Apache2 to load the new configuration changes
root@localhost:/home/koha# /etc/ini.d/apache2 restart
Next follow the rest of the part of Koha installation manual provided in the training programme.

Set proxy in PHP pear

Leave a comment

Sometimes system default proxy settings not working for php pear.

pear config-set http_proxy

Usefull PostgreSql commands

Leave a comment

 To show list of databases
postgresql: \l
postgresql: SELECT datname FROM pg_database;

To connect/use a particular database

mysql: use database_name;

Postgresql: \c database_name


To show list of tables in your database
postgresql: \d
postgresql: SELECT table_name FROM information_schema.tables WHERE table_schema = ‘public’;


To show list of columns in a particular table / schema use :
postgresql: \d table_name
postgresql: SELECT column_name FROM information_schema.columns WHERE table_name =’table‘;


Dspace-1.8.2 Installation on Centos-6.3


Add DSpace User in your System

root@localhost nurahammad~]#useradd dspace

Install prerequisite software

root@localhost nurahammad~]# yum install java-1.6.0-openjdk -y

root@localhost nurahammad~]# yum install tomcat6

root@localhost nurahammad~]# yum install postgresql postgresql-server postgresql-contrib

root@localhost nurahammad~]# service postgresql initdb

root@localhost nurahammad~]# yum install ant ant-nodeps

[root@localhost nurahammad]# /etc/init.d/postgresql start

Configure Postgres to listen localhost

[root@localhost nurahammad]# nano /var/lib/pgsql/data/postgresql.conf

listen_addresses = ‘localhost’ # what IP address(es) to listen on;

[root@localhost nurahammad]# nano /var/lib/pgsql/data/pg_hba.conf


# IPv4 local connections:

host dspace dspace trust

# “local” is for Unix domain socket connections only

local all all trust

Manually Download maven and Install. Maven is not in Default Centos-6.3 source

[root@localhost nurahammad~]# wget

[root@localhost nurahammad]# tar -zxvf apache-maven-3.0.4-bin.tar.gz

[root@localhost nurahammad]# mv apache-maven-3.0.4 /usr/local

[root@localhost nurahammad]# cd /usr/local/

[root@localhost local]# ln -s apache-maven-3.0.4 maven

[root@localhost local]# nano /etc/profile

export M2_HOME=/usr/local/maven

export PATH=${M2_HOME}/bin:${PATH}

Create Database user and Database for DSpace

[root@localhost nurahammad]# su postgres

bash-4.1$ createuser -U postgres -d -A -P dspace

bash-4.1$ exit

[root@localhost nurahammad]# su dspace

[dspace@localhost nurahammad]$ createdb -U dspace -E UNICODE dspace

Download DSpace and configure

[root@localhost nurahammad]# wget

[root@localhost nurahammad]# tar -zxvf dspace-1.8.2-src-release.tar.gz

[root@localhost nurahammad]# cd dspace-1.8.2-src-release/dspace

[root@localhost dspace]#nano config/dspace.cfg

Build DSpace

[root@localhost dspace]# mvn package

Install DSpace

[root@localhost dspace]# cd target/dspace-1.8.2-build/

[root@localhost dspace-1.8.2-build]# ant fresh_install


[echo] ====================================================================

[echo] The DSpace code has been installed, and the database initialized.


[echo] To complete installation, you should do the following:


[echo] * Setup your Web servlet container (e.g. Tomcat) to look for your

[echo] DSpace web applications in: /dspace/webapps/


[echo] OR, copy any web applications from /dspace/webapps/ to

[echo] the appropriate place for your servlet container.

[echo] (e.g. ‘$CATALINA_HOME/webapps’ for Tomcat)


[echo] * Make an initial administrator account (an e-person) in DSpace:


[echo] /dspace/bin/dspace create-administrator


[echo] * Start up your servlet container (Tomcat etc.)


[echo] You should then be able to access your DSpace’s ‘home page’:


[echo] http://localhost:8080/xmlui


[echo] You should also be able to access the administrator UI:


[echo] http://localhost:8080/xmlui/dspace-admin

[echo] ====================================================================



Total time: 1 minute 46 seconds

[root@localhost dspace-1.8.2-build]# nano /etc/tomcat6/server.xml

  Change this section
<Host name=”localhost”  appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>

As the following
<Host name=”localhost”  appBase=”/dspace/webapps”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>

Then create DSpace Administrator account

[root@localhost dspace-1.8.2-build]# /dspace/bin/dspace create-administrator

Creating an initial administrator account

E-mail address:

First name: Nur

Last name: Ahammad

WARNING: Password will appear on-screen.


Again to confirm: Password

Is the above data correct? (y or n): y

Administrator account created

Set Permission and ownership for DSpace

[root@localhost nurahammad]#chmod -R 755 /home/dspace/

[root@localhost nurahammad]#chown -R dspace:dspace /home/dspace/

Finally you can get your Dsapce by pointing the address in your web browser:




Older Entries

%d bloggers like this: