<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-11179843</id><updated>2008-08-13T05:34:46.680-07:00</updated><title type='text'>DSpace installation on Fedora Core and CentOS (RHEL)</title><link rel='alternate' type='text/html' href='http://www.linuxtraining.org.uk/blogger.html'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.linuxtraining.org.uk/atom.xml'/><author><name>clive</name><uri>http://www.blogger.com/profile/04834932543873462481</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11179843.post-110975391994919155</id><published>2005-03-02T00:56:00.000-08:00</published><updated>2008-08-13T05:34:46.731-07:00</updated><title type='text'>DSpace installation procedure on Fedora Core 3 and CentOS 4 (RHEL 4)</title><content type='html'>&lt;p&gt;Written by Clive Gould. (To contact Clive please use this &lt;a href="http://ce.bromley.ac.uk/linux/booking.htm"&gt;messages&lt;/a&gt; form. Our Linux training website can be reached by clicking &lt;a href="http://ce.bromley.ac.uk/linux"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a name="menu"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Menu&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1) &lt;a href="#one"&gt;DSpace 1.2.1 installation procedure&lt;/a&gt;&lt;br /&gt;2) &lt;a href="#two"&gt;Handle Server installation procedure&lt;/a&gt;&lt;br /&gt;3) &lt;a href="#three"&gt;phpPgAdmin installation and configuration&lt;/a&gt;&lt;br /&gt;4) &lt;a href="#four"&gt;Getting Apache to talk to Tomcat using mod_jk2&lt;/a&gt;&lt;br /&gt;5) &lt;a href="#five"&gt;Starting DSpace Automatically&lt;/a&gt;&lt;br /&gt;6) &lt;a href="#six"&gt;Managing DSpace, Tomcat and Handle Server logs&lt;/a&gt;&lt;br /&gt;7) &lt;a href="#seven"&gt;Making DSpace available via Apache and HTTPS&lt;/a&gt;&lt;br /&gt;8) &lt;a href="#eight"&gt;Changing the contact telephone number&lt;/a&gt;&lt;br /&gt;9) &lt;a href="#nine"&gt;Upgrading to Tomcat 5.5&lt;/a&gt;&lt;br /&gt;10) &lt;a href="#ten"&gt;Upgrading to DSpace 1.2.2&lt;/a&gt;&lt;br /&gt;11) &lt;a href="#eleven"&gt;Customising the Web User Interface&lt;/a&gt;&lt;br /&gt;12) &lt;a href="#twelve"&gt;Virus scanning and establishing a hot backup server&lt;/a&gt;&lt;br /&gt;13) &lt;a href="#thirteen"&gt;Upgrading to DSpace 1.3.1&lt;/a&gt;&lt;br /&gt;14) &lt;a href="#fourteen"&gt;Getting statistics working&lt;/a&gt;&lt;br /&gt;15) &lt;a href="#fifteen"&gt;Modified handle server configuration&lt;/a&gt;&lt;br /&gt;16) &lt;a href="#sixteen"&gt;Upgrading to DSpace 1.3.2&lt;/a&gt;&lt;br /&gt;17) &lt;a href="#seventeen"&gt;Providing OAI access to DSpace&lt;/a&gt;&lt;br /&gt;18) &lt;a href="#eighteen"&gt;Using a commercial wildcard SSL certificate&lt;/a&gt;&lt;br /&gt;19) &lt;a href="http://www.linuxtraining.org.uk/blogger1.html"&gt;Installing LAMS on the same server as DSpace&lt;/a&gt;&lt;br /&gt;20) &lt;a href="#twenty"&gt;Upgrading to DSpace 1.4 (failed)&lt;/a&gt;&lt;br /&gt;21) &lt;a href="#twentyone"&gt;Re-installing DSpace 1.4 (success)&lt;/a&gt;&lt;br /&gt;22) &lt;a href="#twentytwo"&gt;Upgrading the handle server to version 6.2&lt;/a&gt;&lt;br /&gt;23) &lt;a href="#twentythree"&gt;Upgrading to DSpace 1.4.1&lt;/a&gt;&lt;br /&gt;24) &lt;a href="#twentyfour"&gt;Upgrading to DSpace 1.4.2&lt;/a&gt;&lt;br /&gt;25) &lt;a href="#twentyfive"&gt;Enabling RADIUS Authentication in DSpace 1.4.2&lt;/a&gt;&lt;br /&gt;26) &lt;a href="#twentysix"&gt;Using a commercial host specific SSL certificate&lt;/a&gt;&lt;br /&gt;27) &lt;a href="#twentyseven"&gt;Upgrading to DSpace 1.5.0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="one"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;1) DSpace 1.2.1 installation procedure&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This blog covers DSpace installation on two separate platforms:&lt;br /&gt;&lt;br /&gt;a) 1.2.1 (subsequently upgraded to 1.2.2) on Fedora Core 3, which I first set up in March 2005.&lt;br /&gt;&lt;br /&gt;b) 1.2.2 (subsequently upgraded to 1.3.2) on CentOS 4, which I first set up in July 2005.&lt;br /&gt;&lt;br /&gt;The machine I used for the Fedora Core 3 installation was an existing, fully Internet accessible server providing services to staff and students 24x7. It was already running apache, vsftpd, sshd, named, dovecot and mysqld.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;The machine I used for the CentOS 4 installation was a new high specification server and I installed jdk-1_5_0_04, apache-ant-1.6.5 and jakarta-tomcat-5.5.9 on it following the instructions given for DSpace 1.2.1 and Fedora Core 3 in this blog.&lt;br /&gt;&lt;br /&gt;I have added comments in blue where the CentOS installation differed from the earlier Fedora Core 3 installation of DSpace.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Beginning the Fedora Core 3 installation:&lt;br /&gt;&lt;br /&gt;The JDK (1.5.0) had already been downloaded from Sun and installed in /usr/java/jdk1.5.0 - I subsequently renamed the directory jdk1.5.0 to jdk in order to simplify paths in the event of a future upgrade of the JDK.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next step was to download Ant (1.6.2) and install it. I installed it as root in /usr/local as follows:&lt;br /&gt;&lt;br /&gt;cd /usr/local&lt;br /&gt;lynx http://ant.apache.org/bindownload.cgi&lt;br /&gt;tar -xzvf apache*.tar.gz&lt;br /&gt;mv apache-ant-1.6.2 ant&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As Apache was already running and in use I initially decided to install Tomcat as a totally separate and independent installation.&lt;br /&gt;&lt;br /&gt;The next step was to create a user dspace with home directory /home/dspace. As user dspace I then proceded to download and install Tomcat (4.1.31) in /home/dspace as follows:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;lynx http://jakarta.apache.org/site/downloads/downloads_tomcat-4.cgi&lt;br /&gt;tar -xzvf jakarta-tomcat-4.1.31.tar.gz&lt;br /&gt;mv jakarta-tomcat-4.1.31 tomcat&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following paths were set up in /etc/profile:&lt;br /&gt;&lt;br /&gt;export JAVA_HOME=/usr/java/jdk&lt;br /&gt;export CATALINA_HOME=/home/dspace/tomcat&lt;br /&gt;export ANT_HOME=/usr/local/ant&lt;br /&gt;export PATH=${PATH}:${ANT_HOME}/bin&lt;br /&gt;export PATH=${PATH}:${JAVA_HOME}/jre/bin&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As user dspace I started Tomcat from the /home/dspace/tomcat/bin directory using the following command:&lt;br /&gt;&lt;br /&gt;[dspace@cd bin]$ ./startup.sh&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JAVA_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Running nmap on the IP address of the machine confirmed that Tomcat was running and listening for connections on port 8080:&lt;br /&gt;&lt;em&gt;8080/tcp open http-proxy&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Visting the URL http://cd.bromley.ac.uk:8080 allowed me to try out the jsp examples available from the Tomcat homepage :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As user dspace I then downloaded DSpace and installed it in the home directory of the dspace user /home/dspace as follows:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;lynx http://sourceforge.net/projects/dspace/&lt;br /&gt;gunzip -c dspace-1.2.1-source.tar.gz tar -xf -&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next task as user dspace was to download the pg74.215.jdbc3.jar file which was specific to the version of the JDK (1.5.0) and the version of PostgreSQL (7.4.7-3) I was using:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.2.1-source/lib&lt;br /&gt;lynx http://jdbc.postgresql.org/download.html#jars&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next task was getting PostgreSQL working. PostgreSQL was already installed with Fedora Core 3. The first step was to become user postgres from a root login by using the command:&lt;br /&gt;&lt;br /&gt;su - postgres&lt;br /&gt;&lt;br /&gt;The postgres user has administrative control over PostgreSQL and commands typed by this user can be used to administer the database directly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first step was to create a new Postgres database installation using the following command:&lt;br /&gt;&lt;br /&gt;initdb -D /var/lib/pgsql/data&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next step was to edit the file /var/lib/pgsql/data/postgresql.conf and change the tcpip parameter to true as shown below:&lt;br /&gt;&lt;br /&gt;tcpip_socket = true&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next step was to edit the file /var/lib/pgsql/data/pg_hba.conf and comment out the following line at the end of the file:&lt;br /&gt;&lt;br /&gt;# local all all ident sameuser&lt;br /&gt;&lt;br /&gt;I then appended the following lines to the end of the file:&lt;br /&gt;&lt;br /&gt;host dspace dspace 127.0.0.1 255.255.255.255 md5&lt;br /&gt;local template1 postgres trust&lt;br /&gt;local template1 dspace trust&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I then had to become root and start PostgreSQL as follows:&lt;br /&gt;&lt;br /&gt;[root@cd data]# /etc/init.d/postgresql start&lt;br /&gt;&lt;em&gt;Starting postgresql service: [ OK ]&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;It was then necessary to su - postgres and create the user dspace and the database dspace as follows:&lt;br /&gt;&lt;br /&gt;-bash-3.00$ createuser -U postgres -d -A -P dspace&lt;br /&gt;&lt;em&gt;Enter password for new user:&lt;br /&gt;Enter it again:&lt;br /&gt;CREATE USER&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;-bash-3.00$ createdb -U dspace -E UNICODE dspace&lt;br /&gt;&lt;em&gt;CREATE DATABASE&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;As user dspace it was then necessary to edit the file /home/dspace/dspace-1.2.1-source/config/dspace.cfg and add the appropriate entries, paying particular attention to changing ALL the paths from /dspace/ to /home/dspace/&lt;br /&gt;&lt;br /&gt;The following website proved most helpful with this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.thesesalive.ac.uk/archive/DSpaceInstall.pdf"&gt;http://www.thesesalive.ac.uk/archive/DSpaceInstall.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Before running ant to build dspace it was necessary to remove a number of rpm's that had been installed as part of the default Fedora Core 3 upgrade of everything:&lt;br /&gt;&lt;br /&gt;[root@cd ~]# rpm -e --nodeps libgcj gcc-java libgcj-devel gettext ant tomcat&lt;br /&gt;&lt;br /&gt;(If this is not done you will get cryptic error messages such as:&lt;br /&gt;&lt;em&gt;BUILD FAILED&lt;br /&gt;file:/home/dspace/dspace-1.2.1-source/build.xml:109: Error running&lt;br /&gt;gcj34 compiler&lt;/em&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;Note: With CentOS 4 it was not necessary to remove any of these rpms.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As user dspace the application was now successfully built using the commands:&lt;br /&gt;[dspace@cd dspace-1.2.1-source]$ ant&lt;br /&gt;[dspace@cd dspace-1.2.1-source]$ ant fresh_install&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I successfully copied over the .war files to tomcat webapps directory as shown below and DSpace ran.&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.2.1-source/build/&lt;br /&gt;cp *.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I ran the following script to set up the administrator account:&lt;br /&gt;/home/dspace/bin/create-administrator&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;Note: With CentOS 4 this produced a screen full of errors. The solution turned out to be correcting the path to Java. The last line of /home/dspace/bin/dsrun needed to be changed to:&lt;br /&gt;&lt;br /&gt;# Now invoke Java&lt;br /&gt;/usr/java/jdk/bin/java -mx2024m -classpath $FULLPATH "$@"&lt;br /&gt;&lt;br /&gt;This assumes that the jdk is installed in a directory called /usr/java/jdk &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For administrative purposes I tried setting up the posgres crontab to vacuum the database, but this did not work properly with my database access permissions.&lt;br /&gt;&lt;br /&gt;As a result the final crontab entry I set for user dsapce was as shown below:&lt;br /&gt;&lt;br /&gt;su - dspace&lt;br /&gt;[dspace@cd ~]$ crontab -l&lt;br /&gt;0 1 * * * /home/dspace/bin/sub-daily&lt;br /&gt;# Run the media filter at 02:00 every day&lt;br /&gt;0 2 * * * /home/dspace/bin/filter-media&lt;br /&gt;# Clean up the database nightly at 2.40am&lt;br /&gt;40 2 * * * cd /home/dspace/vacuumdb &amp;&amp;amp; ( PGPASSWORD=`cat .pgpass` /usr/bin/vacuumdb --analyze -v -h 127.0.0.1 -U dspace dspace )&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(When a user searches DSpace, both the metadata and indexed text are searched for matches, and the results are displayed together. Running the filter-media script regularly facilitates full-text searching for many text objects such as PDF, Word, HTML and text files.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order to get database vaccuming to work properly, in addition to the final line in the crontab, I also created a directory /home/dspace/vacuumdb containing the file .pgpass (owned by user dspace and with 600 permissions), which in turn contained the database access password for the dspace database.&lt;br /&gt;&lt;br /&gt;I noticed that the text indexing wasn't working properly, unless I ran the script manually. Later on I came across several error messages in user dspace's email as follows:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Subject: Cron dspace@cd /home/dspace/bin/filter-media&lt;br /&gt;Applying Media Filters&lt;br /&gt;/home/dspace/bin/dsrun: line 70: java: command not found&lt;br /&gt;&lt;br /&gt;Subject: Cron dspace@cd /home/dspace/bin/sub-daily&lt;br /&gt;/home/dspace/bin/dsrun: line 70: java: command not found&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;It appeared that Cron could not find the path to java, so as user dspace, I added the following environment definition to the top of both the filter-media and sub-daily scripts:&lt;br /&gt;&lt;br /&gt;# Set Environment Variables (Added by Clive Gould on 1st April 2005)&lt;br /&gt;&lt;br /&gt;JAVA_HOME=/usr/java/jdk; export JAVA_HOME&lt;br /&gt;CATALINA_HOME=/home/dspace/tomcat; export CATALINA_HOME&lt;br /&gt;ANT_HOME=/usr/local/ant; export ANT_HOME&lt;br /&gt;PATH=${PATH}:${ANT_HOME}/bin&lt;br /&gt;PATH=${PATH}:${JAVA_HOME}/jre/bin; export PATH&lt;br /&gt;&lt;br /&gt;Cron subsequently ran the filter-media and sub-daily scripts correctly.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;Note: With CentOS 4 this environment variable definition was not necessary as the earlier alteration to the path for java in dsrun solved this problem.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I then came across an error in my root emails containing the following text:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;# Send out subscription e-mails at 01:00 every dayException:&lt;br /&gt;java.io.IOException: /dspace/search not a directory&lt;br /&gt;at org.apache.lucene.sto/home/dspace/config/dspace.cfg&lt;br /&gt;re.FSDirectory.FSDirectory.java:154)&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;It turned out that there were still some paths in dspace.cfg that required amendment. I edited /home/dspace/config/dspace.cfg and changed a few more paths from /dspace/ to /home/dspace&lt;br /&gt;&lt;br /&gt;I then ran the /home/dspace/bin/install-configs script to install my changes into the running dspace implementation.&lt;br /&gt;&lt;br /&gt;I was then able to run the /home/dspace/bin/index-all script successfully&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Had an error when creating my first collection when logged on as administrator to our new dspace website. The error was logged in /home/dspace/log/dspace.log as follows:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;java.lang.IllegalArgumentException: Not a directory: /home/dspace/upload&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;As user dspace I created the directory /home/dspace/upload and from the browser deleted the community/collection I was trying to create.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;With CentOS 4 and DSpace 1.2.2 the upload directory was already present.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This time I was able to successfully create a community and a collection. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="two"&gt;&lt;/a&gt;&lt;strong&gt;2) Handle Server installation procedure&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The procedure outlined below is the one I should have followed in order to configure the DSpace handle server on Fedora Core 3. &lt;span style="color:#ec0076;"&gt;(The process I actually followed was somewhat longer due to mistakes I made along the way!")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This part of the blog covers the handle server configuration with DSpace 1.2.x. If you are configuring a handle server with DSpace 1.3.1 please read the last entry in this blog as well.&lt;br /&gt;&lt;br /&gt;The following websites really helped me with handle configuration:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sunsite.utk.edu/diglib/dspace/"&gt;http://sunsite.utk.edu/diglib/dspace/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.thesesalive.ac.uk/archive/ERAInstallation-1.9.html#_Toc82495072"&gt;http://www.thesesalive.ac.uk/archive/ERAInstallation-1.9.html#_Toc82495072&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Configuration process:&lt;br /&gt;&lt;br /&gt;Log on as user dspace, move to the /home/dspace/bin directory and run the command shown below. Note that default responses provided by the command are shown in square brackets and where I have made replies other than the default they are shown in bold.&lt;br /&gt;&lt;br /&gt;The replies shown below are those that eventually proved the correct ones for my server, which is behind a NAT firewall blocking incoming UDP packets. In this case the IP address supplied was the &lt;strong&gt;internal&lt;/strong&gt; IP address of the server on the Intranet side of the NAT box.&lt;br /&gt;&lt;br /&gt;[dspace@cd bin]$ dsrun net.handle.server.SimpleSetup /home/dspace/handle-server&lt;br /&gt;&lt;em&gt;We will now configure your new Handle or Caching server.&lt;br /&gt;Please answer the following questions.&lt;br /&gt;Default answers, when available, will be shown in square brackets.&lt;br /&gt;&lt;br /&gt;Will this be a caching server or a regular handle server?&lt;br /&gt;(If unsure, choose regular handle server)&lt;br /&gt;1 - Handle server&lt;br /&gt;2 - Caching handle server&lt;br /&gt;Please choose 1 or 2 and press enter:&lt;/em&gt;&lt;strong&gt; 1&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Will this be a "primary" server (ie, not a mirror of another server)? (y/n) [y]&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Through what IP address will this server be accessible? (domain names are ok)&lt;/em&gt; &lt;strong&gt;172.31.0.3&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;What port number will this server be listening to? [2641]&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;What port number will the HTTP interface be listening to? [8000]&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Would you like to log all accesses to this server? (y/n) [n]&lt;/em&gt;&lt;strong&gt; y &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Each handle site has a version/serial number assigned to it. This is so that clients can tell if a particular site configuration has changed since the last time it accessed a server in the site. Every time you modify a site (by changing an IP address, port, or adding a server, etc), you should increment the version/serial number for that site&lt;br /&gt;Enter the version/serial number of this site: [1]&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Please enter a short description of this server/site:&lt;/em&gt; &lt;strong&gt;Bromley College Dspace Repository&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The Handle System can communicate via UDP and/or TCP sockets.&lt;br /&gt;Since UDP messages are blocked by many network firewalls, you may&lt;br /&gt;want to disable UDP services if you are behind such a firewall.&lt;br /&gt;Would you like to disable UDP services? (y/n) [n]&lt;/em&gt;&lt;strong&gt; y&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Server keys already exist, do you want to create new ones? (y/n) [n]&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Administrator keys already exist, do you want to create new ones? (y/n)[n]&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Generating site info record...&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------&lt;br /&gt;Congratulations, the configuration has been generated.&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The sitebndl.zip file contains the answers to the above questions and needs to be submitted to CNRI as the following excerpt from the DSpace install documentation (updated in August 2005) explains:&lt;br /&gt;&lt;br /&gt;"Go to to &lt;a href="http://hdl.handle.net/4263537/5014"&gt;http://hdl.handle.net/4263537/5014&lt;/a&gt; to upload the generated sitebndl.zip file. The upload page will ask you for your contact information. An administrator will then create the naming authority/prefix on the root service (known as the Global Handle Registry), and notify you when this has been completed. You will not be able to continue the handle server installation until you receive further information concerning your naming authority."&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(As our machine is behind a NAT firewall, I was additionally asked by CNRI to email them the &lt;strong&gt;external&lt;/strong&gt; IP address of our server on the Internet side of the firewall. This was required to enable the CNRI handle server to talk to our local handle server. I received a reply within 24 hours containing our handle prefix, which was 2045)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Edit /home/dspace/handle-servers/config.dct and change all three naming authority handles. &lt;span style="color:#ec0076;"&gt;(Note that the IP address within this file was the &lt;strong&gt;internal&lt;/strong&gt; IP address of our server.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A copy of the final version of this file, which actually worked for me is shown below:&lt;br /&gt;&lt;br /&gt;[dspace@cd handle-server]$ cat config.dct&lt;br /&gt;&lt;br /&gt;&lt;em&gt;{&lt;br /&gt;"hdl_http_config" = {&lt;br /&gt;"bind_address" = "172.31.0.3"&lt;br /&gt;"num_threads" = "15"&lt;br /&gt;"bind_port" = "8000"&lt;br /&gt;"backlog" = "5"&lt;br /&gt;"log_accesses" = "yes"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;"hdl_udp_config" = {&lt;br /&gt;"bind_address" = "172.31.0.3"&lt;br /&gt;"num_threads" = "15"&lt;br /&gt;"bind_port" = "2641"&lt;br /&gt;"log_accesses" = "yes"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;"hdl_tcp_config" = {&lt;br /&gt;"bind_address" = "172.31.0.3"&lt;br /&gt;"num_threads" = "15"&lt;br /&gt;"bind_port" = "2641"&lt;br /&gt;"backlog" = "5"&lt;br /&gt;"log_accesses" = "yes"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;"server_type" = "server"&lt;br /&gt;"no_udp_resolution" = "n"&lt;br /&gt;"interfaces" = (&lt;br /&gt;"hdl_udp"&lt;br /&gt;"hdl_tcp"&lt;br /&gt;"hdl_http"&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;"server_config" = {&lt;br /&gt;"server_admins" = (&lt;br /&gt;"300:0.NA/2045"&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;"replication_admins" = (&lt;br /&gt;"300:0.NA/2045"&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;"this_server_id" = "1"&lt;br /&gt;"max_session_time" = "86400000"&lt;br /&gt;"max_auth_time" = "60000"&lt;br /&gt;"backup_admins" = (&lt;br /&gt;"300:0.NA/2045"&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;"case_sensitive" = "no"&lt;br /&gt;"storage_type" = "CUSTOM"&lt;br /&gt;"storage_class" = "org.dspace.handle.HandlePlugin"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;With DSpace 1.2.2 and CentOS 4 the default config.dct file did not work properly and the handle server would not correctly resolve. I had to replace the default config.dct with a "cut and paste" of the above file with the IP address updated to reflect the new server. On restarting the handle server all was well :-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Edit /home/dspace/config/dspace.cfg as follows to tell DSpace to allocate handles beginning with your prefix. A excerpt from our file is shown below:&lt;br /&gt;&lt;br /&gt;##### Handle settings ######&lt;br /&gt;&lt;br /&gt;# CNRI Handle prefix&lt;br /&gt;handle.prefix = 2045&lt;br /&gt;&lt;br /&gt;# Directory for installing Handle server files&lt;br /&gt;handle.dir = /home/dspace/handle-server&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Before the new handle prefix settings will take effect in DSpace it is necessary to restart Tomcat using the scripts in the /home/dspace/tomcat/bin directory:&lt;br /&gt;&lt;br /&gt;[dspace@cd bin]$ ./shutdown.sh&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JAVA_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;[dspace@cd bin]$ ./startup.sh&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JAVA_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At this point upload a file into your DSpace repository to test the handle allocation and check that DSpace is now allocating the correct handle prefix.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Start the handle server from the /home/dspace/bin directory by running the command:&lt;br /&gt;&lt;br /&gt;[dspace@cd bin]$ ./start-handle-server&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If necessary, the local handle server can be stopped by killing the appropriate processes. This is illustrated in the excerpt shown below:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ ps aux&lt;br /&gt;&lt;em&gt;dspace 29190 0.0 0.0 4332 1004 ? S Mar13 0:00 /bin/sh ./dsrun -Dlog4j.configuration=log4j-handle-plugin.properties net.handle.server.Main /home/dspace/handle-se.......&lt;br /&gt;dspace 29196 0.0 2.3 497476 23828 ? Sl Mar13 0:01 java -Xmx256m -classpath :/home/dspace/lib/activation.jar:/home/dspace/lib/commons-cli.jar:/home/dspace/lib/common......&lt;/em&gt;&lt;br /&gt;[dspace@cd ~]$ kill 29190&lt;br /&gt;[dspace@cd ~]$ kill 29196&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Useful tests for handle resolution include:&lt;br /&gt;&lt;br /&gt;1) Using your browser to visit port 8000 on your handle server's IP address, which produces the homepage for your handle server. Entering a handle prefix (e.g. 0.NA/2045) will prove your handle server is communicating properly.&lt;br /&gt;&lt;br /&gt;2) Visiting http://hdl.handle.net/ and entering one of your DSpace handles (e.g. 2045/39) should bring up the chosen resource page in DSpace or at least provide useful debugging information.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Handle records log information in the following files:&lt;br /&gt;&lt;br /&gt;/home/dspace/handle-server/access.log&lt;br /&gt;/home/dspace/handle-server/error.log&lt;br /&gt;/home/dspace/log/handle-server.log&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(I had some problems because of the mistakes I'd made when providing my initial responses to the dsrun net.handle.server.SimpleSetup /home/dspace/handle-server command. Initially http://hdl.handle.net could not find my handle server as I'd only supplied the internal IP address and not the external one and chosen UDP instead of TCP for communications. The error message was "Error - Cannot Connect to Server The handle you requested cannot be found." Jane Euler of CNRI was really helpful and corrected this for me. I then found that my local handle server was not finding handles created in DSpace. The error message was "Nothing to display No URL value(s) found for the requested handle." This turned out to be due to my having run the above dsrun command line a second time, which of course regenerated config.dct and sitebndl.zip. Subsequently I had missed out on including the storage type and class lines at the end of config.dct the second time around!)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="three"&gt;&lt;/a&gt;&lt;strong&gt;3) phpPgAdmin installation and configuration &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I noticed that the new handles DSpace created once I had modified the handle prefix were correct, but the original handles created by Dspace before I got the handle server up &amp; running and modified the prefix still remained at the original default value of 123456789.&lt;br /&gt;&lt;br /&gt;As a result of a newsgroup posting I decided to download and install phpPgAdmin. The idea was to use the web based administration tool for PostgreSQL to edit the dspace database directly and change the values of the default handle prefixes.&lt;br /&gt;&lt;br /&gt;I became the root user and used the following commands:&lt;br /&gt;&lt;br /&gt;cd /var/www/html&lt;br /&gt;lynx http://phppgadmin.sourceforge.net/?page=download&lt;br /&gt;tar -xzvf phpPgAdmin-3.5.2.tar.gz&lt;br /&gt;rm *.tar.gz&lt;br /&gt;cd phpPgAdmin&lt;br /&gt;cd conf&lt;br /&gt;cp config.inc.php-dist config.inc.php&lt;br /&gt;pico config.inc.php&lt;br /&gt;&lt;br /&gt;I modified config.inc.php as shown below in bold:&lt;br /&gt;&lt;br /&gt;[root@cd conf]# cat config.inc.php&lt;br /&gt;&lt;?php         /**         * Central phpPgAdmin configuration.  As a user you may modify the         * settings here for your particular configuration.         *         * $Id: config.inc.php-dist,v 1.35.2.2 2005/02/11 11:23:39 chriskl Exp $         */         // An example server.  Create as many of these as you wish,        // indexed from zero upwards.         // Display name for the server on the login screen        $conf['servers'][0]['desc'] = 'PostgreSQL';         // Hostname or IP address for server.  Use '' for UNIX domain socket.        $conf['servers'][0]['host'] = &lt;strong&gt;'127.0.0.1'&lt;/strong&gt;;&lt;br /&gt;&lt;br /&gt;// Database port on server (5432 is the PostgreSQL default)&lt;br /&gt;$conf['servers'][0]['port'] = 5432;&lt;br /&gt;&lt;br /&gt;// Change the default database only if you cannot connect to template1&lt;br /&gt;$conf['servers'][0]['defaultdb'] = &lt;strong&gt;'dspace'&lt;/strong&gt;;&lt;br /&gt;&lt;br /&gt;// Specify the path to the database dump utilities for this server.&lt;br /&gt;// You can set these to '' if no dumper is available.&lt;br /&gt;$conf['servers'][0]['pg_dump_path'] = '';&lt;br /&gt;$conf['servers'][0]['pg_dumpall_path'] = '';&lt;br /&gt;&lt;br /&gt;// Example for a second server (PostgreSQL for Windows)&lt;br /&gt;//$conf['servers'][1]['desc'] = 'Test Server';&lt;br /&gt;//$conf['servers'][1]['host'] = '127.0.0.1';&lt;br /&gt;//$conf['servers'][1]['port'] = 5432;&lt;br /&gt;//$conf['servers'][1]['defaultdb'] = 'template1';&lt;br /&gt;//$conf['servers'][1]['pg_dump_path'] = 'C:\\Program Files\\PostgreSQL\8.0\\bin\\pg_dump.exe';&lt;br /&gt;//$conf['servers'][1]['pg_dumpall_path'] = 'C:\\Program Files\\PostgreSQ&lt;br /&gt;L\\8.0\\bin\\pg_dumpall.exe';&lt;br /&gt;&lt;br /&gt;// Default language for the login screen if there's no translation&lt;br /&gt;// matching user's browser request. Eg: 'english', 'polish', etc.&lt;br /&gt;$conf['default_lang'] = 'english';&lt;br /&gt;&lt;br /&gt;// If extra login security is true, then logins via phpPgAdmin with no&lt;br /&gt;// password or certain usernames (pgsql, postgres, root, administrator)&lt;br /&gt;// will be denied. Only set this false once you have read the FAQ and&lt;br /&gt;// understand how to change PostgreSQL's pg_hba.conf to enable&lt;br /&gt;// passworded local connections.&lt;br /&gt;$conf['extra_login_security'] = true;&lt;br /&gt;&lt;br /&gt;// Only show owned databases?&lt;br /&gt;// Note: This will simply hide other databases in the list - this does&lt;br /&gt;// not in any way prevent your users from seeing other database by&lt;br /&gt;// other means. (eg. Run 'SELECT * FROM pg_database' in the SQL area.)&lt;br /&gt;$conf['owned_only'] = false;&lt;br /&gt;&lt;br /&gt;// Display comments on objects? Comments are a good way of documenting&lt;br /&gt;// a database, but they do take up space in the interface.&lt;br /&gt;$conf['show_comments'] = true;&lt;br /&gt;&lt;br /&gt;// Display "advanced" objects? Setting this to true will show types,&lt;br /&gt;// operators conversions, languages and casts in phpPgAdmin. These&lt;br /&gt;// objects are rarely administered and can clutter the interface.&lt;br /&gt;$conf['show_advanced'] = false;&lt;br /&gt;&lt;br /&gt;// Display "system" objects?&lt;br /&gt;$conf['show_system'] = false;&lt;br /&gt;&lt;br /&gt;// Display reports feature? For this feature to work, you must&lt;br /&gt;// install the reports database as explained in the INSTALL file.&lt;br /&gt;$conf['show_reports'] = true;&lt;br /&gt;&lt;br /&gt;// Only show owned reports?&lt;br /&gt;// Note: This does not prevent people from accessing other reports by&lt;br /&gt;// other means.&lt;br /&gt;$conf['owned_reports_only'] = false;&lt;br /&gt;&lt;br /&gt;// Minimum length users can set their password to.&lt;br /&gt;$conf['min_password_length'] = 1;&lt;br /&gt;&lt;br /&gt;// Width of the left frame in pixels (object browser)&lt;br /&gt;$conf['left_width'] = 200;&lt;br /&gt;&lt;br /&gt;// Which look &amp; feel theme to use&lt;br /&gt;$conf['theme'] = 'default';&lt;br /&gt;&lt;br /&gt;// Show OIDs when browsing tables?&lt;br /&gt;$conf['show_oids'] = false;&lt;br /&gt;&lt;br /&gt;// Max rows to show on a page when browsing record sets&lt;br /&gt;$conf['max_rows'] = 30;&lt;br /&gt;&lt;br /&gt;// Max chars of each field to display by default in browse mode&lt;br /&gt;$conf['max_chars'] = 50;&lt;br /&gt;&lt;br /&gt;// Send XHTML headers? Unless debugging, it's best to leave this off&lt;br /&gt;$conf['use_xhtml'] = false;&lt;br /&gt;&lt;br /&gt;/*****************************************&lt;br /&gt;* Don't modify anything below this line *&lt;br /&gt;*****************************************/&lt;br /&gt;&lt;br /&gt;$conf['version'] = 13;&lt;br /&gt;&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I can now log on to phpPgAdmin from the browser as user dspace with the password I provided when I created the dspace user in PostgreSQL.&lt;br /&gt;&lt;br /&gt;The handle table can be found in phpPgAdmin at the following location:&lt;br /&gt;&lt;br /&gt;PostgreSQL?: dspace?: public?: handle?:&lt;br /&gt;&lt;br /&gt;It is simply a question of browsing this table and manually changing any pre-existant default handles of 123456789 to the handle prefix allocated by CNRI. DSpace happily picks up the new information and the handles can then be correctly resolved from hdl.handle.net&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="four"&gt;&lt;/a&gt;&lt;strong&gt;4) Getting Apache to talk to Tomcat using mod_jk2&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Tomcat and DSpace are now fully up and running on the cd server on port 8080 but we can only access them externally because our staff and student network proxy servers will only allow access via ports 80 and 443 to "external" servers! To get round this I have set up Apache to talk to Tomcat so that a URL in the format:&lt;br /&gt;&lt;br /&gt;http://cd.bromley.ac.uk/dspace automatically provides access to http://cd.bromley.ac.uk:8080/dspace&lt;br /&gt;&lt;br /&gt;The steps I took are outlined below:&lt;br /&gt;&lt;br /&gt;I found that Fedora Core 3 already had mod_jk2 installed as the excerpt below shows:&lt;br /&gt;&lt;br /&gt;[root@cd ~]# locate mod_jk2&lt;br /&gt;&lt;em&gt;/usr/lib/httpd/modules/mod_jk2.so&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I went to the /etc/httpd/conf.d directory and found that jk2.conf was&lt;br /&gt;already there:&lt;br /&gt;&lt;br /&gt;[root@cd conf.d]# cat jk2.conf&lt;br /&gt;&lt;em&gt;#&lt;br /&gt;# Mod_jk2 allows the Apache Web server to connect to application&lt;br /&gt;# servers using the AJP protocol. This allows web applications to&lt;br /&gt;# be integrated seamlessly into your Apache server's URI space and&lt;br /&gt;# utilize Apache features such as SSL processing.&lt;br /&gt;#&lt;br /&gt;LoadModule jk2_module modules/mod_jk2.so&lt;br /&gt;#&lt;br /&gt;# Mod_jk2 is configured in /etc/httpd/conf/workers2.properties&lt;br /&gt;#&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I then created the /etc/httpd/conf/workers2.properties file. The final version that worked for me is shown below:&lt;br /&gt;&lt;br /&gt;[root@cd conf]# cat workers2.properties&lt;br /&gt;&lt;em&gt;[logger.file:0]&lt;br /&gt;level=WARN&lt;br /&gt;file=${serverRoot}/logs/jk2.log&lt;br /&gt;&lt;br /&gt;[shm]&lt;br /&gt;info=Defines the shared memory&lt;br /&gt;file=${serverRoot}/logs/jk2.shm&lt;br /&gt;size=1000000&lt;br /&gt;debug=0&lt;br /&gt;disabled=0&lt;br /&gt;&lt;br /&gt;[channel.socket:localhost:8009]&lt;br /&gt;info=Defines the local Tomcat server&lt;br /&gt;tomcatId=jvm1&lt;br /&gt;host=localhost&lt;br /&gt;port=8009&lt;br /&gt;&lt;br /&gt;[ajp13:localhost:8009]&lt;br /&gt;info=Defines the default ajp13 worker&lt;br /&gt;channel=channel.socket:localhost:8009&lt;br /&gt;&lt;br /&gt;[status:status]&lt;br /&gt;info=Defines the status worker&lt;br /&gt;&lt;br /&gt;[uri:/jkstatus/*]&lt;br /&gt;group=status:status&lt;br /&gt;&lt;br /&gt;[uri:/scheduler/*]&lt;br /&gt;context=/scheduler&lt;br /&gt;&lt;br /&gt;[uri:/dspace/*]&lt;br /&gt;context=/dspace&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The only thing I had to look up for this was the tomcatId attribute, which has to have the same as the value of the jvmRoute attribute in the file /home/dspace/tomcat/conf/server.xml as shown below:&lt;br /&gt;&lt;br /&gt;[dspace@cd conf]$ grep jvm server.xml&lt;br /&gt;&lt;em&gt;You should set jvmRoute to support load-balancing via JK/JK2 ie : Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="jvm1"&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I added the dspace URI at the bottom of the workers2.properties file so that Apache would automatically refer any requests for /dspace to Tomcat.&lt;br /&gt;&lt;br /&gt;I then stopped Tomcat and added the following line to the default /home/dspace/tomcat/conf/jk2.properties file, which was otherwise just comments:&lt;br /&gt;&lt;br /&gt;channelSocket.port=8009&lt;br /&gt;&lt;br /&gt;I started Tomcat and also restarted Apache and was delighted to find that when I visited http://cd.bromley.ac.uk/dspace it worked :-) What's more it also worked from our staff and student network behind the proxy servers :-))&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;With CentOS 4, mod_jk2 was not installed. I copied mod_jk2.so from Fedora Core 3 and then followed the above procedure, copying the jk2.conf and workers2.properties files as given above. I was delighted to find DSpace was then accessible via Apache.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(I found the following book provided me with invaluable help in configuring Tomcat to work with Apache:&lt;br /&gt;&lt;br /&gt;Title: Tomcat 5&lt;br /&gt;Author: Lapis Moczar&lt;br /&gt;Publisher: SAMS&lt;br /&gt;ISBN: 0-672-32636-1)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next task was to sort out the port address of 8080 which DSpace used when generating a self-referential URL for registration purposes. Once again this worked fine from outside college but would not work from either the staff of student networks because of the proxy problem.&lt;br /&gt;&lt;br /&gt;I edited the /home/dspace/config/dspace.cfg file and changed the following line to remove the :8080 as shown below:&lt;br /&gt;&lt;br /&gt;# DSpace base URL. Include port number etc., but NOT trailing slash&lt;br /&gt;dspace.url = http://cd.bromley.ac.uk/dspace&lt;br /&gt;&lt;br /&gt;I then ran the the following command to install the revised configuration:&lt;br /&gt;&lt;br /&gt;/home/dspace/bin/install-configs&lt;br /&gt;&lt;br /&gt;Next I and stopped and re-started tomcat so that the changes took effect:&lt;br /&gt;&lt;br /&gt;[dspace@cd bin]$ ./shutdown.sh&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JAVA_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;[dspace@cd bin]$ ./startup.sh&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JAVA_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I was now able to successfully register a new user from the staff network as Dspace now provided the correct self referential URL without the 8080 included :-)))&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="five"&gt;&lt;/a&gt;&lt;strong&gt;5) Starting DSpace Automatically&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;With Fedora Core 3 there was already a service script to start and stop PostgreSQL. However, I needed to create two basic scripts in /etc/initd.d to start and stop tomcat and the handle server. This was to make starting DSpace easier after a power cut or kernel upgrade.&lt;br /&gt;&lt;br /&gt;As root I used an editor to create the files /etc/init.d/tomcat and /etc/init.d/handle as shown below:&lt;br /&gt;&lt;br /&gt;[root@cd ~]# cat /etc/init.d/tomcat&lt;em&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# description: Tomcat&lt;br /&gt;#&lt;br /&gt;# Shell script to to start/stop Tomcat&lt;br /&gt;#&lt;br /&gt;# Set Enviroment Variables and Paths&lt;br /&gt;#&lt;br /&gt;JAVA_HOME=/usr/java/jdk; export JAVA_HOME&lt;br /&gt;CATALINA_HOME=/home/dspace/tomcat; export CATALINA_HOME&lt;br /&gt;ANT_HOME=/usr/local/ant; export ANT_HOME&lt;br /&gt;PATH=${PATH}:${ANT_HOME}/bin&lt;br /&gt;PATH=${PATH}:${JAVA_HOME}/jre/bin; export PATH&lt;br /&gt;#&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;#&lt;br /&gt;# Start Tomcat&lt;br /&gt;#&lt;br /&gt;echo&lt;br /&gt;sudo -u dspace /home/dspace/tomcat/bin/startup.sh&lt;br /&gt;;;&lt;br /&gt;&lt;br /&gt;stop)&lt;br /&gt;#&lt;br /&gt;# Stop Tomcat&lt;br /&gt;#&lt;br /&gt;sudo -u dspace /home/dspace/tomcat/bin/shutdown.sh&lt;br /&gt;;;&lt;br /&gt;&lt;br /&gt;*)&lt;br /&gt;echo "Usage service tomcat start/stop"&lt;br /&gt;exit 1;;&lt;br /&gt;esac&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;[root@cd ~]# cat /etc/init.d/handle&lt;em&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# description: Handle Server&lt;br /&gt;#&lt;br /&gt;# Shell script to to start/stop the Handle Server for DSpace&lt;br /&gt;#&lt;br /&gt;# Set Enviroment Variables and Paths&lt;br /&gt;#&lt;br /&gt;JAVA_HOME=/usr/java/jdk; export JAVA_HOME&lt;br /&gt;CATALINA_HOME=/home/dspace/tomcat; export CATALINA_HOME&lt;br /&gt;ANT_HOME=/usr/local/ant; export ANT_HOME&lt;br /&gt;PATH=${PATH}:${ANT_HOME}/bin&lt;br /&gt;PATH=${PATH}:${JAVA_HOME}/jre/bin; export PATH&lt;br /&gt;#&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;#&lt;br /&gt;# Start Handle Server&lt;br /&gt;#&lt;br /&gt;echo&lt;br /&gt;sudo -u dspace /home/dspace/bin/start-handle-server&lt;br /&gt;;;&lt;br /&gt;&lt;br /&gt;stop)&lt;br /&gt;#&lt;br /&gt;# Stop Handle Server&lt;br /&gt;#&lt;br /&gt;pkill -u dspace&lt;br /&gt;;;&lt;br /&gt;&lt;br /&gt;*)&lt;br /&gt;echo "Usage service handle start/stop"&lt;br /&gt;exit 1;;&lt;br /&gt;esac&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;I then ran the following commands as root to make the scripts executable:&lt;br /&gt;&lt;br /&gt;[root@cd ~]# chmod 755 /etc/init.d/tomcat&lt;br /&gt;[root@cd ~]# chmod 755 /etc/init.d/handle&lt;br /&gt;&lt;br /&gt;Using an editor I added the following lines to the end of rc.local:&lt;br /&gt;&lt;br /&gt;service postgresql start&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;&lt;br /&gt;DSpace now automatically starts on boot. &lt;span style="color:#ec0076;"&gt;(As root, I can also use the new commands to stop and start the tomcat and handle services manually. However, care has to be taken to get the order right and stop tomcat first, as the the handle stop script kills any remaining processes owned by user dspace.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have also stopped the Fedora Core 3 automatic nightly yum updates to prevent an inadvertant update of PostgreSQL to version 8.0 affecting DSpace operation. I plan to review updates manually in future.&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="six"&gt;&lt;/a&gt;&lt;strong&gt;6) Managing DSpace, Tomcat and Handle Server logs&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To solve the problem of managing the logs associated with DSpace, Tomcat and the Handle-Server, I created the shell script /etc/cron.weekly/dspace as shown below:&lt;br /&gt;&lt;br /&gt;[root@cd cron.weekly]# cat dspace&lt;br /&gt;&lt;em&gt;# Custom log rotation script for DSpace&lt;br /&gt;# Written by Clive Gould (27th March 2005)&lt;br /&gt;service tomcat stop&lt;br /&gt;service handle stop&lt;br /&gt;rm -rf /home/dspace/tomcat/logs.old/*&lt;br /&gt;mv /home/dspace/tomcat/logs/localhost* /home/dspace/tomcat/logs.old&lt;br /&gt;cp /home/dspace/tomcat/logs/catalina.out /home/dspace/tomcat/logs.old&lt;br /&gt;cat /dev/null &gt; /home/dspace/tomcat/logs/catalina.out&lt;br /&gt;#&lt;br /&gt;rm -rf /home/dspace/log.old/*&lt;br /&gt;mv /home/dspace/log/*20* /home/dspace/log.old&lt;br /&gt;cp /home/dspace/log/*log /home/dspace/log.old&lt;br /&gt;cat /dev/null &gt; /home/dspace/log/dspace.log&lt;br /&gt;cat /dev/null &gt; /home/dspace/log/handle-plugin.log&lt;br /&gt;cat /dev/null &gt; /home/dspace/log/handle-server.log&lt;br /&gt;#&lt;br /&gt;rm -rf /home/dspace/handle-server/*.1&lt;br /&gt;cp /home/dspace/handle-server/access.log /home/dspace/handle-server/access.log.1&lt;br /&gt;cp /home/dspace/handle-server/error.log /home/dspace/handle-server/error.log.1&lt;br /&gt;cat /dev/null &gt; /home/dspace/handle-server/access.log&lt;br /&gt;cat /dev/null &gt; /home/dspace/handle-server/error.log&lt;br /&gt;#&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I made it executable using the following command:&lt;br /&gt;&lt;br /&gt;[root@cd cron.weekly]# chmod 755 dspace&lt;br /&gt;&lt;br /&gt;I then became user dspace and created the two .old log directories as shown below:&lt;br /&gt;&lt;br /&gt;[root@cd cron.weekly]# su - dspace&lt;br /&gt;[dspace@cd ~]$ mkdir log.old&lt;br /&gt;[dspace@cd ~]$ mkdir tomcat/logs.old&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="seven"&gt;&lt;/a&gt;&lt;strong&gt;7) Making DSpace available via Apache and HTTPS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The default install of Apache with Fedora Core 3 provides full HTTPS access on port 443.&lt;br /&gt;&lt;br /&gt;On visiting https://cd.bromley.ac.uk/dspace I found that DSpace came up over a secure connection without any further work on my part :-) &lt;span style="color:#ec0076;"&gt;(My understanding is that the browser communicates with Apache over a secure https connection via port 443 and then Apache communicates with Tomcat via the existing internal connection. This means that Tomcat does not need to be re-configured to listen over a secure connection.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order for DSpace to reference the revised URL correctly I edited the /home/dspace/config/dspace.cfg file as user dspace and changed the following line to add the https service as shown below:&lt;br /&gt;&lt;br /&gt;# DSpace base URL. Include port number etc., but NOT trailing slash&lt;br /&gt;dspace.url = https://cd.bromley.ac.uk/dspace&lt;br /&gt;&lt;br /&gt;I then ran the the following command to install the revised configuration:&lt;br /&gt;&lt;br /&gt;/home/dspace/bin/install-configs&lt;br /&gt;&lt;br /&gt;Next, as user root, I and stopped and re-started both tomcat and the handle server so that the changes took effect:&lt;br /&gt;&lt;br /&gt;service tomcat stop&lt;br /&gt;service handle stop&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;&lt;br /&gt;DSpace now worked fully with https, with all paths correct and handles resolving to the new URL.&lt;br /&gt;&lt;br /&gt;The next step was to create a valid certificate as Apache was currently using just the localhost.localdomain certificate that came with the default install of Fedora.&lt;br /&gt;&lt;br /&gt;I found the following website provided invaluable guidance on creating a certificate:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tc.umn.edu/~brams006/selfsign.html"&gt;http://www.tc.umn.edu/~brams006/selfsign.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The commands I used, as root (with the system responses shown in italic and my responses shown in bold where apppriate), are illustrated below:&lt;br /&gt;&lt;br /&gt;cd&lt;br /&gt;mkdir certwork&lt;br /&gt;chmod 750 certwork&lt;br /&gt;cd certwork&lt;br /&gt;&lt;br /&gt;I generated the Certificate Authority myself as shown below:&lt;br /&gt;&lt;br /&gt;[root@cd certwork]# openssl genrsa -des3 -out ca.key 4096&lt;br /&gt;&lt;em&gt;Generating RSA private key, 4096 bit long modulus&lt;br /&gt;..............................................................................................................................................................................++&lt;br /&gt;.........................++&lt;br /&gt;e is 65537 (0x10001)&lt;br /&gt;Enter pass phrase for ca.key:&lt;br /&gt;Verifying - Enter pass phrase for ca.key:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;[root@cd certwork]# openssl req -new -x509 -days 365 -key ca.key -out ca.crt&lt;br /&gt;&lt;em&gt;Enter pass phrase for ca.key:&lt;br /&gt;You are about to be asked to enter information that will be incorporated&lt;br /&gt;into your certificate request.&lt;br /&gt;What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;There are quite a few fields but you can leave some blank&lt;br /&gt;For some fields there will be a default value,&lt;br /&gt;If you enter '.', the field will be left blank.&lt;br /&gt;-----&lt;br /&gt;Country Name (2 letter code) [GB]:&lt;strong&gt;GB&lt;/strong&gt;&lt;br /&gt;State or Province Name (full name) [Berkshire]:&lt;strong&gt;Kent&lt;/strong&gt;&lt;br /&gt;Locality Name (eg, city) [Newbury]:&lt;strong&gt;Bromley&lt;/strong&gt;&lt;br /&gt;Organization Name (eg, company) [My Company Ltd]:&lt;strong&gt;Bromley College&lt;/strong&gt;&lt;br /&gt;Organizational Unit Name (eg, section) []:&lt;strong&gt;School of ICT&lt;/strong&gt;&lt;br /&gt;Common Name (eg, your name or your server's hostname) []:&lt;strong&gt;cd.bromley.ac.uk&lt;/strong&gt;&lt;br /&gt;Email Address []:&lt;strong&gt;root@cd.bromley.ac.uk&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I then generated a server key and request for signing as shown below:&lt;br /&gt;&lt;br /&gt;[root@cd certwork]# openssl genrsa -des3 -out server.key 4096&lt;br /&gt;&lt;em&gt;Generating RSA private key, 4096 bit long modulus&lt;br /&gt;..........++&lt;br /&gt;.....................................................++&lt;br /&gt;e is 65537 (0x10001)&lt;br /&gt;Enter pass phrase for server.key:&lt;br /&gt;Verifying - Enter pass phrase for server.key:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;[root@cd certwork]# openssl req -new -key server.key -out server.csr&lt;br /&gt;&lt;em&gt;Enter pass phrase for server.key:&lt;br /&gt;You are about to be asked to enter information that will be incorporated&lt;br /&gt;into your certificate request.&lt;br /&gt;What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;There are quite a few fields but you can leave some blank&lt;br /&gt;For some fields there will be a default value,&lt;br /&gt;If you enter '.', the field will be left blank.&lt;br /&gt;-----&lt;br /&gt;Country Name (2 letter code) [GB]:&lt;strong&gt;GB&lt;/strong&gt;&lt;br /&gt;State or Province Name (full name) [Berkshire]:&lt;strong&gt;Kent&lt;/strong&gt;&lt;br /&gt;Locality Name (eg, city) [Newbury]:&lt;strong&gt;Bromley&lt;/strong&gt;&lt;br /&gt;Organization Name (eg, company) [My Company Ltd]:&lt;strong&gt;Bromley College&lt;/strong&gt;&lt;br /&gt;Organizational Unit Name (eg, section) []:&lt;strong&gt;School of ICT&lt;/strong&gt;&lt;br /&gt;Common Name (eg, your name or your server's hostname) []:&lt;strong&gt;cd.bromley.ac.uk&lt;/strong&gt;&lt;br /&gt;Email Address []:&lt;strong&gt;root@cd.bromley.ac.uk&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Please enter the following 'extra' attributes&lt;br /&gt;to be sent with your certificate request&lt;br /&gt;A challenge password []:&lt;br /&gt;An optional company name []:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I then signed the certificate signing request with the self-created certificate authority that I made earlier:&lt;br /&gt;&lt;br /&gt;[root@cd certwork]# openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -signkey server.key -set_serial 01 -out server.crt&lt;br /&gt;&lt;em&gt;Signature ok&lt;br /&gt;subject=/C=GB/ST=Kent/L=Bromley/O=Bromley College/OU=School of&lt;br /&gt;ICT/CN=cd.bromley.ac.uk/emailAddress=root@cd.bromley.ac.uk&lt;br /&gt;Getting CA Private Key&lt;br /&gt;Enter pass phrase for ca.key:&lt;br /&gt;Getting Private key&lt;br /&gt;Enter pass phrase for server.key:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I then created an "insecure" server key to prevent Apache asking for a password every time I tried to restart the httpd process:&lt;br /&gt;&lt;br /&gt;[root@cd certwork]# openssl rsa -in server.key -out server.key.insecure&lt;br /&gt;Enter pass phrase for server.key:&lt;br /&gt;writing RSA key&lt;br /&gt;[root@cd certwork]# mv server.key server.key.secure&lt;br /&gt;[root@cd certwork]# mv server.key.insecure server.key&lt;br /&gt;&lt;br /&gt;As root, I then copied the keys over to the appropriate Apache directories as shown below:&lt;br /&gt;&lt;br /&gt;cp /root/certwork/server.key /etc/httpd/conf/ssl.key&lt;br /&gt;cp /root/certwork/server.crt /etc/httpd/conf/ssl.crt&lt;br /&gt;cp /root/certwork/server.csr /etc/httpd/conf/ssl.csr&lt;br /&gt;&lt;br /&gt;To be on the safe side I also changed the permissions of the above files to 600 as shown below:&lt;br /&gt;&lt;br /&gt;chmod 600 /etc/httpd/conf/ssl.key/server.key&lt;br /&gt;chmod 600 /etc/httpd/conf/ssl.crt/server.crt&lt;br /&gt;chmod 600 /etc/httpd/conf/ssl.csr/server.csr&lt;br /&gt;&lt;br /&gt;As root, I then restarted Apache:&lt;br /&gt;&lt;br /&gt;[root@cd certwork]# service httpd restart&lt;br /&gt;&lt;em&gt;Stopping httpd: [ OK ]&lt;br /&gt;Starting httpd: [ OK ]&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;When I visited DSpace from a browser the new certificate was successfully presented for acceptance :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="eight"&gt;&lt;/a&gt;&lt;strong&gt;8) Changing the contact telephone number&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;When a contact message is displayed the phone number comes up with the default of xxx-555-xxxx&lt;br /&gt;&lt;br /&gt;To change this I edited the file /home/dspace/dspace-1.2.1-source/jsp/components/contact-info.jsp&lt;br /&gt;&lt;br /&gt;and changed the text shown in bold:&lt;br /&gt;&lt;br /&gt;td class="standard" Or telephone: /td&lt;br /&gt;td class="standard" &lt;strong&gt;020 8295 7000 x7144&lt;/strong&gt; /td&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(Please note that in the lines above the opening and closing html tags have been removed as otherwise the blog does not display properly.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I then rebuilt DSpace as shown below:&lt;br /&gt;[dspace@cd dspace-1.2.1-source]$ ant -Dconfig=/home/dspace/config/dspace.cfg build_wars&lt;br /&gt;&lt;em&gt;Buildfile: build.xml&lt;br /&gt;compile:&lt;br /&gt;build_wars:&lt;br /&gt;[copy] Copying 1 file to /home/dspace/dspace-1.2.1-source/build/jsp&lt;br /&gt;[war] Building war: /home/dspace/dspace-1.2.1-source/build/dspace.war&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 3 seconds&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I then stopped Tomcat as root:&lt;br /&gt;&lt;br /&gt;[dspace@cd dspace-1.2.1-source]$ su - root&lt;br /&gt;Password:&lt;br /&gt;[root@cd ~]# service tomcat stop&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JAVA_HOME: /usr/java/jdk&lt;br /&gt;[root@cd ~]#&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I then exited back to user DSpace and removed the tomcat dspace directory:&lt;br /&gt;&lt;br /&gt;[dspace@cd dspace]$ rm -rf /home/dspace/tomcat/webapps/dspace&lt;br /&gt;&lt;br /&gt;I then copied over the dspace.war file into the webapps directory:&lt;br /&gt;&lt;br /&gt;[dspace@cd dspace]$ cp /home/dspace/dspace-1.2.1-source/build/dspace.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;I then restarted Tomcat as root:&lt;br /&gt;[dspace@cd webapps]$ su - root&lt;br /&gt;Password:&lt;br /&gt;[root@cd ~]# service tomcat start&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JAVA_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Hurray - contact details are now as shown below:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;DSpace at Bromley College administration contact details:&lt;br /&gt;By e-mail: dspace-help@cd.bromley.ac.uk&lt;br /&gt;Or telephone: 020 8295 7000 x7144&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="nine"&gt;&lt;/a&gt;&lt;strong&gt;9) Upgrading to Tomcat 5.5&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I decided to upgrade Tomcat to the latest version. &lt;span style="color:#ec0076;"&gt;(I had read that Tomcat 5.5 needed the JRE, but on further investigation found that the JRE was already included in a download of the JDK.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Before installing Tomcat 5.5 I downloaded and installed the latest JDK from Sun, as root, using the commands shown below:&lt;br /&gt;&lt;br /&gt;cd /usr/java&lt;br /&gt;lynx http://java.sun.com/j2se/1.5.0/download.jsp&lt;br /&gt;chmod 755 *.bin&lt;br /&gt;./jdk-1_5_0_02-linux-i586.bin&lt;br /&gt;rm *.bin&lt;br /&gt;cp -pr jdk1.5.0_02 jdk&lt;br /&gt;&lt;br /&gt;As user dspace, I downloaded the latest version of Tomcat and unpacked it into the dspace home directory using the commands shown below:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;lynx http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi&lt;br /&gt;tar -xzvf jakarta-tomcat-5.5.7.tar.gz&lt;br /&gt;&lt;br /&gt;As user root, I stopped Apache using the command:&lt;br /&gt;&lt;br /&gt;service httpd stop&lt;br /&gt;&lt;br /&gt;As user dspace, I then completed the installation using the commands shown below:&lt;br /&gt;&lt;br /&gt;service tomcat stop&lt;br /&gt;service handle stop&lt;br /&gt;mv tomcat tomcat-4.1&lt;br /&gt;mv jakarta-tomcat-5.5.7 tomcat&lt;br /&gt;cd /home/dspace/dspace-1.2.1-source/build/&lt;br /&gt;cp *.war /home/dspace/tomcat/webapps&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;&lt;br /&gt;As user root, I started Apache using the command:&lt;br /&gt;&lt;br /&gt;service httpd start&lt;br /&gt;&lt;br /&gt;Amazingly DSpace worked perfectly with Tomcat 5.5 first time and with no problems :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="ten"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;10) DSpace 1.2.2 upgrade procedure&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7th May 2005: Downloaded DSpace 1.2.2 from the Dublin mirror into the /home/dspace directory as follows:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ lynx http://prdownloads.sourceforge.net/dspace/dspace-1.2.2-source.tar.gz?download&lt;br /&gt;&lt;br /&gt;Unpacked the file within the /home/dpsace directory:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ tar -xzvf dspace-1.2.2-source.tar.gz&lt;br /&gt;&lt;br /&gt;removed the download file:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ rm dspace-1.2.2-source.tar.gz&lt;br /&gt;&lt;br /&gt;Needed to find the update documentation so used the following commands to copy over the update.html into the Apache webserver root directory from where I could read it using a browser:&lt;br /&gt;&lt;br /&gt;cd dspace-1.2.2-source/docs&lt;br /&gt;su root&lt;br /&gt;cp update.html /var/www/html&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;From now on this upgrade follows the procedure given in the upgrade.html document.&lt;br /&gt;&lt;br /&gt;Copied over the jar file as follows:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ cd dspace-1.2.1-source/lib&lt;br /&gt;[dspace@cd lib]$ cp pg74.215.jdbc3.jar ../../dspace-1.2.2-source/lib&lt;br /&gt;&lt;br /&gt;Stopped Tomcat and the handle-server as follows:&lt;br /&gt;&lt;br /&gt;[dspace@cd lib]$ su - root&lt;br /&gt;Password:&lt;br /&gt;[root@cd ~]# service tomcat stop&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;[root@cd ~]# service handle stop&lt;br /&gt;[root@cd ~]# exit&lt;br /&gt;&lt;br /&gt;Added the following lines to the end of /home/dspace/config/dspace.cfg&lt;br /&gt;&lt;br /&gt;##### Fulltext Indexing settings #####&lt;br /&gt;# Maximum number of terms indexed for a single field in Lucene.&lt;br /&gt;# Default is 10,000 words - often not enough for full-text indexing.&lt;br /&gt;# If you change this, you'll need to re-index for the change&lt;br /&gt;# to take effect on previously added items.&lt;br /&gt;# -1 = unlimited (Integer.MAX_VALUE)&lt;br /&gt;search.maxfieldlength = 10000&lt;br /&gt;&lt;br /&gt;Changed to the directory dspace-1.2.2-source and ran the ant update command:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ cd dspace-1.2.2-source&lt;br /&gt;[dspace@cd dspace-1.2.2-source]$ ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Buildfile: build.xml&lt;br /&gt;&lt;br /&gt;compile:&lt;br /&gt;[mkdir] Created dir: /home/dspace/dspace-1.2.2-source/build/classes&lt;br /&gt;[javac] Compiling 136 source files to /home/dspace/dspace-1.2.2-source/build/classes&lt;br /&gt;[javac] /home/dspace/dspace-1.2.2-source/src/org/dspace/browse/Browse.java:367:&lt;br /&gt;warning: non-varargs call of varargs method with inexact argument type&lt;br /&gt;for last parameter;&lt;br /&gt;[javac] cast to java.lang.Object for a varargs call&lt;br /&gt;[javac] cast to java.lang.Object[] for a non-varargs call and to&lt;br /&gt;suppress this warning&lt;br /&gt;[javac] new String[] { browseTables[i] });&lt;br /&gt;[javac] ^&lt;br /&gt;[javac] Note: * uses or overrides a deprecated API.&lt;br /&gt;[javac] Note: Recompile with -Xlint:deprecation for details.&lt;br /&gt;[javac] Note: Some input files use unchecked or unsafe operations.&lt;br /&gt;[javac] Note: Recompile with -Xlint:unchecked for details.&lt;br /&gt;[javac] 1 warning&lt;br /&gt;&lt;br /&gt;install_code:&lt;br /&gt;[copy] Copying 5 files to /home/dspace/lib&lt;br /&gt;[jar] Building jar: /home/dspace/lib/dspace.jar&lt;br /&gt;&lt;br /&gt;build_wars:&lt;br /&gt;[copy] Copying 1 file to /home/dspace/dspace-1.2.2-source/build&lt;br /&gt;[mkdir] Created dir: /home/dspace/dspace-1.2.2-source/jsp/local&lt;br /&gt;[mkdir] Created dir: /home/dspace/dspace-1.2.2-source/build/jsp&lt;br /&gt;[copy] Copying 194 files to /home/dspace/dspace-1.2.2-source/build/jsp&lt;br /&gt;[war] Building war: /home/dspace/dspace-1.2.2-source/build/dspace.war&lt;br /&gt;[copy] Copying 1 file to /home/dspace/dspace-1.2.2-source/build&lt;br /&gt;[war] Building war: /home/dspace/dspace-1.2.2-source/build/dspace-oai.war&lt;br /&gt;&lt;br /&gt;update:&lt;br /&gt;[echo]&lt;br /&gt;[echo] ====================================================================&lt;br /&gt;[echo] Updated Web application (.war) files are in the 'build' directory.&lt;br /&gt;[echo]&lt;br /&gt;[echo] * Stop your Web servlet container (Tomcat, Jetty, Resin etc.)&lt;br /&gt;[echo]&lt;br /&gt;[echo] * If you're using Tomcat, you need delete the directories&lt;br /&gt;[echo] corresponding to the old .war files. For example, if dspace.war&lt;br /&gt;[echo] is installed in CATALINA_HOME/webapps/dspace.war, you should&lt;br /&gt;[echo] delete the CATALINA_HOME/webapps/dspace directory. Otherwise,&lt;br /&gt;[echo] Tomcat will continue to use the old code in that directory.&lt;br /&gt;[echo]&lt;br /&gt;[echo] * Copy the new dspace.war and dspace-oai.war from the 'build'&lt;br /&gt;[echo] directory over the old ones&lt;br /&gt;[echo]&lt;br /&gt;[echo] * Start up your Web servlet container again.&lt;br /&gt;[echo] ====================================================================&lt;br /&gt;[echo]&lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 10 seconds&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Removed all the old files and directories associated with DSpace form the tomcat/webapps directory:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ cd tomcat/webapps&lt;br /&gt;[dspace@cd webapps]$ rm -rf dspace*&lt;br /&gt;&lt;br /&gt;Copied over the new .war files into the tomcat/webapps directory:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ cd dspace-1.2.2-source/build&lt;br /&gt;[dspace@cd build]$ cp dspace*.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;Copied over the input-forms.xml file and then restarted Tomcat and the handle-server:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ cd dspace-1.2.2-source/config&lt;br /&gt;[dspace@cd config]$ cp input-forms.xml /home/dspace/config&lt;br /&gt;&lt;br /&gt;[dspace@cd config]$ su - root&lt;br /&gt;Password:&lt;br /&gt;[root@cd ~]# service tomcat start&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;[root@cd ~]# service handle start&lt;br /&gt;[root@cd ~]# exit&lt;br /&gt;&lt;br /&gt;Hurray DSpace still works :-)))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Correcting the telephone number (again)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;19th May 2005 - The only problem I have encountered with the upgrade is that the contact phone number has been reset to the default value. To correct this I followed a slightly modified version of the procedure given above for changing the phone number in DSpace 1.2.1&lt;br /&gt;&lt;br /&gt;The procedure I followed was:&lt;br /&gt;&lt;br /&gt;Logged on as user dspace and edited the contact info configuration file:&lt;br /&gt;&lt;br /&gt;[dspace@cd ~]$ nano dspace-1.2.2-source/jsp/components/contact-info.jsp&lt;br /&gt;&lt;br /&gt;and changed the text shown in bold:&lt;br /&gt;&lt;br /&gt;td class="standard" Or telephone: /td&lt;br /&gt;td class="standard" &lt;strong&gt;020 8295 7000 x7144 &lt;/strong&gt;/td&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(Please note that in the lines above the opening and closing html tags have been removed as otherwise the blog does not display properly.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I then rebuilt DSpace as shown below:&lt;br /&gt;&lt;br /&gt;[dspace@cd components]$ cd /home/dspace/dspace-1.2.2-source&lt;br /&gt;[dspace@cd dspace-1.2.2-source]$ ant -Dconfig=/home/dspace/config/dspace.cfg build_wars&lt;br /&gt;&lt;em&gt;Buildfile: build.xml&lt;br /&gt;compile:&lt;br /&gt;build_wars:&lt;br /&gt;[copy] Copying 1 file to /home/dspace/dspace-1.2.2-source/build/jsp&lt;br /&gt;[war] Building war: /home/dspace/dspace-1.2.2-source/build/dspace.war&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 4 seconds&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I then stopped Tomcat as root:&lt;br /&gt;&lt;br /&gt;[dspace@cd dspace-1.2.2-source]$ su - root&lt;br /&gt;Password:&lt;br /&gt;&lt;em&gt;[root@cd ~]# service tomcat stop&lt;br /&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I then exited back to user DSpace and removed the tomcat dspace directory:&lt;br /&gt;&lt;br /&gt;[root@cd ~]# exit&lt;br /&gt;&lt;em&gt;logout&lt;/em&gt;&lt;br /&gt;[dspace@cd dspace-1.2.2-source]$ rm -rf /home/dspace/tomcat/webapps/dspace&lt;br /&gt;&lt;br /&gt;I then copied over the dspace.war file into the webapps directory:&lt;br /&gt;&lt;br /&gt;[dspace@cd dspace-1.2.2-source]$ cp /home/dspace/dspace-1.2.2-source/build/dspace.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;I then restarted Tomcat as root:&lt;br /&gt;&lt;br /&gt;[dspace@cd dspace-1.2.2-source]$ su - root&lt;br /&gt;Password:&lt;br /&gt;&lt;em&gt;[root@cd ~]# service tomcat start&lt;br /&gt;&lt;br /&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME: /usr/java/jdk&lt;/em&gt;&lt;br /&gt;[root@cd ~]# exit&lt;br /&gt;&lt;em&gt;logout&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The modified telephone number now displayed correctly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="eleven"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;11) Customising the Web User Interface&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now that DSpace has been installed on one of our new mission critical servers I wanted to extensively customise the web interface so that it matched the theme already employed on the College Website and Moodle VLE.&lt;br /&gt;&lt;br /&gt;I found the customisation &lt;a href="http://dspace.org/technology/system-docs/configure.html#customui"&gt;information&lt;/a&gt; on the DSpace Website a useful starting point.&lt;br /&gt;&lt;br /&gt;I logged on as user DSpace and moved to the jsp directory:&lt;br /&gt;&lt;br /&gt;cd dspace-1.2.2-source/jsp&lt;br /&gt;&lt;br /&gt;I then created two subdirectories of local as follows:&lt;br /&gt;&lt;br /&gt;mkdir local/image&lt;br /&gt;mkdir local/layout&lt;br /&gt;&lt;br /&gt;I then copied the following files as shown below:&lt;br /&gt;&lt;br /&gt;cp image/arrow.gif local/image&lt;br /&gt;cp image/search-go.gif local/image&lt;br /&gt;cp styles.css.jsp local&lt;br /&gt;cp layout/header-default.jsp local/layout&lt;br /&gt;&lt;br /&gt;I then spent a long time customising the files local/styles.css.jsp and local/layout/header-default.jsp - the only real way I found of doing this was trial and error until eventually I got the desired effect&lt;br /&gt;&lt;br /&gt;This proved very time consuming as after each change I had to su to root and stop tomcat before returning to user DSpace and recompiling DSpace as shown below:&lt;br /&gt;&lt;br /&gt;ant -Dconfig=[dspace]/config/dspace.cfg build_wars&lt;br /&gt;rm -rf /home/dspace/tomcat/webapps/dspace&lt;br /&gt;cp /home/dspace/dspace-1.2.2-source/build/dspace.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;I then had to su to root again to restart tomcat before I could preview my changes in the browser.&lt;br /&gt;&lt;br /&gt;I also had to alter the graphics files in local/image to suit the new theme, which involved using The GIMP at one point.&lt;br /&gt;&lt;br /&gt;You can see my completed themed interface by visting &lt;a href="http://vle.bromley.ac.uk/dspace"&gt;http://vle.bromley.ac.uk/dspace&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I addition to customising the interface I also customised (customized) the default DSpace licence (license) agreement so that it related to Bromley College and not DSpace University (DSU). This was a two stage procedure.&lt;br /&gt;&lt;br /&gt;Firstly, I edited the default license file at /home/dspace/dspace-1.2.2-source/config/default.license and then recompiled DSpace. (However, this did not change the license agreements associated with pre-existing collections.)&lt;br /&gt;&lt;br /&gt;Secondly, in order to change the licence agreements associated with pre-existing collections I had to log onto DSpace as administrator and change the license agreement associated with each collection individually. I found that I had to insert a br tag at the beginning of every other line within the dialog box in order to make the layout of the completed agreement acceptable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="twelve"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;12) Virus scanning and establishing a hot backup server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With the DSpace Repository and Moodle VLE becoming mission critical this summer we needed to have a backup server that could be brought online at a moments notice in case the there were problems with the main server.&lt;br /&gt;&lt;br /&gt;We bought in two identical rack mount servers from Dell each with twin 3.2GHz Xeon processors, 3 x 73GB hard drives in a RAID 5 hardware array and 4GB of RAM. I installed CentOS 4 on both servers with no problems at all during the actual installation.&lt;br /&gt;&lt;br /&gt;The two servers are to be placed in different server room locations in the College and will have Internet/Intranet access via a hardware NAT firewall.&lt;br /&gt;&lt;br /&gt;I have decided that either server can be booted into one of three modes:&lt;br /&gt;&lt;br /&gt;1) Main - provides Web Services&lt;br /&gt;2) Backup - provides Backup services for the main server&lt;br /&gt;3) Standby - an intermediate mode&lt;br /&gt;&lt;br /&gt;Each mode has its own external IP address and domain name.&lt;br /&gt;&lt;br /&gt;When a server is in Main mode a cron.daily script runs a backup script from the root users bin folder. This script scans the DSpace and Moodle asset store folders for Windows viruses and uses rsync to synchronise the build on the Main server with the build on the Backup server.&lt;br /&gt;&lt;br /&gt;Additionally it also uses rsync to separately backup the DSpace and Moodle builds and databases on Sunday morning and the 28th of each month.&lt;br /&gt;&lt;br /&gt;This script is illustrated below:&lt;br /&gt;&lt;br /&gt;[root@cc bin]# cat backup&lt;br /&gt;/usr/local/bin/freshclam --quiet&lt;br /&gt;echo "Moodle anti-virus scan"&lt;br /&gt;/usr/local/bin/clamscan --infected --move=/home/infected -r /home/bcvle&lt;br /&gt;echo " "&lt;br /&gt;echo "Dspace anti-virus scan"&lt;br /&gt;/usr/local/bin/clamscan --infected -r /home/dspace/assetstore&lt;br /&gt;echo " "&lt;br /&gt;service mysqld stop&lt;br /&gt;service postgresql stop&lt;br /&gt;rsync -av --delete --exclude "/sys/" --exclude "/media/" --exclude "/proc/" --exclude "/dev/pts/" --exclude "/var/run/" --exclude "/var/log/" --exclude "/etc/cups/" --exclude "/var/lock/" --exclude "/etc/hosts" --exclude "/etc/sysconfig/network" --exclude "/etc/sysconfig/network-scripts/" --exclude "/var/lib/mrtg/mrtg.ok" --exclude "/var/lib/slocate/" --exclude "/var/lib/slocate/slocate.db" --exclude "/var/lib/ntp/" --exclude "/root/.bashrc" --exclude "/home/clive/.bashrc" --exclude "/etc/cron.weekly/dspace" --exclude "/home/backup/" --exclude "/etc/mail/sendmail.cf" --exclude "/var/spool/mail/" --exclude "/var/spool/mqueue/" --exclude "/var/spool/clientmqueue/" --exclude "/root/bin/backup" --exclude "/etc/rc.d/rc.local" --exclude "/var/spool/cron/dspace" --exclude "/etc/rsyncd.conf" / 172.31.0.6::backup&lt;br /&gt;rsync /var/log/freshclam.log 172.31.0.6::backup/var/log&lt;br /&gt;if test $(date cut -c-3) = Sun&lt;br /&gt;then&lt;br /&gt;echo "Weekly backup"&lt;br /&gt;service httpd stop&lt;br /&gt;service tomcat stop&lt;br /&gt;service handle stop&lt;br /&gt;rsync -av --delete /home/dspace /home/backup/weekly&lt;br /&gt;rsync -av --delete /home/bcvle /home/backup/weekly&lt;br /&gt;rsync -av --delete /home/bcvleuser /home/backup/weekly&lt;br /&gt;rsync -av --delete /var/lib/mysql/bcvle /home/backup/weekly/mysql&lt;br /&gt;rsync -av --delete /var/lib/pgsql/data /home/backup/weekly/pgsql&lt;br /&gt;sleep 30&lt;br /&gt;service httpd start&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;fi&lt;br /&gt;if test $(date cut -c9-10) = 28&lt;br /&gt;then&lt;br /&gt;echo "Monthly backup"&lt;br /&gt;sleep 30&lt;br /&gt;service httpd stop&lt;br /&gt;service tomcat stop&lt;br /&gt;service handle stop&lt;br /&gt;rsync -av --delete /home/dspace /home/backup/monthly&lt;br /&gt;rsync -av --delete /home/bcvle /home/backup/monthly&lt;br /&gt;rsync -av --delete /home/bcvleuser /home/backup/monthly&lt;br /&gt;rsync -av --delete /var/lib/mysql/bcvle /home/backup/monthly/mysql&lt;br /&gt;rsync -av --delete /var/lib/pgsql/data /home/backup/monthly/pgsql&lt;br /&gt;sleep 30&lt;br /&gt;service httpd start&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;fi&lt;br /&gt;service postgresql start&lt;br /&gt;service mysqld start&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following scripts are used to switch the server between the modes:&lt;br /&gt;&lt;br /&gt;[root@cc bin]# cat 0mkmain&lt;br /&gt;# "This script puts a server into MAIN mode"&lt;br /&gt;cp -f /root/bin/0Mainfiles/dspace /etc/cron.weekly&lt;br /&gt;cp -f /root/bin/0Mainfiles/hosts /etc/hosts&lt;br /&gt;cp -f /root/bin/0Mainfiles/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;cp -f /root/bin/0Mainfiles/rc.local /etc/rc.d/rc.local&lt;br /&gt;cp -f /root/bin/0Mainfiles/network /etc/sysconfig/network&lt;br /&gt;cp -f /root/bin/0Mainfiles/backup /root/bin/backup&lt;br /&gt;cp -f /root/bin/0Mainfiles/sendmail.cf /etc/mail&lt;br /&gt;cp -f /root/bin/0Mainfiles/dspacecron /var/spool/cron/dspace&lt;br /&gt;rm -rf /etc/rsyncd.conf &amp;&gt; /dev/null&lt;br /&gt;echo "[ctrl]+[c] will cancel a running shutdown"&lt;br /&gt;shutdown -r +1&lt;br /&gt;&lt;br /&gt;[root@cc bin]# cat 0mkback&lt;br /&gt;# This script puts the server into BACKUP mode"&lt;br /&gt;echo "If this is the main server do you need to run the backup script first?"&lt;br /&gt;cp -f /root/bin/0Backupfiles/rsyncd.conf /etc/rsyncd.conf&lt;br /&gt;cp -f /root/bin/0Backupfiles/hosts /etc/hosts&lt;br /&gt;cp -f /root/bin/0Backupfiles/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;cp -f /root/bin/0Backupfiles/rc.local /etc/rc.d/rc.local&lt;br /&gt;cp -f /root/bin/0Backupfiles/network /etc/sysconfig/network&lt;br /&gt;cp -f /root/bin/0Backupfiles/backup /root/bin/backup&lt;br /&gt;cp -f /root/bin/0Backupfiles/sendmail.cf /etc/mail&lt;br /&gt;rm -rf /etc/cron.weekly/dspace &amp;amp;&gt; /dev/null&lt;br /&gt;crontab -u dspace -r&lt;br /&gt;echo "[ctrl]+[c] will cancel a running shutdown"&lt;br /&gt;shutdown -r +1&lt;br /&gt;&lt;br /&gt;[root@cc bin]# cat 0mkstnd&lt;br /&gt;# "This script puts a server into STANDBY mode"&lt;br /&gt;cp -f /root/bin/0Standbyfiles/hosts /etc/hosts&lt;br /&gt;cp -f /root/bin/0Standbyfiles/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;cp -f /root/bin/0Standbyfiles/rc.local /etc/rc.d/rc.local&lt;br /&gt;cp -f /root/bin/0Standbyfiles/network /etc/sysconfig/network&lt;br /&gt;cp -f /root/bin/0Standbyfiles/backup /root/bin/backup&lt;br /&gt;cp -f /root/bin/0Standbyfiles/sendmail.cf /etc/mail&lt;br /&gt;rm -rf /etc/cron.weekly/dspace &amp;&gt; /dev/null&lt;br /&gt;crontab -u dspace -r&lt;br /&gt;echo "[ctrl]+[c] will cancel a running shutdown"&lt;br /&gt;shutdown -r +1&lt;br /&gt;&lt;br /&gt;By logging into both servers using ssh it is possible to switch modes quickly and easily using the above scripts.&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="thirteen"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;1) Upgrading to DSpace 1.3.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;These upgrade instructions are specifically written for CentOS 4. I am using Fedora Core 3 on several other servers, but am not running DSpace on these servers any more.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I initially upgraded to Dspace 1.3 only to find that 1.3.1 came out the next morning! These upgrade instructions are written for the upgrade from 1.2.2 to 1.3.1. These instructions follow on from earlier items in this blog and assume that DSpace 1.2.2 is already installed in /home/dspace.&lt;br /&gt;&lt;br /&gt;Back up up all your data before proceeding. Include all of the contents of /home/dspace and the /var/lib/pgsql/data in your backup. Have a look at the rsync commands in the backup script in the previous section in this blog if you need help with backup.&lt;br /&gt;&lt;br /&gt;Login as the dspace user and download dspace-1.3.1-source.tar.gz into /home/dspace using the command:&lt;br /&gt;&lt;br /&gt;lynx http://sourceforge.net/project/showfiles.php?group_id=19984&lt;br /&gt;&lt;br /&gt;Unpack the new installation using the following command:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;tar -xzvf dspace-1.3.1-source.tar.gz&lt;br /&gt;rm *.gz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I needed to find the update documentation so I used the following commands to copy over the docs folder into the Apache webserver root directory from where I could read it using a browser:&lt;br /&gt;&lt;br /&gt;cd dspace-1.3.1-source&lt;br /&gt;su root&lt;br /&gt;cp -pr docs /var/www/html&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;From now on this upgrade follows the procedure given in the upgrade.html document.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Copy the PostgreSQL driver JAR from the 1.2.2 source directory to the 1.3.1 source directory:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.2.2-source/lib/pg74.215.jdbc3.jar /home/dspace/dspace-1.3.1-source/lib&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(Note that there was a problem with the upgrade documentation that I downloaded in that it included the following command, which is an error: cp postgresql.jar [dspace-1.2.2-source]/lib)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Remove the old version of xerces.jar from your installation, so it is not inadvertently later used:&lt;br /&gt;&lt;br /&gt;rm /home/dspace/lib/xerces.jar&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Take down Tomcat and the handle-server:&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat stop&lt;br /&gt;service handle stop&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Install the new config files by moving dstat.cfg and dstat.map:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.3.1-source/config/dstat* /home/dspace/config&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You need to append the following new parameters to /home/dspace/config/dspace.cfg:&lt;br /&gt;&lt;br /&gt;###### Statistical Report Configuration Settings ######&lt;br /&gt;&lt;br /&gt;# should the stats be publicly available? should be set to false if you only&lt;br /&gt;# want administrators to access the stats, or you do not intend to generate&lt;br /&gt;# any&lt;br /&gt;report.public = false&lt;br /&gt;&lt;br /&gt;# directory where live reports are stored&lt;br /&gt;report.dir = /home/dspace/reports/&lt;br /&gt;&lt;br /&gt;I suggest you leave customising the statistics feature until after the upgrade is complete. The instructions in section 14 of this blog explain how to get statistics working.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If the Web interface has been customised, copy over any custom interface files:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.2.2-source/jsp/components/contact-info.jsp /home/dspace/dspace-1.3.1-source/jsp/components/contact-info.jsp&lt;br /&gt;&lt;br /&gt;cp -pr /home/dspace/dspace-1.2.2-source/jsp/local /home/dspace/dspace-1.3.1-source/jsp&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(Note: If the interface hasn't been customised you can miss out the above step)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Build and install the updated DSpace 1.3.1 code. Go to the /home/dspace/dspace-1.3.1-source directory, and run:&lt;br /&gt;&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-STYLE: italic"&gt;&lt;br /&gt;Buildfile: build.xml&lt;br /&gt;&lt;br /&gt;compile:&lt;br /&gt;&lt;br /&gt;install_code:&lt;br /&gt;[copy] Copying 1 file to /home/dspace/lib&lt;br /&gt;[jar] Building jar: /home/dspace/lib/dspace.jar&lt;br /&gt;&lt;br /&gt;build_wars:&lt;br /&gt;[copy] Copying 2 files to /home/dspace/dspace-1.3.1-source/build/jsp&lt;br /&gt;[copy] Copying 6 files to /home/dspace/dspace-1.3.1-source/build/jsp&lt;br /&gt;[war] Building war: /home/dspace/dspace-1.3.1-source/build/dspace.war&lt;br /&gt;[war] Building war: /home/dspace/dspace-1.3.1-source/build/dspace-oai.war&lt;br /&gt;&lt;br /&gt;update:&lt;br /&gt;[echo]&lt;br /&gt;[echo] ====================================================================&lt;br /&gt;[echo] Updated Web application (.war) files are in the 'build' directory.&lt;br /&gt;[echo]&lt;br /&gt;[echo] * Stop your Web servlet container (Tomcat, Jetty, Resin etc.)&lt;br /&gt;[echo]&lt;br /&gt;[echo] * If you're using Tomcat, you need delete the directories&lt;br /&gt;[echo] corresponding to the old .war files. For example, if dspace.war&lt;br /&gt;[echo] is installed in CATALINA_HOME/webapps/dspace.war, you should&lt;br /&gt;[echo] delete the CATALINA_HOME/webapps/dspace directory. Otherwise,&lt;br /&gt;[echo] Tomcat will continue to use the old code in that directory.&lt;br /&gt;[echo]&lt;br /&gt;[echo] * Copy the new dspace.war and dspace-oai.war from the 'build'&lt;br /&gt;[echo] directory over the old ones&lt;br /&gt;[echo]&lt;br /&gt;[echo] * Start up your Web servlet container again.&lt;br /&gt;[echo] ====================================================================&lt;br /&gt;[echo]&lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 6 seconds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In order to modify the existing PostgreSQL database structure to meet the requirements of DSpace 1.3.1 is necessary to run the database_schema_12-13.sql file.&lt;br /&gt;&lt;br /&gt;To apply the changes, go to the 1.3.1 source directory, and run:&lt;br /&gt;&lt;br /&gt;[dspace@cc dspace-1.3.1-source]$ cd etc&lt;br /&gt;[dspace@cc etc]$ psql -f database_schema_12-13.sql dspace -h localhost&lt;br /&gt;&lt;em&gt;Password:&lt;br /&gt;CREATE SEQUENCE&lt;br /&gt;psql:database_schema_12-13.sql:60: NOTICE: CREATE TABLE / PRIMARY KEY&lt;br /&gt;will create implicit index "epersongroup2item_pkey" for table&lt;br /&gt;"epersongroup2workspaceitem"&lt;br /&gt;CREATE TABLE&lt;br /&gt;ALTER TABLE&lt;br /&gt;ALTER TABLE&lt;br /&gt;psql:database_schema_12-13.sql:70: NOTICE: ALTER TABLE / ADD UNIQUE&lt;br /&gt;will create implicit index "eperson_netid_key" for table "eperson"&lt;br /&gt;ALTER TABLE&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Rebuild the search indices:&lt;br /&gt;./index-all&lt;br /&gt;Creating browse index&lt;br /&gt;Indexing all Items in DSpace.... ... Done&lt;br /&gt;Creating search index&lt;br /&gt;Done with indexing&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Remove any old dspace Tomcat files:&lt;br /&gt;rm -rf /home/dspace/tomcat/webapps/*dspace*&lt;br /&gt;&lt;br /&gt;Copy over new .war files:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.3.1-source/build/*.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Restart tomcat and the handle server&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat start&lt;br /&gt;&lt;span style="FONT-STYLE: italic"&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME: /usr/java/jdk&lt;/span&gt;&lt;br /&gt;service handle start&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Hurray DSpace 1.3.1 works :-)))&lt;br /&gt;&lt;br /&gt;Subsequently I noticed that some images associated with the item submission process could no longer be found. I located these in last month's backup of DSpace 1.2.2 and copied them over into the /home/dspace/dspace-1.3.1-source/jsp/images/submit directory and rebuilt DSpace. The images now appear correctly during the submission process.&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="fourteen"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;14) Getting statistics working&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I order to get statistics working I edited the&lt;br /&gt;/home/dspace/config/dstat.cfg file and made the following changes to the file:&lt;br /&gt;&lt;br /&gt;# the log directory to be analysed&lt;br /&gt;dspace.log=/home/dspace/log&lt;br /&gt;&lt;br /&gt;# The item types in the archive that you need number breakdowns on&lt;br /&gt;item.type=Animation&lt;br /&gt;item.type=Article&lt;br /&gt;item.type=Book&lt;br /&gt;item.type=Book chapter&lt;br /&gt;item.type=Dataset&lt;br /&gt;item.type=Learning Object&lt;br /&gt;item.type=Image&lt;br /&gt;item.type=Image, 3D&lt;br /&gt;item.type=Map&lt;br /&gt;item.type=Musical Score&lt;br /&gt;item.type=Plan or Blueprint&lt;br /&gt;item.type=Preprint&lt;br /&gt;item.type=Presentation&lt;br /&gt;item.type=Recording, acoustical&lt;br /&gt;item.type=Recording, musical&lt;br /&gt;item.type=Recording, oral&lt;br /&gt;item.type=Software&lt;br /&gt;item.type=Technical Report&lt;br /&gt;item.type=Thesis&lt;br /&gt;item.type=Video&lt;br /&gt;item.type=Working Paper&lt;br /&gt;item.type=Other&lt;br /&gt;&lt;br /&gt;# the name and url of the service being reported on&lt;br /&gt;host.name=DSpace at Bromley College&lt;br /&gt;host.url=http://vle.bromley.ac.uk/dspace&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I then moved to the directory /home/dspace/bin and edited each of the following scripts in turn, changing the default path for the dspace home directory from /dspace to /home/dspace where appropriate:&lt;br /&gt;&lt;br /&gt;stat-initial&lt;br /&gt;stat-report-initial&lt;br /&gt;stat-monthly&lt;br /&gt;stat-report-monthly&lt;br /&gt;stat-general&lt;br /&gt;stat-report-general&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In order to initialise the statistics feature, I then ran each of the above scripts in turn from the command line, as user dspace.&lt;br /&gt;&lt;br /&gt;The function of each script (thanks to Richard Jones for help in understanding these) is given below:&lt;br /&gt;&lt;br /&gt;stat-initial: analyses the dspace logs (the analyser will perform its actions on any file which conforms to the regular expression: "dspace\.log.*") and generates monthly data files for all the complete months from the beginning of January to the end of the previous month. The data files (.dat) are placed in the log directory.&lt;br /&gt;&lt;br /&gt;stat-report-initial: generates an HTML output from each of above monthly data files and places the HTML files in the reports directory.&lt;br /&gt;&lt;br /&gt;stat-monthly: analyses the dspace logs and generates a data file for the current month.&lt;br /&gt;&lt;br /&gt;stat-report-monthly: generates an HTML output from the current months' data file.&lt;br /&gt;&lt;br /&gt;stat-general: analyses the dspace logs and generates a data file from the start to the end of the logs.&lt;br /&gt;&lt;br /&gt;stat-report-general: generates an HTML output from above data file. This script generates the default statistics home page, headed "Most recent general report".&lt;br /&gt;&lt;br /&gt;At this point I revisited https://vle.bromley.ac.uk/dspace/statistics and found the statistics were now available :-)))&lt;br /&gt;&lt;br /&gt;I then added the following lines to the dspace crontab:&lt;br /&gt;&lt;br /&gt;# Run the dspace analysis scripts&lt;br /&gt;30 2 * * * /home/dspace/bin/stat-monthly&lt;br /&gt;0 3 * * * /home/dspace/bin/stat-general&lt;br /&gt;# Run the dspace reporting scripts&lt;br /&gt;30 3 * * * /home/dspace/bin/stat-report-monthly&lt;br /&gt;0 4 * * * /home/dspace/bin/stat-report-general&lt;br /&gt;&lt;br /&gt;With the above settings the current months' report and the most recent general report is updated every night.&lt;br /&gt;&lt;br /&gt;I noticed that the only period with relevant Web statistics available was the current week. I presumed that this was because I had set up a shell script /etc/cron.weekly/dspace to rotate the dspace logs every Sunday morning. In order to retain more useful log information for statistics purposes I have commented out the following lines in the above file:&lt;br /&gt;&lt;br /&gt;# mv /home/dspace/log/*20* /home/dspace/log.old&lt;br /&gt;# cp /home/dspace/log/*log /home/dspace/log.old&lt;br /&gt;# cat /dev/null &gt; /home/dspace/log/dspace.log&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="fifteen"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;15) Modified handle server configuration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I am in the process of changing the hostname of the server running Moodle and DSpace and have noted that the handle-server configuration has changed recently.&lt;br /&gt;&lt;br /&gt;The modified handle server configuration that I used with DSpace 1.3.1 is illustrated below:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;dsrun net.handle.server.SimpleSetup /home/dspace/handle-server&lt;br /&gt;&lt;br /&gt;To configure your new Handle or Caching server,&lt;br /&gt;please answer the questions which follow; default&lt;br /&gt;answers, shown in [square brackets] when available,&lt;br /&gt;can be chosen by pressing Enter.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Will this be a caching server or a regular handle server?&lt;br /&gt;&lt;br /&gt;1 - regular Handle Server (Recommended)&lt;br /&gt;2 - caching Handle Server&lt;br /&gt;&lt;br /&gt;Please choose 1 or 2 and press Enter [1]:&lt;br /&gt;&lt;br /&gt;Will this be a "primary" server (ie, not a mirror of another server)?(y/n) [y]:&lt;br /&gt;&lt;br /&gt;Through what IP address will this server be accessible? (Domain names&lt;br /&gt;are OK) [10.200.0.14]:&lt;br /&gt;&lt;br /&gt;Enter the (TCP/UDP) port number this server will listen to [2641]:&lt;br /&gt;&lt;br /&gt;What port number will the HTTP interface be listening to? [8000]:&lt;br /&gt;&lt;br /&gt;Would you like to log all accesses to this server?(y/n) [n]: &lt;strong&gt;y&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Please indicate whether log files should be automatically&lt;br /&gt;rotated, and if so, how often.&lt;br /&gt;&lt;br /&gt;("N" (Never), "M" (Monthly), "W" (Weekly), or "D" (Daily))? [Never] : &lt;strong&gt;M&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;NOTE: Auto-saves and restarts will be done on the first of each month.&lt;br /&gt;&lt;br /&gt;Select a time of day for the saving and restarting (HH:MM:SS)&lt;br /&gt;[00:00:00]:&lt;br /&gt;&lt;br /&gt;Enter the full pathname of the directory where saved logs should be stored&lt;br /&gt;[/home/dspace/handle-server]:&lt;br /&gt;&lt;br /&gt;Each handle site has a version/serial number assigned&lt;br /&gt;to it. This is so that a client can tell if a particular&lt;br /&gt;site's configuration has changed since the last time it&lt;br /&gt;accessed a server in the site. Every time you modify a site&lt;br /&gt;(by changing an IP address, port, or adding a server, etc),&lt;br /&gt;you should increment the version/serial number for that site.&lt;br /&gt;&lt;br /&gt;Enter the version/serial number of this site [1]:&lt;br /&gt;&lt;br /&gt;Please enter a short description of this server/site: &lt;strong&gt;Bromley College&lt;br /&gt;DSpace Repository&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Please enter the name of your organization: &lt;strong&gt;Bromley College&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Please enter the name of a contact person for Bromley College (optional) [(none)]: &lt;strong&gt;Clive Gould&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Please enter the telephone number of Clive Gould or of Bromley College&lt;br /&gt;(optional) [(none)]: &lt;strong&gt;020 8295 7000&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Please enter the email address of Clive Gould or of Bromley College:&lt;br /&gt;&lt;strong&gt;xyz@.bromley.ac.uk&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Handle System can communicate via UDP and/or TCP sockets.&lt;br /&gt;Since UDP messages are blocked by many network firewalls, you may&lt;br /&gt;want to disable UDP services if you are behind such a firewall.&lt;br /&gt;&lt;br /&gt;Would you like to disable UDP services?(y/n) [n]: &lt;strong&gt;y&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Server keys already exist, do you want to create new ones? (y/n) [n]:&lt;br /&gt;&lt;br /&gt;Administrator keys already exist, do you want to create new ones? (y/n) [n]:&lt;br /&gt;Generating site info record...&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Finished configuring regular (primary) Handle Server.&lt;br /&gt;&lt;br /&gt;In order for the outside world to find your site, you will&lt;br /&gt;need to have a naming authority and a reference to your&lt;br /&gt;site in the root handle service.&lt;br /&gt;&lt;br /&gt;To request a naming authority, please visit&lt;br /&gt;http://hdl.handle.net/4263537/5014&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I visited the above web page and filled in the form, including both our internal and external IP addresses and attaching sitebndl.zip and within a very short time I got an email from CNRI to say that our existing handle prefix had been updated in their database.&lt;br /&gt;&lt;br /&gt;Handles would not resolve properly as the new server was behind a hardware firewall.&lt;br /&gt;&lt;br /&gt;We opened firewall ports 2641 and 8000 to incoming and outgoing traffic and all was well.&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="sixteen"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;16) Upgrading to DSpace 1.3.2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;These upgrade instructions are specifically written for CentOS 4. I am using Fedora Core 3 on several other servers, but am not running DSpace on these servers any more.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These instructions follow on from earlier items in this blog and assume that DSpace 1.3.1 is already installed in /home/dspace.&lt;br /&gt;&lt;br /&gt;Back up up all your data before proceeding. Include all of the contents of /home/dspace and the /var/lib/pgsql/data in your backup. Have a look at the rsync commands in the backup script in the previous section in this blog if you need help with backup.&lt;br /&gt;&lt;br /&gt;Login as the dspace user and download dspace-1.3.2-source.tar.gz into /home/dspace using the command:&lt;br /&gt;&lt;br /&gt;lynx http://heanet.dl.sourceforge.net/sourceforge/dspace/dspace-1.3.2-source.tar.gz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unpack the new installation using the following command:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;tar -xzvf dspace-1.3.2-source.tar.gz&lt;br /&gt;rm *.gz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Copy the PostgreSQL driver JAR from the 1.3.1. source directory to the 1.3.2 source directory:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.3.1-source/lib/pg74.215.jdbc3.jar /home/dspace/dspace-1.3.2-source/lib&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Take down Tomcat and the handle-server:&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat stop&lt;br /&gt;service handle stop&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Make a backup copy of the new 1.3.2 dspace.cfg file and just copy over the old version of dspace.cfg unless you are using either SRB File Storage or LDAP Authentication:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.3.2-source/config/dspace.cfg /home/dspace/dspace-1.3.2-source/config/dspace.cfg.default&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.3.1-source/config/dspace.cfg /home/dspace/dspace-1.3.2-source/config&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If the Web interface has been customised, copy over any custom interface files. For example:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.3.1-source/jsp/components/contact-info.jsp /home/dspace/dspace-1.3.2-source/jsp/components/contact-info.jsp&lt;br /&gt;&lt;br /&gt;cp -pr /home/dspace/dspace-1.3.1-source/jsp/local /home/dspace/dspace-1.3.2-source/jsp&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Build and install the updated DSpace 1.3.2 code. Go to the /home/dspace/dspace-1.3.2-source directory, and run:&lt;br /&gt;&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Buildfile: build.xml&lt;br /&gt;&lt;br /&gt;compile:&lt;br /&gt;[mkdir] Created dir: /home/dspace/dspace-1.3.2-source/build/classes&lt;br /&gt;[javac] Compiling 151 source files to&lt;br /&gt;/home/dspace/dspace-1.3.2-source/build/classes&lt;br /&gt;[javac] Note: * uses or overrides a deprecated API.&lt;br /&gt;[javac] Note: Recompile with -Xlint:deprecation for details.&lt;br /&gt;&lt;br /&gt;install_code:&lt;br /&gt;[copy] Copying 1 file to /home/dspace/lib&lt;br /&gt;[jar] Building jar: /home/dspace/lib/dspace.jar&lt;br /&gt;&lt;br /&gt;build_wars:&lt;br /&gt;[copy] Copying 1 file to /home/dspace/dspace-1.3.2-source/build&lt;br /&gt;[mkdir] Created dir: /home/dspace/dspace-1.3.2-source/build/jsp&lt;br /&gt;[copy] Copying 194 files to /home/dspace/dspace-1.3.2-source/build/jsp&lt;br /&gt;[copy] Copying 6 files to /home/dspace/dspace-1.3.2-source/build/jsp&lt;br /&gt;[copy] Copying 1 file to /home/dspace/dspace-1.3.2-source/build/classes&lt;br /&gt;[war] Building war: /home/dspace/dspace-1.3.2-source/build/dspace.war&lt;br /&gt;[copy] Copying 1 file to /home/dspace/dspace-1.3.2-source/build&lt;br /&gt;[war] Building war: /home/dspace/dspace-1.3.2-source/build/dspace-oai.war&lt;br /&gt;&lt;br /&gt;update:&lt;br /&gt;[echo]&lt;br /&gt;[echo] ====================================================================&lt;br /&gt;[echo] Updated Web application (.war) files are in the 'build' directory.&lt;br /&gt;[echo]&lt;br /&gt;[echo] * Stop your Web servlet container (Tomcat, Jetty, Resin etc.)&lt;br /&gt;[echo]&lt;br /&gt;[echo] * If you're using Tomcat, you need delete the directories&lt;br /&gt;[echo] corresponding to the old .war files. For example, if dspace.war&lt;br /&gt;[echo] is installed in CATALINA_HOME/webapps/dspace.war, you should&lt;br /&gt;[echo] delete the CATALINA_HOME/webapps/dspace directory. Otherwise,&lt;br /&gt;[echo] Tomcat will continue to use the old code in that directory.&lt;br /&gt;[echo]&lt;br /&gt;[echo] * Copy the new dspace.war and dspace-oai.war from the 'build'&lt;br /&gt;[echo] directory over the old ones&lt;br /&gt;[echo]&lt;br /&gt;[echo] * Start up your Web servlet container again.&lt;br /&gt;[echo] ====================================================================&lt;br /&gt;[echo]&lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 13 seconds&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Remove any old dspace Tomcat files:&lt;br /&gt;&lt;br /&gt;rm -rf /home/dspace/tomcat/webapps/*dspace&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Copy over new .war files:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.3.2-source/build/*.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Restart tomcat and the handle server&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat start&lt;br /&gt;Using CATALINA_BASE: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME: /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME: /usr/java/jdk&lt;br /&gt;service handle start&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Hurray DSpace 1.3.2 works :-)))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I found I needed to update the customised styles.css.jsp in jsp/local so that it included the new additions introduced in the default styles.css.jsp as supplied with the DSpace 1.3.2 distribution.&lt;br /&gt;&lt;br /&gt;I then noticed that W3C XHTML validation came up with errors. This was due to the customised jsp's I originally created in DSpace 1.2.2 having been copied into subsequent versions of DSpace. I took the relevant default jsp's that came with DSpace 1.3.2 and customised them to suit our in-house theme. I also had to change the tags used in the news and sidebar pages from uppercase to lowercase. As a result of these changes validation now works properly.&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="seventeen"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;17) Providing OAI access to DSpace&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For an introduction to OAI for beginners please select this &lt;a href="http://www.oaforum.org/tutorial/english/page1.htm"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For a guide to configuring OAI with DSpace please select this &lt;a href="http://dspace.org/technology/system-docs/application.html#oai"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In order to enable OAI access to DSpace I followed this procedure:&lt;br /&gt;&lt;br /&gt;As root stop the tomcat and handle servers:&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat stop&lt;br /&gt;service handle stop&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;As user dspace copy over dspace-oai.war as follows:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.3.2-source/build/dspace-oai.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;As root restart tomcat and the handle server:&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;&lt;br /&gt;Edit /etc/httpd/conf/workers2.properties&lt;br /&gt;&lt;br /&gt;Add the following lines to the end of workers2.properties:&lt;br /&gt;&lt;br /&gt;[uri:/dspace-oai/*]&lt;br /&gt;context=/dspace-oai&lt;br /&gt;&lt;br /&gt;Save the file and restart Apache:&lt;br /&gt;&lt;br /&gt;service httpd restart&lt;br /&gt;&lt;em&gt;Stopping httpd: [ OK ]&lt;br /&gt;Starting httpd: [ OK ]&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;On visiting the following URL on our site:&lt;br /&gt;&lt;br /&gt;http://vle.bromley.ac.uk/dspace-oai/request?verb=Identify&lt;br /&gt;&lt;br /&gt;the appropriate xml page appears in the browser :-)&lt;br /&gt;&lt;br /&gt;The repository can now be registered with the &lt;a href="http://www.openarchives.org/data/registerasprovider.html"&gt;Open Archives Initiative&lt;/a&gt; as a data provider.&lt;br /&gt;&lt;br /&gt;The base URL of our site for OAI registration purposes was:&lt;br /&gt;&lt;br /&gt;http://vle.bromley.ac.uk/dspace-oai/request&lt;br /&gt;&lt;br /&gt;i.e. everything up to the ? is your base url.&lt;br /&gt;&lt;br /&gt;Once registered with the Open Archives Initiative the repository will be harvested regularly and will be searchable from &lt;a href="http://oaister.umdl.umich.edu/o/oaister/"&gt;Oaister&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(Thanks to Henk Meij for his invaluable advice on getting this working and for pointing me to the appropriate Dspace documentation that I'd missed :-) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="eighteen"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;18) Using a commercial wildcard SSL certificate&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The College uses a wildcard SSL certificate provided by GlobalSign for the bromley.ac.uk domain. In order to harmonise with the other servers in the College I decided to replace the self-signed certificate as created in section 7 above with the College certificate.&lt;br /&gt;&lt;br /&gt;I logged in as root and backed up the certwork directory to be on the safe side :-)&lt;br /&gt;&lt;br /&gt;cp -pr /root/certwork /root/certworkback&lt;br /&gt;&lt;br /&gt;I moved to the directory certwork into which I had already uploaded the .pfx file provided to me.&lt;br /&gt;&lt;br /&gt;cd /root/certwork&lt;br /&gt;&lt;br /&gt;I ran the following command to extract the server key and relevant certificates from the .pfx file:&lt;br /&gt;&lt;br /&gt;openssl pkcs12 -in 2006BromleyWildforMoodle.pfx -out outputfile.txt -nodes&lt;br /&gt;&lt;br /&gt;enter password: xxxxxxx&lt;br /&gt;&lt;br /&gt;The password used above was provided along with the .pfx file.&lt;br /&gt;&lt;br /&gt;The file outputfile.txt contained the server private key and the certificates in plain text format.&lt;br /&gt;&lt;br /&gt;I extracted the key and certificate files in turn from outputfile.txt&lt;br /&gt;&lt;br /&gt;The first item in the outputfile was the server key. I cut and pasted everything from -----BEGIN RSA PRIVATE KEY ----- to -----END RSA PRIVATE KEY----- inclusive into a file called server.key&lt;br /&gt;&lt;br /&gt;less outputfile.txt&lt;br /&gt;pico server.key&lt;br /&gt;&lt;br /&gt;The second item in the outputfile was the Bromley Wild server certificate. I cut and pasted everything from -----BEGIN CERTIFICATE----- to -----END CERTIFICATE----- inclusive into a file called server.crt&lt;br /&gt;&lt;br /&gt;less outputfile.txt&lt;br /&gt;pico server.crt&lt;br /&gt;&lt;br /&gt;The remaining three items in the outputfile were the GloabalSign certificates. I cut and pasted each of the remaining certificates in turn as shown below:&lt;br /&gt;&lt;br /&gt;less outputfile.txt&lt;br /&gt;pico gs-root.crt&lt;br /&gt;&lt;br /&gt;less outputfile.txt&lt;br /&gt;pico gs-primserver.crt&lt;br /&gt;&lt;br /&gt;less outputfile.txt&lt;br /&gt;pico gs-serversign.crt&lt;br /&gt;&lt;br /&gt;I generated a public Certificate Signing Request (CSR) for the server as follows:&lt;br /&gt;&lt;br /&gt;openssl req -new -key server.key -out server.csr&lt;br /&gt;&lt;br /&gt;&lt;em&gt;You are about to be asked to enter information that will be incorporated&lt;br /&gt;into your certificate request.&lt;br /&gt;What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;There are quite a few fields but you can leave some blank&lt;br /&gt;For some fields there will be a default value,&lt;br /&gt;If you enter '.', the field will be left blank.&lt;br /&gt;-----&lt;br /&gt;Country Name (2 letter code) [GB]:&lt;/em&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;State or Province Name (full name) [Berkshire]:&lt;/em&gt;&lt;strong&gt;Kent&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Locality Name (eg, city) [Newbury]:&lt;/em&gt;&lt;strong&gt;Bromley&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Organization Name (eg, company) [My Company Ltd]:&lt;/em&gt;&lt;strong&gt;Bromley College&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Organizational Unit Name (eg, section) []:&lt;/em&gt;&lt;strong&gt;Bromley College&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Common Name (eg, your name or your server's hostname) []:&lt;/em&gt;&lt;strong&gt;vle.bromley.ac.uk&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Email Address []:&lt;/em&gt;&lt;strong&gt;root@vle.bromley.ac.uk&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Please enter the following 'extra' attributes&lt;br /&gt;to be sent with your certificate request&lt;br /&gt;A challenge password []:&lt;br /&gt;An optional company name []:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This created the file server.csr&lt;br /&gt;&lt;br /&gt;I created an "insecure" server key to prevent Apache asking for a password every time I tried to restart the httpd process:&lt;br /&gt;&lt;br /&gt;openssl rsa -in server.key -out server.key.insecure&lt;br /&gt;&lt;em&gt;writing RSA key&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I copied over the relevant keys, CSR's and certificates ready for Apache to use:&lt;br /&gt;&lt;br /&gt;cp gs* /etc/httpd/conf/ssl.crt&lt;br /&gt;cp server.crt /etc/httpd/conf/ssl.crt&lt;br /&gt;cp server.csr /etc/httpd/conf/ssl.csr&lt;br /&gt;cp server.key.insecure /etc/httpd/conf/ssl.key/server.key&lt;br /&gt;&lt;br /&gt;To be on the safe side I also changed the permissions of the above files to 600 as shown below:&lt;br /&gt;&lt;br /&gt;chmod 600 /etc/httpd/conf/ssl.key/*&lt;br /&gt;chmod 600 /etc/httpd/conf/ssl.crt/*&lt;br /&gt;chmod 600 /etc/httpd/conf/ssl.csr/*&lt;br /&gt;&lt;br /&gt;I then restarted Apache:&lt;br /&gt;&lt;br /&gt;[root@cd certwork]# service httpd restart&lt;br /&gt;Stopping httpd: [ OK ]&lt;br /&gt;Starting httpd: [ OK ]&lt;br /&gt;&lt;br /&gt;When I visited DSpace from a browser the new certificate was successfully presented for acceptance :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="twenty"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;20) Upgrading to DSpace 1.4 (failed) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Please do not follow these instructions as I have been unable so far to successfully upgrade DSpace 1.3.2 to DSpace 1.4 on a CentOS 4.3 platform. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The information below is intended to document the process I followed to help myself and the community:&lt;br /&gt;&lt;br /&gt;After several failed upgrades from DSpace 1.3.2 on CentOS 4.3 I decided to try again one last time.&lt;br /&gt;&lt;br /&gt;I rebuilt the testvle server from the vle server to remove all traces of DSpace 1.4&lt;br /&gt;&lt;br /&gt;I tried out DSpace 1.3.2 on the testvle server and it worked correctly.&lt;br /&gt;&lt;br /&gt;As regards the versions of Java and PostgreSQL:&lt;br /&gt;&lt;br /&gt;echo $JAVA_HOME&lt;br /&gt;&lt;em&gt;/usr/java/jdk&lt;/em&gt;&lt;br /&gt;/usr/java/jdk/bin/java -version&lt;br /&gt;&lt;em&gt;java version "1.5.0_04"&lt;br /&gt;Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)&lt;br /&gt;Java HotSpot(TM) Server VM (build 1.5.0_04-b05, mixed mode&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;rpm -q postgresql&lt;br /&gt;&lt;em&gt;postgresql-7.4.13-2.RHEL4.1&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I then followed the following upgrade procedure exactly&lt;br /&gt;&lt;br /&gt;As user dspace&lt;br /&gt;&lt;br /&gt;pwd&lt;br /&gt;/home/dspace&lt;br /&gt;&lt;br /&gt;tar -xzvf dspace-1.4-source.tar.gz&lt;br /&gt;(I downloaded the above file freshly from a different mirror)&lt;br /&gt;&lt;br /&gt;cd dspace-1.4-source&lt;br /&gt;cd lib&lt;br /&gt;rm -rf pg74*&lt;br /&gt;(to delete any old pg74 .jar files)&lt;br /&gt;lynx http://jdbc.postgresql.org/download.html&lt;br /&gt;(downloaded pg74.216.jdbc2.jar)&lt;br /&gt;cd ../config&lt;br /&gt;rm dspace.cfg&lt;br /&gt;cp /home/dspace/custom/dspace.cfg .&lt;br /&gt;&lt;br /&gt;(dspace.cfg was the default file taken from the dspace 1.4 source and edited to include the relevant settings for the testvle server. I deliberately did not copy over custom jsp's to try and keep things as close to the default as possible.)&lt;br /&gt;&lt;br /&gt;cd ..&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;em&gt;Buildfile: build.xml&lt;br /&gt;&lt;br /&gt;compile:&lt;br /&gt;   [mkdir] Created dir: /home/dspace/dspace-1.4-source/build/classes&lt;br /&gt;   [javac] Compiling 232 source files to&lt;br /&gt;/home/dspace/dspace-1.4-source/build/classes&lt;br /&gt;   [javac] Note: * uses or overrides a deprecated API.&lt;br /&gt;   [javac] Note: Recompile with -Xlint:deprecation for details.&lt;br /&gt;&lt;br /&gt;install_code:&lt;br /&gt;    [copy] Copying 7 files to /home/dspace/bin&lt;br /&gt;    [copy] Copying 14 files to /home/dspace/lib&lt;br /&gt;     [jar] Building jar: /home/dspace/lib/dspace.jar&lt;br /&gt;&lt;br /&gt;build_wars:&lt;br /&gt;    [copy] Copying 1 file to /home/dspace/dspace-1.4-source/build&lt;br /&gt;   [mkdir] Created dir: /home/dspace/dspace-1.4-source/jsp/local&lt;br /&gt;   [mkdir] Created dir: /home/dspace/dspace-1.4-source/build/jsp&lt;br /&gt;    [copy] Copying 216 files to /home/dspace/dspace-1.4-source/build/jsp&lt;br /&gt;    [copy] Copying 1 file to /home/dspace/dspace-1.4-source/build/classes&lt;br /&gt;     [war] Building war: /home/dspace/dspace-1.4-source/build/dspace.war&lt;br /&gt;    [copy] Copying 1 file to /home/dspace/dspace-1.4-source/build&lt;br /&gt;     [war] Building war: /home/dspace/dspace-1.4-source/build/dspace-oai.war&lt;br /&gt;&lt;br /&gt;update:&lt;br /&gt;    [copy] Copying 1 file to /home/dspace/config&lt;br /&gt;    [echo]&lt;br /&gt;    [echo] ====================================================================&lt;br /&gt;    [echo] Copied language packs into /home/dspace/config&lt;br /&gt;    [echo]&lt;br /&gt;    [echo] ====================================================================&lt;br /&gt;    [echo]  Updated Web application (.war) files are in the 'build' directory.&lt;br /&gt;    [echo]&lt;br /&gt;    [echo]  * Stop your Web servlet container (Tomcat, Jetty, Resin etc.)&lt;br /&gt;    [echo]&lt;br /&gt;    [echo]  * If you're using Tomcat, you need delete the directories&lt;br /&gt;    [echo]    corresponding to the old .war files.  For example, if dspace.war&lt;br /&gt;    [echo]    is installed in CATALINA_HOME/webapps/dspace.war, you should&lt;br /&gt;    [echo]    delete the CATALINA_HOME/webapps/dspace directory.  Otherwise,&lt;br /&gt;    [echo]    Tomcat will continue to use the old code in that directory.&lt;br /&gt;    [echo]&lt;br /&gt;    [echo]  * Copy the new dspace.war and dspace-oai.war from the 'build'&lt;br /&gt;    [echo]    directory over the old ones&lt;br /&gt;    [echo]&lt;br /&gt;    [echo]  * Start up your Web servlet container again.&lt;br /&gt;    [echo] ====================================================================&lt;br /&gt;    [echo]&lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 13 seconds&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service postgresql start&lt;br /&gt;&lt;em&gt;Starting postgresql service:                               [  OK  ]&lt;/em&gt;&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;As user dspace&lt;br /&gt;&lt;br /&gt;psql -f etc/database_schema_13-14.sql dspace -h localhost&lt;br /&gt;&lt;em&gt;Password:&lt;br /&gt;CREATE SEQUENCE&lt;br /&gt;CREATE SEQUENCE&lt;br /&gt;psql:etc/database_schema_13-14.sql:61: NOTICE:  CREATE TABLE / PRIMARY&lt;br /&gt;KEY will create implicit index "group2group_pkey" for table&lt;br /&gt;"group2group"&lt;br /&gt;CREATE TABLE&lt;br /&gt;psql:etc/database_schema_13-14.sql:77: NOTICE:  CREATE TABLE / PRIMARY&lt;br /&gt;KEY will create implicit index "group2groupcache_pkey" for table&lt;br /&gt;"group2groupcache"&lt;br /&gt;CREATE TABLE&lt;br /&gt;CREATE SEQUENCE&lt;br /&gt;CREATE SEQUENCE&lt;br /&gt;CREATE SEQUENCE&lt;br /&gt;psql:etc/database_schema_13-14.sql:93: NOTICE:  CREATE TABLE / PRIMARY&lt;br /&gt;KEY will create implicit index "metadataschemaregistry_pkey" for table&lt;br /&gt;"metadataschemaregistry"&lt;br /&gt;psql:etc/database_schema_13-14.sql:93: NOTICE:  CREATE TABLE / UNIQUE&lt;br /&gt;will create implicit index "metadataschemaregistry_namespace_key" for&lt;br /&gt;table "metadataschemaregistry"&lt;br /&gt;CREATE TABLE&lt;br /&gt;psql:etc/database_schema_13-14.sql:103: NOTICE:  CREATE TABLE /&lt;br /&gt;PRIMARY KEY will create implicit index "metadatafieldregistry_pkey"&lt;br /&gt;for table "metadatafieldregistry"&lt;br /&gt;CREATE TABLE&lt;br /&gt;psql:etc/database_schema_13-14.sql:114: NOTICE:  CREATE TABLE /&lt;br /&gt;PRIMARY KEY will create implicit index "metadatavalue_pkey" for table&lt;br /&gt;"metadatavalue"&lt;br /&gt;CREATE TABLE&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE INDEX&lt;br /&gt;INSERT 41400 1&lt;br /&gt;INSERT 0 66&lt;br /&gt;INSERT 0 716&lt;br /&gt;DROP TABLE&lt;br /&gt;CREATE VIEW&lt;br /&gt; setval&lt;br /&gt;--------&lt;br /&gt;    66&lt;br /&gt;(1 row)&lt;br /&gt;&lt;br /&gt; setval&lt;br /&gt;--------&lt;br /&gt;   716&lt;br /&gt;(1 row)&lt;br /&gt;&lt;br /&gt; setval&lt;br /&gt;--------&lt;br /&gt;     1&lt;br /&gt;(1 row)&lt;br /&gt;&lt;br /&gt;DROP TABLE&lt;br /&gt;ALTER TABLE&lt;br /&gt;UPDATE 281&lt;br /&gt;ALTER TABLE&lt;br /&gt;psql:etc/database_schema_13-14.sql:167: NOTICE:  CREATE TABLE /&lt;br /&gt;PRIMARY KEY will create implicit index "checksum_results_pkey" for&lt;br /&gt;table "checksum_results"&lt;br /&gt;CREATE TABLE&lt;br /&gt;psql:etc/database_schema_13-14.sql:187: NOTICE:  CREATE TABLE /&lt;br /&gt;PRIMARY KEY will create implicit index "most_recent_checksum_pkey" for&lt;br /&gt;table "most_recent_checksum"&lt;br /&gt;CREATE TABLE&lt;br /&gt;psql:etc/database_schema_13-14.sql:202: NOTICE:  CREATE TABLE will&lt;br /&gt;create implicit sequence "checksum_history_check_id_seq" for "serial"&lt;br /&gt;column "checksum_history.check_id"&lt;br /&gt;psql:etc/database_schema_13-14.sql:202: NOTICE:  CREATE TABLE /&lt;br /&gt;PRIMARY KEY will create implicit index "checksum_history_pkey" for&lt;br /&gt;table "checksum_history"&lt;br /&gt;CREATE TABLE&lt;br /&gt;INSERT 42223 1&lt;br /&gt;INSERT 42224 1&lt;br /&gt;INSERT 42225 1&lt;br /&gt;INSERT 42226 1&lt;br /&gt;INSERT 42227 1&lt;br /&gt;INSERT 42228 1&lt;br /&gt;INSERT 42229 1&lt;br /&gt;INSERT 42230 1&lt;br /&gt;INSERT 42231 1&lt;br /&gt;INSERT 0 281&lt;br /&gt;UPDATE 45&lt;br /&gt;INSERT 0 281&lt;br /&gt;UPDATE 281&lt;br /&gt;ALTER TABLE&lt;br /&gt;CREATE SEQUENCE&lt;br /&gt;psql:etc/database_schema_13-14.sql:355: NOTICE:  CREATE TABLE /&lt;br /&gt;PRIMARY KEY will create implicit index "itemsbysubject_pkey" for table&lt;br /&gt;"itemsbysubject"&lt;br /&gt;CREATE TABLE&lt;br /&gt;CREATE INDEX&lt;br /&gt;CREATE VIEW&lt;br /&gt;CREATE VIEW&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;/home/dspace/bin/index-all&lt;br /&gt;&lt;em&gt;Creating browse index&lt;br /&gt;Indexing all Items in DSpace.... ... Done&lt;br /&gt;Creating search index&lt;br /&gt;Done with indexing&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;rm -rf /home/dspace/tomcat/webapps/*dspace*&lt;br /&gt;cp /home/dspace/dspace-1.4-source/build/*.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;&lt;em&gt;service httpd start&lt;br /&gt;Starting httpd:                                            [  OK  ]&lt;br /&gt;service tomcat start&lt;br /&gt;&lt;br /&gt;Using CATALINA_BASE:   /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME:   /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME:       /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;On visiting the testvle dapace homepage I got exactly the same problem as with previous DSpace 1.4 upgrade attempts.&lt;br /&gt;&lt;br /&gt;The default header, footer and navigation bars were correctly displayed, but the centre pane contained the error message:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Internal System Error&lt;br /&gt;The system has experienced an internal error. Please try to do what&lt;br /&gt;you were doing again, and if the problem persists, please contact us&lt;br /&gt;so we can fix the problem.&lt;br /&gt;&lt;br /&gt;DSpace at Bromley College administration contact details:&lt;br /&gt;&lt;br /&gt;By e-mail: dspace-help@vle.bromley.ac.uk&lt;br /&gt;Or telephone: 020 8295 7000 x7144&lt;br /&gt;&lt;br /&gt;Go to the DSpace home page&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Clicking on a link on the Navigation bar produced the following error page:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;HTTP Status 500 -&lt;br /&gt;&lt;br /&gt;type Exception report&lt;br /&gt;&lt;br /&gt;message&lt;br /&gt;&lt;br /&gt;description The server encountered an internal error () that prevented&lt;br /&gt;it from fulfilling this request.&lt;br /&gt;&lt;br /&gt;exception&lt;br /&gt;&lt;br /&gt;java.lang.NoClassDefFoundError&lt;br /&gt;       org.dspace.app.webui.util.UIUtil.obtainContext(UIUtil.java:118)&lt;br /&gt;       org.dspace.app.webui.servlet.DSpaceServlet.processRequest(DSpaceServlet.java:132)&lt;br /&gt;       org.dspace.app.webui.servlet.DSpaceServlet.doGet(DSpaceServlet.java:99)&lt;br /&gt;       javax.servlet.http.HttpServlet.service(HttpServlet.java:689)&lt;br /&gt;       javax.servlet.http.HttpServlet.service(HttpServlet.java:802)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;note The full stack trace of the root cause is available in the Apache&lt;br /&gt;Tomcat/5.5.9 logs.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Richard Jones suggested the following:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"According to the errors thrown by pages using servlets (the index page&lt;br /&gt;is an exception in DSpace in the way that it is processed), there is a&lt;br /&gt;missing class in your DSpace instance.  Line 118 of UIUtil is:&lt;br /&gt;&lt;br /&gt;int[] groupIDs = AuthenticationManager.getSpecialGroups(c, request);&lt;br /&gt;&lt;br /&gt;Presumably, then, the AuthenticationManager class is missing, but how&lt;br /&gt;the code compiled without this class is a mystery to me!  Can you check&lt;br /&gt;that there exists a class/source file&lt;br /&gt;org.dspace.eperson.AuthenticationManager in the following locations:&lt;br /&gt;&lt;br /&gt;a) your source code that you built from (in src/)&lt;br /&gt;b) the built, but as yet undeployed classes (in build/classes)&lt;br /&gt;c) inside the live dspace.jar file (run something like 'jar tf&lt;br /&gt;dspace.jar | grep AuthenticationManager')&lt;br /&gt;&lt;br /&gt;Perhaps there has something gone wrong in the build, most likely between&lt;br /&gt;b and c above."&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To help debug I tried the locate command:&lt;br /&gt;&lt;br /&gt;updatedb&lt;br /&gt;locate AuthenticationManager&lt;br /&gt;&lt;em&gt;/home/dspace/tomcat/webapps/dspace-oai/WEB-INF/classes/org/dspace/eperson/AuthenticationManager.class&lt;br /&gt;/home/dspace/tomcat/webapps/dspace/WEB-INF/classes/org/dspace/eperson/AuthenticationManager.class&lt;br /&gt;/home/dspace/dspace-1.4-source/src/org/dspace/eperson/AuthenticationManager.java&lt;br /&gt;/home/dspace/dspace-1.4-source/build/classes/org/dspace/eperson/AuthenticationManager.class&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I then tried:&lt;br /&gt;&lt;br /&gt;[dspace@testvle lib]$ jar tf dspace.jar | grep AuthenticationManager&lt;br /&gt;&lt;em&gt;org/dspace/eperson/AuthenticationManager.class&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;12th August 2006: Several people (Richard Jones and Jonathan Champ) have suggested clearing the Tomcat work cache. I have tried this without success as shown below:&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;&lt;em&gt;Password:&lt;br /&gt;This is vle server B&lt;br /&gt;service tomcat stop&lt;br /&gt;&lt;br /&gt;Using CATALINA_BASE:   /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME:   /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME:       /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;exit&lt;br /&gt;rm -rf /home/dspace/tomcat/work/*&lt;br /&gt;cd /home/dspace/dspace-1.4-source&lt;br /&gt;!ant&lt;br /&gt;&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;em&gt;BUILD SUCCESSFUL&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;rm -rf /home/dspace/tomcat/webapps/*dspace*&lt;br /&gt;cp /home/dspace/dspace-1.4-source/build/*.war /home/dspace/tomcat/webapps&lt;br /&gt;su - root&lt;br /&gt;&lt;em&gt;service tomcat start&lt;br /&gt;&lt;br /&gt;Using CATALINA_BASE:   /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME:   /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME:       /usr/java/jdk&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;No luck problem is still there:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;java.lang.NoClassDefFoundError&lt;br /&gt;        org.dspace.app.webui.util.UIUtil.obtainContext(UIUtil.java:118)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Another problem I've noticed this morning is with the filter-media script:&lt;br /&gt;&lt;br /&gt;/home/dspace/bin/index-all&lt;br /&gt;&lt;em&gt;Creating browse index&lt;br /&gt;Indexing all Items in DSpace.... ... Done&lt;br /&gt;Creating search index&lt;br /&gt;Done with indexing&lt;/em&gt;&lt;br /&gt;/home/dspace/bin/filter-media&lt;br /&gt;&lt;em&gt;Applying Media Filters&lt;br /&gt;Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;&lt;br /&gt;        at org.dspace.app.mediafilter.MediaFilterManager.main(MediaFilterManager.java:160)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;When filter-media is run on 1.3.2 it is fine, but on the 1.4 upgrade it fails.&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="twentyone"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;21) Re-installing DSpace 1.4 (success)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wednesday 16th August 2006: I have undertaken a fresh install of DSpace 1.4 on the vle server and have copied over all the relevant content from the 1.3.2 installation.&lt;br /&gt;&lt;br /&gt;DSpace 1.4 now works fine with all the path information, plus ant, postgresql, java, tomcat, all exactly the same as for the failed upgrade from 1.3.2 to 1.4&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Before starting the reinstall it is vital to have a full backup of the entire contents of the directories /home/dspace and the /var/lib/pgsql/data as used with DSpace 1.3.2.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The process I followed is as below:&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat stop&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE:   /home/dspace/tomcat&lt;br /&gt;Using CATALINA_HOME:   /home/dspace/tomcat&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/tomcat/temp&lt;br /&gt;Using JRE_HOME:       /usr/java/jdk&lt;/em&gt;&lt;br /&gt;service postgresql stop&lt;br /&gt;Stopping postgresql service:                               [  OK  ]&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;The following commands pre-suppose that all important files from DSpace 1.3.2 have already been copied into a new directory /home/dspace/custom or are available via rsync from our backup server.&lt;br /&gt;&lt;br /&gt;As user dspace remove old installation and copy over custom files:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;rm -rf bin&lt;br /&gt;rm -rf config&lt;br /&gt;rm -rf handle-server/&lt;br /&gt;rm -rf history/&lt;br /&gt;rm -rf lib/&lt;br /&gt;rm -rf log*&lt;br /&gt;rm -rf reports&lt;br /&gt;rm -rf search&lt;br /&gt;&lt;br /&gt;cp custom/dspace-1.4-source.tar.gz .&lt;br /&gt;tar -xzvf dspace-1.4-source.tar.gz&lt;br /&gt;rm -