<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11179843</id><updated>2012-01-18T08:41:27.717-08:00</updated><title type='text'>DSpace installation and upgrade on CentOS Linux (RHEL)</title><subtitle type='html'>This blog is written to help others to successfully install and upgrade the DSpace repository on a CentOS 4/5 Linux platform. It also covers configuration of the Handle Server and Apache-Tomcat integration.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dspacebromley.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dspacebromley.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>clive</name><uri>http://www.blogger.com/profile/04834932543873462481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_q1s98Hsu7OI/SuLawcqhM5I/AAAAAAAAAAM/mv6_N0TRJtU/S220/f2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11179843.post-2887221226354822577</id><published>2012-01-18T06:31:00.001-08:00</published><updated>2012-01-18T06:32:54.535-08:00</updated><title type='text'>DSpace, LAMS, Mahara and OpenSim install on CentOS</title><content type='html'>There are five blogs in this series.&lt;br /&gt;&lt;br /&gt;Please select the link below as required:-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dspacebromley.blogspot.com/"&gt;DSpace Install Blog&lt;/a&gt;   &lt;br /&gt;&lt;br /&gt;&lt;a href="http://lamsbromley.blogspot.com/"&gt;LAMS Install Blog&lt;/a&gt;   &lt;br /&gt;&lt;br /&gt;&lt;a href="http://maharabromley.blogspot.com/"&gt;Mahara Install Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://opensimbromley.blogspot.com/"&gt;OpenSim Install Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://synchronisationbromley.blogspot.com/"&gt;Server Syncronisation Blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11179843-2887221226354822577?l=dspacebromley.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/2887221226354822577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/2887221226354822577'/><link rel='alternate' type='text/html' href='http://dspacebromley.blogspot.com/2012/01/placeholder.html' title='DSpace, LAMS, Mahara and OpenSim install on CentOS'/><author><name>clive</name><uri>http://www.blogger.com/profile/04834932543873462481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_q1s98Hsu7OI/SuLawcqhM5I/AAAAAAAAAAM/mv6_N0TRJtU/S220/f2.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11179843.post-393880694985299062</id><published>2012-01-18T06:17:00.000-08:00</published><updated>2012-01-18T07:05:14.046-08:00</updated><title type='text'>DSpace 1.8.1 Upgrade Procedure</title><content type='html'>&lt;strong&gt;Upgrade DSpace from version 1.7.1 to version 1.8.1&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Notes &lt;br /&gt;&lt;br /&gt;1) The tutorial below records the steps used to upgrade our DSpace instance at Bromley College.&lt;br /&gt;&lt;br /&gt;2) The upgrade process involves building DSpace from source because we use a custom hierarchical authentication module at Bromley. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This tutorial assumes you are initially logged in as user dspace&lt;br /&gt;&lt;br /&gt;Just to be on the safe side take a backup of the database:&lt;br /&gt;&lt;br /&gt;cd&lt;br /&gt;pg_dump -U dspace -f /home/dspace/dspace_backup_180112 dspace&lt;br /&gt;&lt;br /&gt;Download and unpack the source code:&lt;br /&gt;&lt;br /&gt;lynx http://sourceforge.net/projects/dspace/files/DSpace%20Stable/1.8.1/&lt;br /&gt;tar -xzvf /home/dspace/dspace-1.8.1-src-release.tar.gz &lt;br /&gt;&lt;br /&gt;Stop 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 (n/a with standbyvle test server)&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Apply the Bromley College customisations to the file LDAPHierarchicalAuthentication.java&lt;br /&gt;&lt;br /&gt;Replace the getSpecialGroups code with the customised version (this is specifically for our installation):&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.8.1-src-release/dspace-api/src/main/java/org/dspace/authenticate/LDAPHierarchicalAuthentication.java&lt;br /&gt;&lt;br /&gt;Copy over the stylesheets and the Bromley College logo from version 1.7.1:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/styles.css.jsp /home/dspace/dspace-1.8.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/styles.css.jsp&lt;br /&gt;cp /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/header-default.jsp /home/dspace/dspace-1.8.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/header-default.jsp&lt;br /&gt;cp /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/footer-default.jsp /home/dspace/dspace-1.8.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/footer-default.jsp&lt;br /&gt;cp /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/home.jsp /home/dspace/dspace-1.8.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/home.jsp&lt;br /&gt;cp /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/image/logo.gif /home/dspace/dspace-1.8.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/image/logo.gif&lt;br /&gt;&lt;br /&gt;Build DSpace (note can take up to 15 minutes):&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.8.1-src-release&lt;br /&gt;mvn -U clean package&lt;br /&gt;&lt;br /&gt;With the move from DSpace 1.7.x to 1.8.x there have been major changes to the configuration files. Many of the directives that used to be in the dspace.cfg file have now been put into separate configuration files in the /home/dspace/config/modules directory.&lt;em&gt; Note that these new files will not be present until after ant has been run to update DSpace.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The first step is to backup the old dspace.cfg file and obtain a clean copy of the new dspace.cfg file:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/config/dspace.cfg /home/dspace/config/dspace.cfg.1.7.1&lt;br /&gt;cp /home/dspace/dspace-1.8.1-src-release/dspace/config/dspace.cfg /home/dspace/config/dspace.cfg.1.8.1&lt;br /&gt;&lt;br /&gt;Enter custom settings into dspace.cfg.1.8.1 and then overwrite dspace.cfg. Note that the diff command can be very useful in comparing old and new configuration files:&lt;br /&gt;&lt;br /&gt;diff /home/dspace/config/dspace.cfg.1.7.1 /home/dspace/config/dspace.cfg.1.8.1&lt;br /&gt;nano /home/dspace/config/dspace.cfg.1.8.1&lt;br /&gt;cp /home/dspace/config/dspace.cfg.1.8.1 /home/dspace/config/dspace.cfg&lt;br /&gt;&lt;br /&gt;Update DSpace:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.8.1-src-release/dspace/target/dspace-1.8.1-build&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;The new configuration files will have now appeared in the /home/dspace/config/modules directory. It is now necessary to compare these new files with the appropriate sections in the old dspace.cfg file and modify the directives in the new files appropriately. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Note: I particularly ran into problems here with the path to the solr statistics server as our installation of DSpace is on a Tomcat server with non standard port allocations and is behind Apache. The path I ended up using in the solr-statistics.cfg and discovery.cfg configuration files in the config/modules directory was http://127.0.0.1/solr/statistics &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The database schema has changed slightly between DSpace 1.7.1 and 1.8.1 so it is necessary to run the following upgrade script:&lt;br /&gt;&lt;br /&gt;psql -U dspace -f dspace-1.8.1-src-release/dspace/etc/postgres/database_schema_17-18.sql dspace&lt;br /&gt;&lt;br /&gt;Run the following scripts to clean up and re-index the site:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/bin&lt;br /&gt;dspace cleanup&lt;br /&gt;dspace index-init&lt;br /&gt;dspace filter-media&lt;br /&gt;&lt;br /&gt;As the root user, start Tomcat and the handle server. Restart Apache and it works :)&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;service httpd restart&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Just to make sure view the source code of the DSpace homepage, where the metadata will confirm the new version number:&lt;br /&gt;&lt;br /&gt;meta name="Generator" content="DSpace 1.8.1&lt;br /&gt;&lt;br /&gt;Running the following script updates any old statistics files to work with DSpace 1.8.x&lt;br /&gt;&lt;br /&gt;dspace stats-util -b -r&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Making subsequent configuration changes&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If any configuration changes to source files or jsp files need to be made it is necessary to use the -Doverwrite=false switch with ant to prevent the existing customised configuration files being overwritten. Typical commands are shown below:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.8.1-src-release&lt;br /&gt;mvn -U clean package&lt;br /&gt;cd /home/dspace/dspace-1.8.1-src-release/dspace/target/dspace-1.8.1-build&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg -Doverwrite=false update&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11179843-393880694985299062?l=dspacebromley.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/393880694985299062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/393880694985299062'/><link rel='alternate' type='text/html' href='http://dspacebromley.blogspot.com/2012/01/dspace-181-upgrade-procedure.html' title='DSpace 1.8.1 Upgrade Procedure'/><author><name>clive</name><uri>http://www.blogger.com/profile/04834932543873462481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_q1s98Hsu7OI/SuLawcqhM5I/AAAAAAAAAAM/mv6_N0TRJtU/S220/f2.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11179843.post-6961133066620521954</id><published>2011-04-07T01:33:00.000-07:00</published><updated>2012-01-18T07:08:52.144-08:00</updated><title type='text'>DSpace 1.7.1 Upgrade Procedure</title><content type='html'>Upgrade DSpace to version 1.7.1&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Note that this upgrade process involves building DSpace from source because we use a custom hierarchical authentication module at Bromley. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Login as user dspace and download the source code:&lt;br /&gt;&lt;br /&gt;cd&lt;br /&gt;lynx http://sourceforge.net/projects/dspace/files/DSpace%20Stable/1.7.1/&lt;br /&gt;&lt;br /&gt;unpack the source and change to the src directory:&lt;br /&gt;tar -xzvf dspace-1.7.1-src-release.tar.gz&lt;br /&gt;cd dspace-1.7.1-src-release&lt;br /&gt;&lt;br /&gt;Stop 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 (n/a with standbyvle test server)&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Apply the Bromley College customisations to the file LDAPHierarchicalAuthentication.java. &lt;br /&gt;&lt;br /&gt;Replace the getSpecialGroups code with the customised version (this is specifically for our installation)&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.7.1-src-release/dspace-api/src/main/java/org/dspace/authenticate/LDAPHierarchicalAuthentication.java&lt;br /&gt;&lt;br /&gt;Copy over the stylesheets and the Bromley College logo from version 1.7.0:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/styles.css.jsp&lt;br /&gt; /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/styles.css.jsp&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/header-default.jsp&lt;br /&gt; /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/header-default.jsp&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/footer-default.jsp&lt;br /&gt; /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/footer-default.jsp&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/home.jsp&lt;br /&gt; /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/home.jsp&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/image/logo.gif&lt;br /&gt; /home/dspace/dspace-1.7.1-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/image/logo.gif&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.7.0-src-release/dspace/config/dspace.cfg&lt;br /&gt; /home/dspace/dspace-1.7.1-src-release/dspace/config/dspace.cfg&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.7.1-src-release/dspace/config/dspace.cfg&lt;br /&gt; /home/dspace/config/dspace.cfg&lt;br /&gt;&lt;br /&gt;Build DSpace (note can take up to 15 minutes):&lt;br /&gt;&lt;br /&gt;cd&lt;br /&gt;cd dspace-1.7.1-src-release/dspace&lt;br /&gt;mvn -U clean package&lt;br /&gt;&lt;br /&gt;Update DSpace:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.7.1-src-release/dspace/target/dspace-1.7.1-build.dir&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;Generate the browse and search indexes:&lt;br /&gt;&lt;br /&gt;/home/dspace/bin/dspace index-init&lt;br /&gt;&lt;br /&gt;As the root user, start Tomcat and the handle server. Restart Apache and it works :)&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat stop&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;service httpd restart&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Just to make sure I viewed the source code of the DSpace homepage, where the metadata confirmed the new version number:&lt;br /&gt;&lt;br /&gt;meta name="Generator" content="DSpace 1.7.1"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11179843-6961133066620521954?l=dspacebromley.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/6961133066620521954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/6961133066620521954'/><link rel='alternate' type='text/html' href='http://dspacebromley.blogspot.com/2011/04/dspace-171-upgrade-procedure.html' title='DSpace 1.7.1 Upgrade Procedure'/><author><name>clive</name><uri>http://www.blogger.com/profile/04834932543873462481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_q1s98Hsu7OI/SuLawcqhM5I/AAAAAAAAAAM/mv6_N0TRJtU/S220/f2.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11179843.post-3536081560082900694</id><published>2010-12-31T03:34:00.000-08:00</published><updated>2011-04-08T01:13:06.705-07:00</updated><title type='text'>DSpace 1.7.0 Upgrade Procedure</title><content type='html'>This blog covers the upgrade procedure from DSpace 1.6.2 to DSpace 1.7.0 under CentOS 5.5 Linux&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;i) Upgrade Apache-Maven&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;First upgrade apache-maven to the latest version available:&lt;br /&gt;&lt;br /&gt;login as root&lt;br /&gt;&lt;br /&gt;cd /usr/local/apache-maven/&lt;br /&gt;lynx http://maven.apache.org/download.html&lt;br /&gt;tar -xzvf apache-maven-3.0.1-bin.tar.gz&lt;br /&gt;&lt;br /&gt;nano /etc/profile&lt;br /&gt;&lt;br /&gt;Change the M2_HOME variable to point to the new installation of maven:&lt;br /&gt;M2_HOME=/usr/local/apache-maven/apache-maven-3.0.1&lt;br /&gt;&lt;br /&gt;Logout and log back in again.&lt;br /&gt;Check the version of maven installed:&lt;br /&gt;&lt;br /&gt;mvn --version&lt;br /&gt;Apache Maven 3.0.1 (r1038046; 2010-11-23 10:58:32+0000)&lt;br /&gt;Java version: 1.6.0_13&lt;br /&gt;Java home: /usr/java/jdk1.6.0_13/jre&lt;br /&gt;Default locale: en_US, platform encoding: UTF-8&lt;br /&gt;OS name: "linux" version: "2.6.18-92.el5xen" arch: "i386" Family: "unix"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ii) Upgrade PostgreSQL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It is necessary to upgrade PostgreSQL from the default version of 8.1.22 as provided with CentOS 5.5 to PostgreSQL version 8.4.5. This is because DSpace 1.7.0 will only work with versions of PostgreSQL above 8.2&lt;br /&gt;&lt;br /&gt;The process used to successfully upgrade PostgreSQL is given below:&lt;br /&gt;&lt;br /&gt;Log in as the root user.&lt;br /&gt;&lt;br /&gt;Obtain the compat-postgresql-libs-4-1PGDG.rhel5.i686.rpm package. After quite a bit of searching I found it on the Web and downloaded it to our cd server, to ensure it was available in future. &lt;br /&gt;&lt;br /&gt;I downloaded the compat-postgresql-libs-4-1PGDG.rhel5.i686.rpm package from the cd server onto our test server and installed it as follows:&lt;br /&gt;&lt;br /&gt;lynx http://cd.bromley.ac.uk/compat-postgresql-libs-4-1PGDG.rhel5.i686.rpm&lt;br /&gt;rpm -iv --replacefiles compat-postgresql-libs-4-1PGDG.rhel5.i686.rpm&lt;br /&gt;&lt;br /&gt;If the above step is missed out removing the old version of postgresql will also strip out a lot of vital system packages!&lt;br /&gt;&lt;br /&gt;Remove the old version of PostgreSQL and install the new version:&lt;br /&gt;&lt;br /&gt;mkdir /pgbak&lt;br /&gt;chown postgres:postgres /pgbak&lt;br /&gt;su - postgres&lt;br /&gt;pg_dumpall &gt; /pgbak/backup.sql&lt;br /&gt;exit&lt;br /&gt;service postgresql stop&lt;br /&gt;cp /var/lib/pgsql/data/pg_hba.conf /pgbak&lt;br /&gt;mv /var/lib/pgsql/data /pgbak&lt;br /&gt;yum remove postgresql*&lt;br /&gt;yum install postgresql84-server&lt;br /&gt;/etc/init.d/postgresql initdb&lt;br /&gt;cp /pgbak/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf&lt;br /&gt;chkconfig --level 35 postgresql on&lt;br /&gt;service postgresql start&lt;br /&gt;su - postgres&lt;br /&gt;psql -f /pgbak/backup.sql postgres&lt;br /&gt;vacuumdb -a -z&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;And just to make sure:&lt;br /&gt;&lt;br /&gt;rpm -qa | grep postgresql&lt;br /&gt;postgresql84-server-8.4.5-1.el5_5.1&lt;br /&gt;postgresql84-libs-8.4.5-1.el5_5.1&lt;br /&gt;compat-postgresql-libs-4-1PGDG.rhel5&lt;br /&gt;postgresql84-8.4.5-1.el5_5.1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;iii) Upgrade DSpace to version 1.7.0&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Note that this upgrade process involves building DSpace from source because we use a custom hierarchical authentication module at Bromley. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;su to user dspace&lt;br /&gt;download the source code:&lt;br /&gt;lynx http://sourceforge.net/projects/dspace/files/DSpace%20Stable/1.7.0/&lt;br /&gt;&lt;br /&gt;unpack the source and change to the src directory:&lt;br /&gt;tar -xzvf dspace-1.7.0-src-release.tar.gz&lt;br /&gt;cd dspace-1.7.0-src-release&lt;br /&gt;&lt;br /&gt;Stop 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 (n/a with standbyvle test server)&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Apply the Bromley College customisations to the following default files:&lt;br /&gt;&lt;br /&gt;Replace the getSpecialGroups code with the customised version (this is&lt;br /&gt;specifically for our installation)&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.7.0-src-release/dspace-api/src/main/java/org/dspace/authenticate/LDAPHierarchicalAuthentication.java&lt;br /&gt;&lt;br /&gt;Copy over the stylesheets and the Bromley College logo from version 1.6.2:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/styles.css.jsp&lt;br /&gt;/home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/styles.css.jsp&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/header-default.jsp&lt;br /&gt;/home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/header-default.jsp&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/footer-default.jsp&lt;br /&gt;/home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/footer-default.jsp&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/home.jsp&lt;br /&gt;/home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/home.jsp&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/image/logo.gif&lt;br /&gt;/home/dspace/dspace-1.7.0-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/image/logo.gif&lt;br /&gt;&lt;br /&gt;With reference to dspace.cfg for the 1.6.2 build, apply the Bromley&lt;br /&gt;College customisations to the default dspace.cfg.&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.7.0-src-release/dspace/config/dspace.cfg&lt;br /&gt;cp /home/dspace/dspace-1.7.0-src-release/dspace/config/dspace.cfg /home/dspace/config/dspace.cfg&lt;br /&gt;&lt;br /&gt;Build DSpace (note can take up to 15 minutes):&lt;br /&gt;&lt;br /&gt;cd&lt;br /&gt;cd dspace-1.7.0-src-release/dspace&lt;br /&gt;mvn -U clean package&lt;br /&gt;&lt;br /&gt;Update DSpace:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.7.0-src-release/dspace/target/dspace-1.7.0-build.dir&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;Apply the database update script:&lt;br /&gt;&lt;br /&gt;psql -U dspace -f /home/dspace/dspace-1.7.0-src-release/dspace/etc/postgres/database_schema_16-17.sql dspace&lt;br /&gt;&lt;br /&gt;Generate the browse and search indexes:&lt;br /&gt;&lt;br /&gt;/home/dspace/bin/dspace index-init&lt;br /&gt;&lt;br /&gt;As the root user, start Tomcat and the handle server. Restart Apache and it works :)&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat stop&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;service httpd restart&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Later I noticed that the thumbnail images weren't being displayed for newly uploaded image files. After a bit of investigation I found I'd omitted updating the dspace crontab with the latest settings. The settings now in use are shown below:&lt;br /&gt;&lt;br /&gt;# Send out subscription e-mails at 01:00 every day&lt;br /&gt;0 1 * * * /home/dspace/bin/dspace sub-daily&lt;br /&gt;# Run the media filter at 02:00 every day&lt;br /&gt;0 2 * * * /home/dspace/bin/dspace filter-media&lt;br /&gt;# Run the checksum checker at 03:00&lt;br /&gt;0 3 * * * /home/dspace/bin/dspace checker -lp&lt;br /&gt;# Mail the results to the sysadmin at 04:00&lt;br /&gt;0 4 * * * /home/dspace/bin/dspace dsrun org.dspace.checker.DailyReportEmailer -c&lt;br /&gt;# Run stat analyses&lt;br /&gt;0 1 * * * /home/dspace/bin/dspace stat-general&lt;br /&gt;0 1 * * * /home/dspace/bin/dspace stat-monthly&lt;br /&gt;0 2 * * * /home/dspace/bin/dspace stat-report-general&lt;br /&gt;0 2 * * * /home/dspace/bin/dspace stat-report-monthly&lt;br /&gt;20 4 * * * cd /home/dspace/vacuumdb &amp;&amp; ( PGPASSWORD=`cat .pgpass` /usr/bin/vacuumdb --analyze -v -h 127.0.0.1 -U dspace dspace )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11179843-3536081560082900694?l=dspacebromley.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/3536081560082900694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/3536081560082900694'/><link rel='alternate' type='text/html' href='http://dspacebromley.blogspot.com/2010/12/dspace-170-upgrade-procedure-failed.html' title='DSpace 1.7.0 Upgrade Procedure'/><author><name>clive</name><uri>http://www.blogger.com/profile/04834932543873462481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_q1s98Hsu7OI/SuLawcqhM5I/AAAAAAAAAAM/mv6_N0TRJtU/S220/f2.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11179843.post-8516039807326224811</id><published>2010-08-03T02:29:00.000-07:00</published><updated>2010-08-09T00:08:09.134-07:00</updated><title type='text'>DSpace 1.6.2 Upgrade Procedure</title><content type='html'>&lt;strong&gt;Upgrade to DSpace 1.6.2 &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This blog covers the upgrade procedure from DSpace 1.5.2 to DSpace 1.6.2 under CentOS 5.3 Linux&lt;br /&gt;&lt;br /&gt;Login as user dspace and download and untar the source distribution:&lt;br /&gt;&lt;br /&gt;lynx http://sourceforge.net/projects/dspace/files/DSpace%20Stable/1.6.2/dspace-1.6.2-src-release.tar.gz/download&lt;br /&gt;tar -xzvf dspace-1.6.2-src-release.tar.gz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stop 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;&lt;br /&gt;&lt;br /&gt;In DSpace 1.6.2 the new solr statistics feature is provided. This works in addition to the existing statistics and provides content specific statistics on Communities, Collections and Items. It is worth maintaining both old and new statistics reporting at this stage as the old system provides an repository wide overview, whilst the new system is much more specific.&lt;br /&gt;&lt;br /&gt;The solr Webserver is already provided with DSpace 1.6.2. However with our implementation of tomcat running behind Apache using mod_jk two additional steps needed to be taken to enable access to solr.&lt;br /&gt;&lt;br /&gt;Statistics Step 1 (as root)&lt;br /&gt;&lt;br /&gt;cd /etc/httpd/conf.d&lt;br /&gt;nano jk.conf&lt;br /&gt;&lt;br /&gt;Append the following text:&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;JkMount /solr worker2&lt;br /&gt;#&lt;br /&gt;JkMount /solr/* worker2&lt;br /&gt;&lt;br /&gt;Save jk.conf&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Statistics Step 2 (as dspace)&lt;br /&gt;&lt;br /&gt;cd /home/dspace/apache-tomcat-6.0.18/conf&lt;br /&gt;nano server.xml&lt;br /&gt;&lt;br /&gt;Add the following text:&lt;br /&gt;&lt;br /&gt;[!-- DEFINE A CONTEXT PATH FOR DSpace Solr Statistics Interface --]&lt;br /&gt;       [Context path="/solr" docBase="/home/dspace/webapps/solr" debug="0"&lt;br /&gt;       reloadable="true" cachingAllowed="false"&lt;br /&gt;       allowLinking="true"/]&lt;br /&gt;&lt;br /&gt;Note that the HTML braces above have been replaced by [] for display purposes just within this blog.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As of 8th August 2010 there is a patch missing from the DSpace 1.6.2 source code. This results in the issue date being wrongly displayed. The process for correcting this is explained below:&lt;br /&gt;&lt;br /&gt;cd &lt;br /&gt;nano DCDate.patch&lt;br /&gt;&lt;br /&gt;Cut and paste the patch file text below (derived from &lt;a href="http://jira.dspace.org/jira/browse/DS-469"&gt;http://jira.dspace.org/jira/browse/DS-469&lt;/a&gt;) into the text file DCDate.patch:&lt;br /&gt;&lt;br /&gt;Index: dspace-api/src/main/java/org/dspace/content/DCDate.java&lt;br /&gt;===================================================================&lt;br /&gt;--- dspace-api/src/main/java/org/dspace/content/DCDate.java     (revision 4697)&lt;br /&gt;+++ dspace-api/src/main/java/org/dspace/content/DCDate.java     (working copy)&lt;br /&gt;@@ -639,9 +639,9 @@&lt;br /&gt;                                      dd.getHourGMT(), dd.getMinuteGMT(), dd.getSecondGMT());&lt;br /&gt;             }&lt;br /&gt;         }&lt;br /&gt;-        else if (granularity == DateGran.DAY)&lt;br /&gt;+        else if (granularity == DateGran.YEAR)&lt;br /&gt;         {&lt;br /&gt;-            return String.format("%d-%s-%4d", dd.getDay(), monthName, dd.getYear());&lt;br /&gt;+            return String.format("%4d", dd.getYear());&lt;br /&gt;         }&lt;br /&gt;         else if (granularity == DateGran.MONTH)&lt;br /&gt;         {&lt;br /&gt;@@ -649,7 +649,7 @@&lt;br /&gt;         }&lt;br /&gt;         else&lt;br /&gt;         {&lt;br /&gt;-            return String.format("%4d", dd.getYear());&lt;br /&gt;+            return String.format("%d-%s-%4d", dd.getDay(), monthName, dd.getYear());&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Save the file DCDate.patch&lt;br /&gt;Use the following command to apply the above patch:&lt;br /&gt;&lt;br /&gt;patch /home/dspace/dspace-1.6.2-src-release/dspace-api/src/main/java/org/dspace/content/DCDate.java DCDate.patch&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With reference to the source code files in the DSpace 1.5.2 build, apply the Bromley College customisations to the following default files:&lt;br /&gt;&lt;br /&gt;Replace the getSpecialGroups code with the customised version (this is specifically for our installation)&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.6.2-src-release/dspace-api/src/main/java/org/dspace/authenticate/LDAPHierarchicalAuthentication.java&lt;br /&gt;&lt;br /&gt;Customise the stylesheets:&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/styles.css.jsp&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/header-default.jsp&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/footer-default.jsp&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/home.jsp&lt;br /&gt;&lt;br /&gt;Also copy over the College logo from the 1.5.2 build:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/image/logo.gif /home/dspace/dspace-1.6.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/image/logo.gif&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With reference to dspace.cfg for the 1.5.2 build, apply the Bromley College customisations to the default dspace.cfg. Also check out the new solr statistics section in dspace.cfg and append the following lines to the solr statistics section of dspace.cfg:&lt;br /&gt;&lt;br /&gt;# Added by Clive Gould on 8th August 2010&lt;br /&gt;statistics.items.dc.1=dc.identifier&lt;br /&gt;statistics.items.dc.2=dc.date.accessioned&lt;br /&gt;statistics.items.type.1=dcinput&lt;br /&gt;statistics.items.type.2=date&lt;br /&gt;statistics.default.start.datepick = 01/01/1977&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.6.2-src-release/dspace/config/dspace.cfg&lt;br /&gt;cp /home/dspace/dspace-1.6.2-src-release/dspace/config/dspace.cfg /home/dspace/config/dspace.cfg&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Build DSpace (note this takes about 5 minutes):&lt;br /&gt;&lt;br /&gt;cd&lt;br /&gt;cd dspace-1.6.2-src-release/dspace&lt;br /&gt;mvn -U clean package&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Update DSpace:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.6.2-src-release/dspace/target/dspace-1.6.2-build.dir&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apply the bitstream fix:&lt;br /&gt;&lt;br /&gt;/home/dspace/bin/dspace registry-loader -bitstream /home/dspace/etc/upgrades/15-16/new-bitstream-formats.xml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apply the database update script:&lt;br /&gt;&lt;br /&gt;psql -U dspace -f /home/dspace/dspace-1.6.2-src-release/dspace/etc/postgres/database_schema_15-16.sql dspace&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The webapps folder is already pathed from tomcat's server.xml so it is not necessary to copy the files over.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Generate the browse and search indexes:&lt;br /&gt;&lt;br /&gt;/home/dspace/bin/dspace index-init&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Start Tomcat:&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;service httpd restart&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;On testing it appears that DSpace 1.6.2 works fine with both oai and handle requests&lt;br /&gt;&lt;br /&gt;The old statistics files can be imported into DSpace and there is an excellent tutorial on this subject on the following site: &lt;a href="http://ir.sun.ac.za/wiki/index.php/Asset_Statistics"&gt;http://ir.sun.ac.za/wiki/index.php/Asset_Statistics&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11179843-8516039807326224811?l=dspacebromley.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/8516039807326224811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/8516039807326224811'/><link rel='alternate' type='text/html' href='http://dspacebromley.blogspot.com/2010/08/dspace-162-upgrade-procedure.html' title='DSpace 1.6.2 Upgrade Procedure'/><author><name>clive</name><uri>http://www.blogger.com/profile/04834932543873462481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_q1s98Hsu7OI/SuLawcqhM5I/AAAAAAAAAAM/mv6_N0TRJtU/S220/f2.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11179843.post-5651674900390705076</id><published>2009-04-08T01:05:00.001-07:00</published><updated>2010-04-05T04:01:01.634-07:00</updated><title type='text'>DSpace 1.5.2 installation procedure on CentOS 5.3</title><content type='html'>I have just complete a clean install of DSpace 1.5.2 on a CentOS 5.3 box.&lt;br /&gt;&lt;br /&gt;Here is the installation process I followed:&lt;br /&gt;&lt;br /&gt;Login as the root user and download dspace to /root:&lt;br /&gt;lynx http://sourceforge.net/project/showfiles.php?group_id=19984%20%20&lt;br /&gt;&lt;br /&gt;Create an account for the dspace user:&lt;br /&gt;useradd dspace&lt;br /&gt;passwd dspace&lt;br /&gt; &lt;br /&gt;I have already installed the JDK on this server during the LAMS install. For details please select this &lt;a href="http://www.linuxtraining.org.uk/blogger1.html"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download and install maven and ant:&lt;br /&gt;cd /root&lt;br /&gt;lynx http://maven.apache.org/download.html&lt;br /&gt;mkdir /usr/local/apache-maven&lt;br /&gt;mv apache-maven-2.1.0-bin.tar.gz /usr/local/apache-maven/&lt;br /&gt;cd /usr/local/apache-maven&lt;br /&gt;tar -xzvf apache-maven-2.1.0-bin.tar.gz&lt;br /&gt;cd /usr/local&lt;br /&gt;lynx http://ant.apache.org/bindownload.cgi&lt;br /&gt;mv /root/apache-ant-1.7.1-bin.tar.gz .&lt;br /&gt;tar -xzvf apache-ant-1.7.1-bin.tar.gz&lt;br /&gt; &lt;br /&gt;Add paths to /etc/profile:&lt;br /&gt;nano /etc/profile&lt;br /&gt;&lt;br /&gt;Add the following: &lt;br /&gt;M2_HOME=/usr/local/apache-maven/apache-maven-2.1.0&lt;br /&gt;export M2_HOME&lt;br /&gt;MAVEN_OPTS="-Xms256m -Xmx512m"&lt;br /&gt;export MAVEN_OPTS&lt;br /&gt;M2=$M2_HOME/bin&lt;br /&gt;export M2&lt;br /&gt;PATH=${PATH}:${M2}&lt;br /&gt;ANT_HOME=/usr/local/apache-ant-1.7.1&lt;br /&gt;export ANT_HOME&lt;br /&gt;PATH=${PATH}:${ANT_HOME}/bin&lt;br /&gt;export PATH&lt;br /&gt;&lt;br /&gt;Logout and log back in again so that the environment variables from /etc/profile are applied.&lt;br /&gt;&lt;br /&gt;Check that maven and ant are installed:&lt;br /&gt; &lt;br /&gt;mvn --version&lt;br /&gt;Apache Maven 2.1.0 (r755702; 2009-03-18 19:10:27+0000)&lt;br /&gt;Java version: 1.6.0_13&lt;br /&gt;Java home: /usr/java/jdk1.6.0_13/jre&lt;br /&gt;Default locale: en_US, platform encoding: UTF-8&lt;br /&gt;OS name: "linux" version: "2.6.18-92.1.22.el5xen" arch: "i386" Family: "unix"&lt;br /&gt;&lt;br /&gt;ant -version&lt;br /&gt;Apache Ant version 1.7.1 compiled on June 27 2008&lt;br /&gt;&lt;br /&gt;Install the postgresql database and configure postgresql:&lt;br /&gt;&lt;br /&gt;yum install postgresql postgresql-server&lt;br /&gt;chkconfig --level 2345 postgresql on&lt;br /&gt;service postgresql start&lt;br /&gt;&lt;br /&gt;nano /var/lib/pgsql/data/postgresql.conf&lt;br /&gt;For 8.0+, in &lt;br /&gt;postgresql.conf uncomment the line starting: &lt;br /&gt;listen_addresses = 'localhost'&lt;br /&gt;#---------------------------------------------------------------------------&lt;br /&gt;# CONNECTIONS AND AUTHENTICATION&lt;br /&gt;#---------------------------------------------------------------------------&lt;br /&gt;# - Connection Settings -&lt;br /&gt;&lt;strong&gt;listen_addresses = 'localhost' &lt;/strong&gt;         # what IP address(es) to listen on;&lt;br /&gt;                                        # comma-separated list of addresses;&lt;br /&gt;                                        # defaults to 'localhost', '*' = all&lt;br /&gt;&lt;br /&gt;nano /var/lib/pgsql/data/pg_hba.conf&lt;br /&gt;&lt;br /&gt;Then don't tighten up security a bit by editing  &lt;br /&gt;pg_hba.conf as the default file is already too restrictive to allow creation of the dspace database. Just enter the following contents into the actual configuration section of the file and delete everything else from this section. &lt;br /&gt;&lt;br /&gt;# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD&lt;br /&gt;# "local" is for Unix domain socket connections only&lt;br /&gt;&lt;strong&gt;local   all         all                               trust&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Check the databases already present:&lt;br /&gt;su - postgres&lt;br /&gt;&lt;em&gt;-bash-3.2$ psql -l&lt;br /&gt;        List of databases&lt;br /&gt;   Name    |  Owner   | Encoding&lt;br /&gt;-----------+----------+----------&lt;br /&gt; postgres  | postgres | UTF8&lt;br /&gt; template0 | postgres | UTF8&lt;br /&gt; template1 | postgres | UTF8&lt;br /&gt;(3 rows)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Create the user and database:&lt;br /&gt;-bash-3.2$ createuser -U postgres -d -A -P dspace&lt;br /&gt;Enter password for new role: XXXX&lt;br /&gt;Enter it again: XXXX&lt;br /&gt;Shall the new role be allowed to create more new roles? (y/n) n&lt;br /&gt;CREATE ROLE&lt;br /&gt;-bash-3.2$ createdb -U dspace -E UNICODE dspace&lt;br /&gt;CREATE DATABASE&lt;br /&gt;&lt;br /&gt;-bash-3.2$ psql -l&lt;br /&gt;        &lt;em&gt;List of databases&lt;br /&gt;   Name    |  Owner   | Encoding&lt;br /&gt;-----------+----------+----------&lt;br /&gt; dspace    | dspace   | UTF8&lt;br /&gt; postgres  | postgres | UTF8&lt;br /&gt; template0 | postgres | UTF8&lt;br /&gt; template1 | postgres | UTF8&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;service postgresql stop&lt;br /&gt;&lt;em&gt;Stopping postgresql service:                               [  OK  ]&lt;/em&gt;&lt;br /&gt;service postgresql start&lt;br /&gt;&lt;em&gt;Starting postgresql service:                               [  OK  ]&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;nmap 127.0.0.1&lt;br /&gt;&lt;em&gt;Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-04-10 08:47 BST&lt;br /&gt;Interesting ports on localhost.localdomain (127.0.0.1):&lt;br /&gt;Not shown: 1667 closed ports&lt;br /&gt;PORT     STATE SERVICE&lt;br /&gt;25/tcp   open  smtp&lt;br /&gt;80/tcp   open  http&lt;br /&gt;443/tcp  open  https&lt;br /&gt;631/tcp  open  ipp&lt;br /&gt;3306/tcp open  mysql&lt;br /&gt;4444/tcp open  krb524&lt;br /&gt;5432/tcp open  postgres&lt;br /&gt;5801/tcp open  vnc-http-1&lt;br /&gt;5901/tcp open  vnc-1&lt;br /&gt;6001/tcp open  X11:1&lt;br /&gt;8009/tcp open  ajp13&lt;br /&gt;8080/tcp open  http-proxy&lt;br /&gt;9090/tcp open  zeus-admin&lt;br /&gt;Nmap finished: 1 IP address (1 host up) scanned in 0.120 seconds&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;As the root user, download and install Tomcat:&lt;br /&gt;&lt;br /&gt;cd /root&lt;br /&gt;lynx http://tomcat.apache.org/download-60.cgi&lt;br /&gt;cp apache-tomcat-6.0.18.tar.gz /home/dspace&lt;br /&gt;cd /home/dspace&lt;br /&gt;chown dspace:dspace apache-tomcat-6.0.18.tar.gz&lt;br /&gt;su - dspace&lt;br /&gt;tar -xzvf apache-tomcat-6.0.18.tar.gz&lt;br /&gt;exit&lt;br /&gt; &lt;br /&gt;nano /etc/profile &lt;br /&gt;and append the following lines:&lt;br /&gt;&lt;br /&gt;JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"&lt;br /&gt;export JAVA_OPTS&lt;br /&gt;&lt;br /&gt;Here I tell DSpace/Tomcat to listen on port 8081 and AJP connector port 8010 (I have to do this as JBoss Tomcat used with LAMS is already listening on 8080 and 8009):&lt;br /&gt;&lt;br /&gt;su - dspace&lt;br /&gt;rm -rf apache-tomcat-6.0.18.tar.gz&lt;br /&gt;cd apache-tomcat-6.0.18/conf&lt;br /&gt;nano server.xml&lt;br /&gt;In server.xl change any references to port 8080 to port 8081 and any references for port 8009 to port 8010. &lt;br /&gt;   &lt;br /&gt;cd /home/dspace/apache-tomcat-6.0.18/bin&lt;br /&gt;./startup.sh&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE:   /home/dspace/apache-tomcat-6.0.18&lt;br /&gt;Using CATALINA_HOME:   /home/dspace/apache-tomcat-6.0.18&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/apache-tomcat-6.0.18/temp&lt;br /&gt;Using JRE_HOME:       /usr/java/jdk1.6.0_13&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Just to confirm that DSpace/Tomcat is listening on port 8081:&lt;br /&gt;&lt;br /&gt;nmap 127.0.0.1&lt;br /&gt;&lt;em&gt;Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-04-11 17:08 BST&lt;br /&gt;Interesting ports on localhost.localdomain (127.0.0.1):&lt;br /&gt;Not shown: 1666 closed ports&lt;br /&gt;PORT     STATE SERVICE&lt;br /&gt;25/tcp   open  smtp&lt;br /&gt;80/tcp   open  http&lt;br /&gt;443/tcp  open  https&lt;br /&gt;631/tcp  open  ipp&lt;br /&gt;3306/tcp open  mysql&lt;br /&gt;4444/tcp open  krb524&lt;br /&gt;5432/tcp open  postgres&lt;br /&gt;5801/tcp open  vnc-http-1&lt;br /&gt;5901/tcp open  vnc-1&lt;br /&gt;6001/tcp open  X11:1&lt;br /&gt;8009/tcp open  ajp13&lt;br /&gt;8080/tcp open  http-proxy&lt;br /&gt;8081/tcp open  blackice-icecap&lt;br /&gt;9090/tcp open  zeus-admin&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;./shutdown.sh&lt;br /&gt;&lt;em&gt;Using CATALINA_BASE:   /home/dspace/apache-tomcat-6.0.18&lt;br /&gt;Using CATALINA_HOME:   /home/dspace/apache-tomcat-6.0.18&lt;br /&gt;Using CATALINA_TMPDIR: /home/dspace/apache-tomcat-6.0.18/temp&lt;br /&gt;Using JRE_HOME:       /usr/java/jdk1.6.0_13&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Now install DSpace:&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;cd /root&lt;br /&gt;cp dspace-1.5.2-release.tar.gz /home/dspace&lt;br /&gt;cd /home/dspace&lt;br /&gt;chown dspace:dspace dspace-1.5.2-release.tar.gz&lt;br /&gt;exit&lt;br /&gt; &lt;br /&gt;tar -xzvf dspace-1.5.2-release.tar.gz&lt;br /&gt;cd dspace-1.5.2-release/dspace/config&lt;br /&gt;nano dspace.cfg &lt;br /&gt;&lt;br /&gt;The configuration settings shown below in dspace.cfg are just the settings I either changed or uncommented in the default file: &lt;br /&gt;&lt;br /&gt;dspace.dir = /home/dspace&lt;br /&gt;dspace.url = http://vleinternal.bromley.ac.uk/jspui&lt;br /&gt;dspace.hostname = vleinternal.bromley.ac.uk&lt;br /&gt;dspace.name = DSpace for eLearning Evaluation at Bromley College &lt;br /&gt;db.name = postgres&lt;br /&gt;db.url = jdbc:postgresql://localhost:5432/dspace&lt;br /&gt;db.driver = org.postgresql.Driver&lt;br /&gt;db.username = dspace&lt;br /&gt;db.password = XXXX&lt;br /&gt;mail.server=vleinternal.bromley.ac.uk&lt;br /&gt;mail.from.address = dspace-noreply@vleinternal.bromley.ac.uk&lt;br /&gt;feedback.recipient = dspace-help@vleinternal.bromley.ac.uk&lt;br /&gt;mail.admin = dspace-help@vleinternal.bromley.ac.uk&lt;br /&gt;default.language = en_GB&lt;br /&gt;&lt;br /&gt;cd..&lt;br /&gt;mvn package&lt;br /&gt;A lot of information now appears on the screen. Below are shown the last lines confirming success:&lt;br /&gt;&lt;em&gt;[INFO] Copying 861 files to /home/dspace/dspace-1.5.2-release/dspace/target/dspace-1.5.2-build.dir&lt;br /&gt;[INFO]&lt;br /&gt;[INFO]&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] Reactor Summary:&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] DSpace Addon Modules .................................. SUCCESS [30.453s]&lt;br /&gt;[INFO] DSpace XML-UI (Manakin) :: Web Application ............ SUCCESS [1:14.611s]&lt;br /&gt;[INFO] DSpace LNI :: Web Application ......................... SUCCESS [10.261s]&lt;br /&gt;[INFO] DSpace OAI :: Web Application ......................... SUCCESS [6.427s]&lt;br /&gt;[INFO] DSpace JSP-UI :: Web Application ...................... SUCCESS [8.017s]&lt;br /&gt;[INFO] DSpace SWORD :: Web Application ....................... SUCCESS [5.869s]&lt;br /&gt;[INFO] DSpace Assembly and Configuration ..................... SUCCESS [43.018s]&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] BUILD SUCCESSFUL&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] Total time: 2 minutes 59 seconds&lt;br /&gt;[INFO] Finished at: Sun Apr 12 07:40:07 BST 2009&lt;br /&gt;[INFO] Final Memory: 25M/255M&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;Now to set up postgresql to allow access to the dspace database:&lt;br /&gt;nano /var/lib/pgsql/data/pg_hba.conf&lt;br /&gt;Add the following line to 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;&lt;br /&gt;service postgresql restart&lt;br /&gt;&lt;br /&gt;su - dspace&lt;br /&gt;cd /home/dspace/dspace-1.5.2-release/dspace/target/dspace-1.5.2-build.dir&lt;br /&gt;ant fresh_install&lt;br /&gt;A lot of information now appears on the screen. Below are shown the last lines confirming success:&lt;br /&gt;     &lt;em&gt;[echo] ====================================================================&lt;br /&gt;     [echo]  The DSpace code has been installed, and the database initialized.&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]  To complete installation, you should do the following:&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]  * Setup your Web servlet container (e.g. Tomcat) to look for your&lt;br /&gt;     [echo]    DSpace web applications in: /home/dspace/webapps/&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]    OR, copy any web applications from /home/dspace/webapps/ to&lt;br /&gt;     [echo]    the appropriate place for your servlet container.&lt;br /&gt;     [echo]    (e.g. '$CATALINA_HOME/webapps' for Tomcat)&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]  * Make an initial administrator account (an e-person) in DSpace:&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]    /home/dspace/bin/create-administrator&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]  * Start up your servlet container (Tomcat etc.)&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]  You should then be able to access your DSpace's 'home page':&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]    http://vleinternal.bromley.ac.uk/dspace&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]  You should also be able to access the administrator UI:&lt;br /&gt;     [echo]&lt;br /&gt;     [echo]    http://vleinternal.bromley.ac.uk/dspace/dspace-admin&lt;br /&gt;     [echo] ====================================================================&lt;br /&gt;     [echo]&lt;br /&gt;BUILD SUCCESSFUL&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;cd /home/dspace/apache-tomcat-6.0.18/conf&lt;br /&gt;nano server.xml and add the following to the end of the host section:&lt;br /&gt;Note that the standard html opening and closing tag braces have been replaced by {} in this blog purely for display purposes.&lt;br /&gt;&lt;br /&gt;{!-- DEFINE A CONTEXT PATH FOR DSpace JSP User Interface --}&lt;br /&gt;        {Context path="/jspui" docBase="/home/dspace/webapps/jspui" debug="0"&lt;br /&gt;        reloadable="true" cachingAllowed="false"&lt;br /&gt;        allowLinking="true"/}&lt;br /&gt;        {!-- DEFINE A CONTEXT PATH FOR DSpace OAI User Interface --}&lt;br /&gt;        {Context path="/oai" docBase="/home/dspace/webapps/oai" debug="0"&lt;br /&gt;        reloadable="true" cachingAllowed="false"&lt;br /&gt;        allowLinking="true"/}&lt;br /&gt;&lt;br /&gt;cd  /home/dspace/bin&lt;br /&gt;./create-administrator&lt;br /&gt; &lt;br /&gt;/home/dspace/apache-tomcat-6.0.18/bin&lt;br /&gt;./shutdown.sh&lt;br /&gt;./startup.sh&lt;br /&gt; &lt;br /&gt;Now visit http://127.0.0.1:8081/jspui from the browser and it works !!!!!!&lt;br /&gt; &lt;br /&gt;Now set up the crontab for dspace:&lt;br /&gt;crontab -e&lt;br /&gt;no crontab for dspace - using an empty one&lt;br /&gt;&lt;br /&gt;# Send out subscription e-mails at 01:00 every day&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;# Run the checksum checker at 03:00&lt;br /&gt;0 3 * * * /home/dspace/bin/checker -lp&lt;br /&gt;# Mail the results to the sysadmin at 04:00&lt;br /&gt;0 4 * * * /home/dspace/bin/dsrun org.dspace.checker.DailyReportEmailer -c&lt;br /&gt;# Run stat analyses&lt;br /&gt;0 1 * * * /home/dspace/bin/stat-general&lt;br /&gt;0 1 * * * /home/dspace/bin/stat-monthly&lt;br /&gt;0 2 * * * /home/dspace/bin/stat-report-general&lt;br /&gt;0 2 * * * /home/dspace/bin/stat-report-monthly&lt;br /&gt;20 4 * * * cd /home/dspace/vacuumdb &amp;&amp; ( PGPASSWORD=`cat .pgpass` /usr/bin/vacuumdb --analyze -v -h 127.0.0.1 -U dspace dspace )&lt;br /&gt; &lt;br /&gt;cd /home/dspace&lt;br /&gt;mkdir vacuumdb&lt;br /&gt;cd vacuumdb/&lt;br /&gt;nano .pgpass&lt;br /&gt;chmod 600 .pgpass&lt;br /&gt;exit&lt;br /&gt; &lt;br /&gt;Getting DSpace Tomcat to work behind Apache using mod_jk turned out to be relatively straightforward. LAMS was already working behind mod_jk. For more information on installing mod_jk please select this &lt;a href="http://www.linuxtraining.org.uk/blogger1.html"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;cd /etc/httpd/conf&lt;br /&gt;nano workers.properties&lt;br /&gt;and add/amend the following lines:&lt;br /&gt;&lt;br /&gt;# workers.tomcat_home=/usr/lib/apache-tomcat&lt;br /&gt;# workers.java_home=/usr/lib/jdk&lt;br /&gt;ps=/&lt;br /&gt;worker.list=worker1,worker2&lt;br /&gt;worker.worker1.port=8009&lt;br /&gt;worker.worker2.port=8010&lt;br /&gt;worker.default.host=localhost&lt;br /&gt;worker.default.type=ajp13&lt;br /&gt;worker.default.lbfactor=1&lt;br /&gt;&lt;br /&gt;cd /etc/httpd/conf.d&lt;br /&gt;nano jk.conf&lt;br /&gt;and add/amend the following lines:&lt;br /&gt;&lt;br /&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 jk_module modules/mod_jk.so&lt;br /&gt;#&lt;br /&gt;# mod_jk is configured in /etc/httpd/conf/workers.properties&lt;br /&gt;#&lt;br /&gt;# Where to find workers.properties&lt;br /&gt;JkWorkersFile /etc/httpd/conf/workers.properties&lt;br /&gt;# Where to put jk logs&lt;br /&gt;JkLogFile /var/log/httpd/mod_jk.log&lt;br /&gt;# Set the jk log level [debug/error/info]&lt;br /&gt;JkLogLevel info&lt;br /&gt;# Select the log format&lt;br /&gt;JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "&lt;br /&gt;# JkOptions indicate to send SSL KEY SIZE,&lt;br /&gt;JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br /&gt;# JkRequestLogFormat set the request format&lt;br /&gt;JkRequestLogFormat "%w %V %T"&lt;br /&gt;# Send  servlet for context /lams to worker named worker1&lt;br /&gt;JkMount /lams worker1&lt;br /&gt;# Send JSPs for context /lams/* to worker named worker1&lt;br /&gt;JkMount /lams/* worker1&lt;br /&gt;#&lt;br /&gt;JkMount /upload/* worker1&lt;br /&gt;#&lt;br /&gt;JkMount /jmx-console/* worker1&lt;br /&gt;#&lt;br /&gt;JkMount /jspui worker2&lt;br /&gt;#&lt;br /&gt;JkMount /jspui/* worker2&lt;br /&gt;#&lt;br /&gt;JkMount /oai worker2&lt;br /&gt;#&lt;br /&gt;JkMount /oai/* worker2&lt;br /&gt;&lt;br /&gt;Restart apache and DSpace is now available on the URL http://vleinternal.bromley.ac.uk/jspui/&lt;br /&gt; &lt;br /&gt;Now create a script to antomatically start and stop tomcat.&lt;br /&gt; &lt;br /&gt;nano /etc/init.d/tomcat&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=JAVA_HOME=/usr/java/jdk1.6.0_13; export JAVA_HOME&lt;br /&gt;CATALINA_HOME=/home/dspace/apache-tomcat-6.0.18/; export CATALINA_HOME&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/apache-tomcat-6.0.18/bin/startup.sh&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/apache-tomcat-6.0.18/bin/shutdown.sh&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;br /&gt;chmod 755 tomcat&lt;br /&gt;service tomcat stop&lt;br /&gt;service tomcat start&lt;br /&gt;&lt;br /&gt;I found with CentOS 5 that Tomcat was failing to start on boot and I was getting the following error in the logs : &lt;br /&gt;&lt;br /&gt;sudo: sorry, you must have a tty to run sudo&lt;br /&gt;&lt;br /&gt;The solution turned out to be very simple. I used the visudo command to edit sudo's configuration file and juts commented out the line &lt;br /&gt;&lt;br /&gt;Defaults    requiretty&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Getting LDAP access to Active Directory working &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now that DSpace is successfully running the next step is to configure LDAP access to Active Directory.&lt;br /&gt;&lt;br /&gt;In order to help with this download and install the JAVA based lDAP browser, JXplorer This will help you test your connection with Active Directory and discover the additional settings you need to include in dspace.cfg&lt;br /&gt;&lt;br /&gt;Open the GUI in Linux as a user and within a terminal window enter the following commands:&lt;br /&gt;&lt;br /&gt;lynx http://www.jxplorer.org/&lt;br /&gt;unzip JXv3.2rc2deploy.zip&lt;br /&gt;cd Desktop&lt;br /&gt;cd jxplorer/&lt;br /&gt;chmod 755 jxplorer.sh&lt;br /&gt;./jxplorer.sh&lt;br /&gt;&lt;br /&gt;JXplorer will now open in a window on your desktop. Click on the "connect" icon and fill in the settings for Active Directory access. You will need to have a bind user already set up in AD, who has permissions to browse the AD tree. The format of the User DN that worked for me was bindusername@bromley.local, but this very much depends on your AD structure. I left the Base DN dialog box empty and was then able to browse and search the entire LDAP tree.&lt;br /&gt;&lt;br /&gt;It can also be helpful to use the command line LDAP client ldapsearch to investigate connection options. This can be installed from a root login as follows:&lt;br /&gt;&lt;br /&gt;cd /etc/openldap&lt;br /&gt;nano ldap.conf&lt;br /&gt;&lt;br /&gt;Add entries for BASE and HOST to the file.&lt;br /&gt;&lt;br /&gt;It is then necessary to install openldap as follows:&lt;br /&gt;&lt;br /&gt;yum install openldap&lt;br /&gt;yum install openldap-clients&lt;br /&gt;&lt;br /&gt;The command using the following syntax allowed me to search our AD structure:&lt;br /&gt;&lt;br /&gt;ldapsearch -x -v -D "bindusername@bromley.local" -W -L "cn=Clive Gould"&lt;br /&gt;&lt;em&gt;ldap_initialize( &lt;DEFAULT&gt; )&lt;br /&gt;Enter LDAP Password:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The LDAP Password required is the one for the binduser in AD and the results of the search were successfully displayed for the AD account Clive Gould.&lt;br /&gt;&lt;br /&gt;Once you have used one, or both, of the above techniques to verify AD connection settings and structure DSpace can now be configured.&lt;br /&gt;&lt;br /&gt;The configuration settings shown below in dspace.cfg are the settings I changed in the default file in order to get LDAP authentication working for us:&lt;br /&gt;&lt;br /&gt;Please note that this was the version of dspace.cfg stored in the /home/dspace/config folder.&lt;br /&gt;&lt;br /&gt;#### Stackable Authentication Methods #####&lt;br /&gt;&lt;br /&gt;# Stack of authentication methods&lt;br /&gt;#  (See org.dspace.authenticate.AuthenticationManager)&lt;br /&gt;# Example:&lt;br /&gt;# plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \&lt;br /&gt;#       org.dspace.authenticate.ShibAuthentication, \&lt;br /&gt;#        org.dspace.authenticate.PasswordAuthentication&lt;br /&gt;&lt;br /&gt;# Next two lines added by Clive Gould on 22/04/09 to allow AD Authentication&lt;br /&gt;&lt;br /&gt;plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \&lt;br /&gt;      org.dspace.authenticate.LDAPHierarchicalAuthentication&lt;br /&gt;&lt;br /&gt;#### LDAP Authentication Configuration Settings ####&lt;br /&gt;&lt;br /&gt;ldap.enable = true&lt;br /&gt;ldap.provider_url = ldap://10.100.0.2:3268/&lt;br /&gt;ldap.id_field = sAMAccountName&lt;br /&gt;ldap.object_context = dc=bromley,dc=local&lt;br /&gt;ldap.search_context = dc=bromley,dc=local&lt;br /&gt;ldap.email_field = mail&lt;br /&gt;ldap.surname_field = sn&lt;br /&gt;ldap.givenname_field = givenName&lt;br /&gt;webui.ldap.autoregister = true&lt;br /&gt;ldap.login.specialgroup = Authenticated&lt;br /&gt;ldap.search_scope = 2&lt;br /&gt;ldap.search.user = bindusername@bromley.local&lt;br /&gt;ldap.search.password = YYYYYYYY&lt;br /&gt;&lt;br /&gt;Where the ldap.search.password is the password for the binduser in AD. Please note that the syntax of the line containing the ldap.provider_url was critical to getting LDAP authentication working for me, especially the / after the port number!&lt;br /&gt;&lt;br /&gt;It was then necessary to rebuild DSpace as follows:&lt;br /&gt;&lt;br /&gt;cd dspace-1.5.2-release/dspace/&lt;br /&gt;mvn package&lt;br /&gt;cd /home/dspace/dspace-1.5.2-release/dspace/target/dspace-1.5.2-build.dir&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;On restarting Tomcat as root I found I could then login to DSpace using my normal AD username and password. My user profile in DSpace was automatically completed by using my details from my AD account.&lt;br /&gt;&lt;br /&gt;I found I could not login using my original DSpace administrator account as direct password-login was now disabled. I had to run the create-administrator script again to add my new "AD" indentity to the list of DSpace administrators. &lt;br /&gt;&lt;br /&gt;Another problem, which was solved thanks to a reply to a DSpace tech-lists posting was to do with the ldap.login.specialgroup - When logged in as DSpace administrator and visiting the Groups option I expected to see users who logged on added automatically to the Authenticated group. Stuart Lewis and Flavio Botelho kindly replied to my posting and explained that this was a "special" group.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"This means that users are not added to it as such, but are transient members of it during the period that they are logged in. Therefore you will not see anyone listed in that group, however such users should inherit the permissions of belonging to that group."&lt;/em&gt; Stuart Lewis&lt;br /&gt;&lt;br /&gt;I subsequently noticed that the feedabck form on the DSpace homepage was producing an internal error when a user tried to submit a message. This was because email was undeliverable to dspace-help and dspace-noreply. The solution from a root login was as follows:&lt;br /&gt;&lt;br /&gt;nano /etc/aliases&lt;br /&gt;&lt;br /&gt;append the following lines to the file:&lt;br /&gt;&lt;br /&gt;dspace-help:     clive@somewhere.com&lt;br /&gt;dspace-noreply:  clive@somewhere.com&lt;br /&gt;&lt;br /&gt;and run the newaliases command:&lt;br /&gt;&lt;br /&gt;newaliases&lt;br /&gt;&lt;em&gt;/etc/aliases: 79 aliases, longest 16 bytes, 842 bytes total&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Differentiating between student and staff login to DSpace&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In order to control access to collections we needed to be able to differentiate between authorised staff and student login. &lt;br /&gt;&lt;br /&gt;Stuart Lewis very kindly provided a patch that allowed staff logging in to be automatically added to an all-staff special group and students logging in to be automatically added to an all-students special group.&lt;br /&gt;&lt;br /&gt;As user dspace, download the src release of dspace 1.5.2 into /home/dspace and extract it.&lt;br /&gt;&lt;br /&gt;lynx http://sourceforge.net/project/showfiles.php?group_id=19984%20%20&lt;br /&gt;tar -xzvf dspace-1.5.2-src-release.tar.gz&lt;br /&gt;&lt;br /&gt;Edit the file LDAPHierarchicalAuthentication.java, which controls special groups&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.5.2-src-release/dspace-api/src/main/java/org/dspace/authenticate/LDAPHierarchicalAuthentication.java&lt;br /&gt;&lt;br /&gt;Replace the existing section of the code with the following:&lt;br /&gt;&lt;br /&gt;   /*&lt;br /&gt;   * New code written by Stuart Lewis and added by Clive Gould on 28th April 2009&lt;br /&gt;   */&lt;br /&gt;&lt;br /&gt;   public int[] getSpecialGroups(Context context, HttpServletRequest request)&lt;br /&gt;   {&lt;br /&gt;      try&lt;br /&gt;      {&lt;br /&gt;          if (!context.getCurrentUser().getNetid().equals(""))&lt;br /&gt;          {&lt;br /&gt;              Group staffGroup = Group.findByName(context, "all-staff");&lt;br /&gt;              Group studentsGroup = Group.findByName(context, "all-students");&lt;br /&gt;&lt;br /&gt;              // Does the username start with a '1'?&lt;br /&gt;              if ((studentsGroup != null) &amp;&amp; context.getCurrentUser().getNetid().startsWith("1")))&lt;br /&gt;              {&lt;br /&gt;                  // Add them to the students group&lt;br /&gt;                  return new int[] { studentsGroup.getID() };&lt;br /&gt;              }&lt;br /&gt;              else if (staffGroup != null)&lt;br /&gt;              {&lt;br /&gt;                  // Add them to the staff group&lt;br /&gt;                  return new int[] { staffGroup.getID() };&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;      catch (Exception npe) {&lt;br /&gt;          // The user is not an LDAP user, so we don't need to worry about them&lt;br /&gt;      }&lt;br /&gt;      return new int[0];&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;Build and install DSpace&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.5.2-src-release/dspace&lt;br /&gt;mvn package&lt;br /&gt;cd /home/dspace/dspace-1.5.2-src-release/dspace/target/dspace-1.5.2-build.dir&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;Restart tomcat and it works :)&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat stop&lt;br /&gt;service tomcat start&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Customising the User Interface&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In order to customise the appearance of DSpace 1.5.2 I modified the following files:&lt;br /&gt;&lt;br /&gt;/home/dspace/dspace-1.5.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/styles.css.jsp&lt;br /&gt;&lt;br /&gt;/home/dspace/dspace-1.5.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/header-default.jsp&lt;br /&gt;&lt;br /&gt;/home/dspace/dspace-1.5.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/layout/footer-default.jsp&lt;br /&gt;&lt;br /&gt;/home/dspace/dspace-1.5.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/home.jsp&lt;br /&gt;&lt;br /&gt;I also included the college logo by adding the logo.gif file in the following location:&lt;br /&gt;&lt;br /&gt;/home/dspace/dspace-1.5.2-src-release/dspace-jspui/dspace-jspui-webapp/src/main/webapp/image/logo.gif&lt;br /&gt;&lt;br /&gt;DSpace was then rebuilt and restarted as follows:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.5.2-src-release/dspace&lt;br /&gt;mvn package&lt;br /&gt;cd /home/dspace/dspace-1.5.2-src-release/dspace/target/dspace-1.5.2-build.dir&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service tomcat stop&lt;br /&gt;service tomcat start&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Customising the URL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We wanted to have DSpace available on the URL /dspace instead of /jspui and OAI access on /dspace-oai instead of /oai&lt;br /&gt;&lt;br /&gt;Stuart Lewis from the University of Auckland kindly provided me with the solution :)&lt;br /&gt;&lt;br /&gt;I logged in as user dspace.&lt;br /&gt;&lt;br /&gt;First I had to modify tomcat's server.xml file:&lt;br /&gt;&lt;br /&gt;nano /home/dspace/apache-tomcat-6.0.18/conf/server.xml &lt;br /&gt;&lt;br /&gt;and change the context path as shown below:&lt;br /&gt;&lt;br /&gt;from&lt;br /&gt;&lt;br /&gt;Context path="/jspui" docBase="/home/dspace/webapps/jspui"&lt;br /&gt; &lt;br /&gt;to&lt;br /&gt; &lt;br /&gt;Context path="/dspace" docBase="/home/dspace/webapps/jspui"&lt;br /&gt;&lt;br /&gt;and from&lt;br /&gt;&lt;br /&gt;Context path="/oai" docBase="/home/dspace/webapps/oai" debug="0"&lt;br /&gt;&lt;br /&gt;to&lt;br /&gt;&lt;br /&gt;Context path="/dspace-oai" docBase="/home/dspace/webapps/oai" debug="0"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also it was necessary to edit jk.conf:&lt;br /&gt;&lt;br /&gt;nano /etc/httpd/conf.d/jk.conf&lt;br /&gt;&lt;br /&gt;Then change the JkMount directives to point to the new path as shown below:&lt;br /&gt;&lt;br /&gt;JkMount /dspace worker2&lt;br /&gt;#&lt;br /&gt;JkMount /dspace/* worker2&lt;br /&gt;#&lt;br /&gt;JkMount /dspace-oai worker2&lt;br /&gt;#&lt;br /&gt;JkMount /dspace-oai/* worker2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It was then necessary to change the path used by the dspace.url directive in dspace.cfg and rebuild DSpace.&lt;br /&gt;&lt;br /&gt;On restarting tomcat DSpace and OAI were available using the required paths :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Getting the handle server working&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This eventually turned out to be relatively easy. It was necessary to edit dspace.cfg and include our existing CNRI handle prefix as follows:&lt;br /&gt;&lt;br /&gt;# CNRI Handle prefix&lt;br /&gt;handle.prefix = &lt;strong&gt;2045&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It was also necessary to tell DSpace to use the handle server version 6.2 and rebuild DSpace from source. The process I followed is given below. Note that xml tag brackets have been replaced by [] to avoid display problems in this blog.&lt;br /&gt;&lt;br /&gt;As user dspace, edit /home/dspace/dspace-1.5.2-src-release/pom.xml and change the handle server version to 6.2. (Thanks go to Stuart Lewis of the The University of Auckland Library for the information on how tell maven to use version 6.2 of the handle jar :)&lt;br /&gt;&lt;br /&gt;nano /home/dspace/dspace-1.5.2-src-release/pom.xml&lt;br /&gt;&lt;br /&gt;[dependency]&lt;br /&gt;          [groupId]org.dspace[/groupId]&lt;br /&gt;          [artifactId]handle[/artifactId]&lt;br /&gt;&lt;br /&gt;          [version]&lt;strong&gt;&lt;strong&gt;6.2&lt;/strong&gt;&lt;/strong&gt;[/version]&lt;br /&gt;[/dependency]&lt;br /&gt;&lt;br /&gt;Rebuild DSpace completely from source&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.5.2-src-release/dspace&lt;br /&gt;mvn package&lt;br /&gt;cd /home/dspace/dspace-1.5.2-src-release/dspace/target/dspace-1.5.2-build.dir&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;Create the handle server configuration and start the server&lt;br /&gt;&lt;br /&gt;cd /home/dspace/bin&lt;br /&gt;./make-handle-config&lt;br /&gt;./start-handle-server&lt;br /&gt;&lt;br /&gt;The handle server was tested using the lynx text browser:&lt;br /&gt;&lt;br /&gt;lynx vle.bromley.ac.uk:8000&lt;br /&gt;&lt;br /&gt;Once the handle ports had been opened at firewall level all was well and handles correctly resolved with handle.net :)))&lt;br /&gt;&lt;br /&gt;For more information on testing the handle server and setting up service level scripts to start and stop the server please see the original blog posting below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Upgrading to DSpace 1.6.0 &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;5th April 2010 : Please note that this is a work in progress and I will log the process once it is complete&lt;br /&gt;&lt;br /&gt;Looking at all that is involved this upgrade is starting to look more like a summer holiday job!&lt;br /&gt;&lt;br /&gt;Please watch this space...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11179843-5651674900390705076?l=dspacebromley.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/5651674900390705076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/5651674900390705076'/><link rel='alternate' type='text/html' href='http://dspacebromley.blogspot.com/2009/04/dspace-installation-procedure-on-centos.html' title='DSpace 1.5.2 installation procedure on CentOS 5.3'/><author><name>clive</name><uri>http://www.blogger.com/profile/04834932543873462481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_q1s98Hsu7OI/SuLawcqhM5I/AAAAAAAAAAM/mv6_N0TRJtU/S220/f2.jpg'/></author></entry><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 -rf dspace-1.4-source.tar.gz&lt;br /&gt;cp custom/*.jar dspace-1.4-source/lib&lt;br /&gt;cp custom/dspace.cfg.vle dspace-1.4-source/config/dspace.cfg&lt;br /&gt;cp custom/*default.jsp /home/dspace/dspace-1.4-source/jsp/layout&lt;br /&gt;cp custom/styles.css.jsp /home/dspace/dspace-1.4-source/jsp&lt;br /&gt;cp custom/news*.html /home/dspace/dspace-1.4-source/config/&lt;br /&gt;cp custom/*.gif /home/dspace/dspace-1.4-source/jsp/image&lt;br /&gt;cp custom/default.license /home/dspace/dspace-1.4-source/config&lt;br /&gt;su - root&lt;br /&gt;&lt;br /&gt;As the root user recreate the dspace database:&lt;br /&gt;&lt;br /&gt;service postgresql start&lt;br /&gt;&lt;em&gt;Starting postgresql service:                               [  OK  ]&lt;/em&gt;&lt;br /&gt;su - postgres&lt;br /&gt;dropdb dspace&lt;br /&gt;&lt;em&gt;DROP DATABASE&lt;/em&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;exit&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;As user dspace rebuild dspace and copy over the wars:&lt;br /&gt;&lt;br /&gt;cd dspace-1.4-source/&lt;br /&gt;ant fresh_install&lt;br /&gt;rm -rf /home/dspace/tomcat/webapps/*dspace*&lt;br /&gt;rm -rf /home/dspace/tomcat/work/*&lt;br /&gt;dspace-1.4-source]$ cp /home/dspace/dspace-1.4-source/build/*.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;It was also necessary to amend the path in dsrun:&lt;br /&gt;&lt;br /&gt;pico /home/dspace/bin/dsrun&lt;br /&gt;&lt;br /&gt;Comment out the line:&lt;br /&gt;&lt;br /&gt;# java -Xmx256m -classpath $FULLPATH "$@"&lt;br /&gt;&lt;br /&gt;and add the following line at the end of the file:&lt;br /&gt;&lt;br /&gt;/usr/java/jdk/bin/java -mx2024m -classpath $FULLPATH "$@"&lt;br /&gt;&lt;br /&gt;As the root user stop postgresql and restore the original 1.3.2 database from backup:&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;service postgresql stop&lt;br /&gt;rsync -av --delete 10.200.0.15::backup/var/lib/pgsql/data /var/lib/pgsq&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 run the database upgrade script:&lt;br /&gt;&lt;br /&gt;cd dspace-1.4-source/&lt;br /&gt;psql -f etc/database_schema_13-14.sql dspace -h localhost&lt;br /&gt;su - root&lt;br /&gt;&lt;br /&gt;As the root user start tomcat:&lt;br /&gt;&lt;br /&gt;service tomcat start&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;exit&lt;br /&gt;&lt;br /&gt;As user dspace run the index-all and filter-media scripts:&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;/home/dspace/bin/filter-media&lt;br /&gt;&lt;em&gt;Applying Media Filters&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;&lt;br /&gt;As the root user restore the handle server from backup:&lt;br /&gt;&lt;br /&gt;rsync -av --delete 10.200.0.15::backup/home/dspace/handle-server /home/dspace&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;As user dspace start the handle server:&lt;br /&gt;&lt;br /&gt;/home/dspace/bin/start-handle-server&lt;br /&gt;su - root&lt;br /&gt;&lt;br /&gt;As the root user sort out the statistics:&lt;br /&gt;&lt;br /&gt;rsync -av --delete 10.200.0.15::backup/home/dspace/config/dstat.cfg  /home/dspace/custom&lt;br /&gt;rsync -av --delete 10.200.0.15::backup/home/dspace/bin/stat*  /home/dspace/bin&lt;br /&gt;rsync -av --delete 10.200.0.15::backup/home/dspace/reports  /home/dspace&lt;br /&gt;&lt;br /&gt;Hurray after about 20 hours of work our digital repository is now working with DSpace 1.4 :-)))&lt;br /&gt;&lt;br /&gt;http://vle.bromley.ac.uk/dspace/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Subsequently Stuart David Lewis pointed out that sort by title and sort by date were not working properly on our installation. Birong Ho kindly posted the following solution on the Tech List:&lt;br /&gt;&lt;br /&gt;Stop tomcat and as user dspace edit the following file:&lt;br /&gt;&lt;br /&gt;pico /home/dspace/dspace-1.4-source/src/org/dspace/browse/Browse.java&lt;br /&gt;&lt;br /&gt;Change the || to &amp;&amp; on line 922 of the code:&lt;br /&gt;&lt;br /&gt;  private static void sortResults(BrowseScope scope, List results)&lt;br /&gt;    {&lt;br /&gt;        // Currently we only sort ItemsByAuthor, Advisor, Subjects browses&lt;br /&gt;        // Modified by Clive on 16th August 2006 || changed to &amp;&amp;&lt;br /&gt;        if ((scope.getBrowseType() != ITEMS_BY_AUTHOR_BROWSE)&lt;br /&gt;                &lt;strong&gt;&amp;&amp;&lt;/strong&gt; (scope.getBrowseType() != ITEMS_BY_SUBJECT_BROWSE))&lt;br /&gt;        {&lt;br /&gt;            return;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Save the file, rebuild, copy over the wars and restart tomcat and all is well :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Subsequently I noticed that the statistics pages were headed "Edinburgh Research Archive" and not Bromley College. This was fixed as user dspace by copying over the dstat.cfg file and then re-running the statistics scripts:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.4-source/config/dstat.cfg /home/dspace/config&lt;br /&gt;&lt;br /&gt;cd /home/dspace/bin &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;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="twentytwo"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;21) Upgrading the handle server to version 6.2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This morning I have upgraded the handle server to version 6.2 - I was surprised by how easy it seemed. The documentation that comes with the download of the handle server 6.2 looked pretty daunting until I came across the following web page:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.handle.net/upgrade_6-2_DSpace.html"&gt;http://www.handle.net/upgrade_6-2_DSpace.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The process I followed is as shown below:&lt;br /&gt;&lt;br /&gt;As user dspace download the software from CNRI:&lt;br /&gt;&lt;br /&gt;lynx http://www.handle.net/hs-source/hdl6.2.tar.gz&lt;br /&gt;&lt;br /&gt;Unpack the tar.gz archive into the /home/dspace directory:&lt;br /&gt;&lt;br /&gt;tar -xzvf hdl6*&lt;br /&gt;&lt;br /&gt;Move into the new directory and copy over handle.jar:&lt;br /&gt;&lt;br /&gt;cd hdl6*&lt;br /&gt;cp handle.jar /home/dspace/dspace-1.4-source/lib&lt;br /&gt;&lt;br /&gt;As root stop tomcat and the existing 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;The next task is to rebuild dspace. I have created a simple shell script to do this for me. This script is run as user dspace and the source code is shown below:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.4-source&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg build_wars&lt;br /&gt;rm -rf /home/dspace/tomcat/webapps/*dspace*&lt;br /&gt;rm -rf /home/dspace/tomcat/work/*&lt;br /&gt;cp /home/dspace/dspace-1.4-source/build/dspace*.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;As the root user it is now just a matter of restarting 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;The new handle server seems to work well, is faster than the old one and provides access to DSpace via http rather than https, which suits us 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;a name="twentythree"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;23) Upgrading to DSpace 1.4.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After the problems I encountered upgrading from DSpace 1.3.2 to DSpace 1.4 I was apprehensive about trying the upgrade to 1.4.1 - However it worked really well first time :-)&lt;br /&gt;&lt;br /&gt;I followed the following upgrade procedure.&lt;br /&gt;&lt;br /&gt;Log into the server as user dspace&lt;br /&gt;&lt;br /&gt;pwd&lt;br /&gt;&lt;span style="font-style:italic;"&gt;/home/dspace&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Download dspace-1.4.1-source.tar.gz from SourceForge and unpack it in /home/dspace:&lt;br /&gt;&lt;br /&gt;lynx http://sourceforge.net/projects/dspace/&lt;br /&gt;tar -xzvf dspace-1.4.1-source.tar.gz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Change to the dspace-1.4.1-source directory. As root delete the old 1.4 webserver docs directory. Copy over the 1.4.1 docs directory to the webserver root directory. This makes the up-to-date DSpace 1.4.1 documentation readily available over the Web. Also stop Tomcat and the Handle servers at the same time. &lt;br /&gt;&lt;br /&gt;cd dspace-1.4.1-source&lt;br /&gt;su - root&lt;br /&gt;rm -rf /var/www/html/docs&lt;br /&gt;cp -pr docs /var/www/html&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;As user dspace copy the PostgreSQL and Handle server JAR files from the 1.4 source directory to the 1.4.1 source directory:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;cp dspace-1.4-source/lib/pg74.216.jdbc3.jar dspace-1.4.1-source/lib&lt;br /&gt;cp dspace-1.4-source/lib/handle.jar dspace-1.4.1-source/lib&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Copy over dspace.cfg from the 1.4 config directory to the 1.4.1 config directory:&lt;br /&gt;&lt;br /&gt;cd dspace-1.4.1-source/config&lt;br /&gt;cp /home/dspace/dspace-1.4-source/config/dspace.cfg .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Edit the freshly copied dspace.cfg and append the following to the end of the file:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;#### Multi-file HTML document/site settings #####&lt;br /&gt;#&lt;br /&gt;# When serving up composite HTML items, how deep can the request be for us to&lt;br /&gt;# serve up a file with the same name?&lt;br /&gt;#&lt;br /&gt;# e.g. if we receive a request for "foo/bar/index.html"&lt;br /&gt;# and we have a bitstream called just "index.html"&lt;br /&gt;# we will serve up that bitstream for the request if webui.html.max-depth-guess&lt;br /&gt;# is 2 or greater.  If webui.html.max-depth-guess is 1 or less, we would not&lt;br /&gt;# serve that bitstream, as the depth of the file is greater.&lt;br /&gt;#&lt;br /&gt;# If webui.html.max-depth-guess is zero, the request filename and path must&lt;br /&gt;# always exactly match the bitstream name.  Default value is 3.&lt;br /&gt;#&lt;br /&gt;webui.html.max-depth-guess = 3&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Save the dspace.cfg file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Copy over any customised JSP's and images from the 1.4 jsp directories to the 1.4.1 jsp directories:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.4.1-source/jsp&lt;br /&gt;cp /home/dspace/dspace-1.4-source/jsp/styles.css.jsp .&lt;br /&gt;cp /home/dspace/dspace-1.4-source/jsp/layout/*default.jsp layout&lt;br /&gt;cp /home/dspace/dspace-1.4-source/jsp/image/logo.gif image&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Build and install the updated DSpace 1.4.1 code from the dspace-1.4.1-source directory:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.4.1-source&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Buildfile: build.xml&lt;br /&gt;&lt;br /&gt;compile:&lt;br /&gt;   [mkdir] Created dir: /home/dspace/dspace-1.4.1-source/build/classes&lt;br /&gt;   [javac] Compiling 233 source files to&lt;br /&gt;/home/dspace/dspace-1.4.1-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 2 files to /home/dspace/bin&lt;br /&gt;    [copy] Copying 40 files to /home/dspace/lib&lt;br /&gt;- Show quoted text -&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.1-source/build&lt;br /&gt;   [mkdir] Created dir: /home/dspace/dspace-1.4.1-source/jsp/local&lt;br /&gt;   [mkdir] Created dir: /home/dspace/dspace-1.4.1-source/build/jsp&lt;br /&gt;    [copy] Copying 220 files to /home/dspace/dspace-1.4.1-source/build/jsp&lt;br /&gt;    [copy] Copying 1 file to /home/dspace/dspace-1.4.1-source/build/classes&lt;br /&gt;     [war] Building war: /home/dspace/dspace-1.4.1-source/build/dspace.war&lt;br /&gt;    [copy] Copying 1 file to /home/dspace/dspace-1.4.1-source/build&lt;br /&gt;     [war] Building war: /home/dspace/dspace-1.4.1-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: 18 seconds&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Magic :-)))&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 the new .war files:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.4.1-source/build/*.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As root start 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;exit&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As user dspace copy over the statistics configuration file dstat.cfg from the 1.4 config directory to the 1.4.1 config directory:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;cp dspace-1.4-source/config/dstat.cfg dspace-1.4.1-source/config/dstat.cfg&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Just to make sure all is well run the index-all, filter-media, and various statistics scripts as user dspace:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/bin&lt;br /&gt;./index-all&lt;br /&gt;./filter-media&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;Hurray DSpace 1.4.1 is now fully operational :-)))&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="twentyfour"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;23) Upgrading to DSpace 1.4.2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I followed the following upgrade procedure.&lt;br /&gt;&lt;br /&gt;Log into the server as user dspace&lt;br /&gt;&lt;br /&gt;pwd&lt;br /&gt;&lt;span style="font-style:italic;"&gt;/home/dspace&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Download dspace-1.4.2-source.tgz from SourceForge and unpack it in /home/dspace:&lt;br /&gt;&lt;br /&gt;wget http://downloads.sourceforge.net/dspace/dspace-1.4.2-source.tgz&lt;br /&gt;tar -xzvf dspace-1.4.2-source.tgz.1&lt;br /&gt;&lt;br /&gt;Change to the dspace-1.4.2-source directory. As root delete the old 1.4.1 webserver docs directory. Copy over the 1.4.2 docs directory to the webserver root directory. This makes the up-to-date DSpace 1.4.2 documentation readily available over the Web. Also stop Tomcat and the Handle servers at the same time. &lt;br /&gt;&lt;br /&gt;cd dspace-1.4.2-source&lt;br /&gt;su - root&lt;br /&gt;rm -rf /var/www/html/docs&lt;br /&gt;cp -pr docs /var/www/html&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;As user dspace copy the PostgreSQL and Handle server JAR files from the 1.4.1 source directory to the 1.4.2 source directory:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;cp dspace-1.4.1-source/lib/pg74.216.jdbc3.jar dspace-1.4.2-source/lib&lt;br /&gt;cp dspace-1.4.1-source/lib/handle.jar dspace-1.4.2-source/lib&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Copy over dspace.cfg from the 1.4.1 config directory to the 1.4.2 config directory:&lt;br /&gt;&lt;br /&gt;cd dspace-1.4.2-source/config&lt;br /&gt;cp /home/dspace/dspace-1.4.1-source/config/dspace.cfg .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Copy over any customised JSP's and images from the 1.4.1 jsp directories to the 1.4.2 jsp directories:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.4.2-source/jsp&lt;br /&gt;cp /home/dspace/dspace-1.4.1-source/jsp/styles.css.jsp .&lt;br /&gt;cp /home/dspace/dspace-1.4.1-source/jsp/layout/*default.jsp layout&lt;br /&gt;cp /home/dspace/dspace-1.4.1-source/jsp/image/logo.gif image&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(Maike Dulk kindly pointed out to me that copying over *default.jsp removed the new features present in the 1.4.2 jsp's.)&lt;br /&gt;&lt;br /&gt;Subsequently I customised the default jsp's that came with 1.4.2 and used them instead of the ones I'd copied over from 1.4.1. It proved necessary to amend the contents of the following files: header-default.jsp, footer-default.jsp and navbar-default.jsp. It was not necessary to edit location-bar.jsp and navbar-admin.jsp as they had not changed between 1.4.1 and 1.4.2 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Build and install the updated DSpace 1.4.2 code from the dspace-1.4.2-source directory:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.4.2-source&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Buildfile: build.xml&lt;/span&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 the new .war files:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.4.2-source/build/*.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As root start 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;exit&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As user dspace copy over the statistics configuration file dstat.cfg from the 1.4.1 config directory to the 1.4.2 config directory:&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;cp dspace-1.4.1-source/config/dstat.cfg dspace-1.4.2-source/config/dstat.cfg&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Just to make sure all is well run the index-all, filter-media, and various statistics scripts as user dspace:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/bin&lt;br /&gt;./index-all&lt;br /&gt;./filter-media&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;Hurray DSpace 1.4.2 is now fully operational :-)))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I subsequently noticed that the statistics pages were not updating properly. On correcting the paths to &lt;strong&gt;/home&lt;/strong&gt;/dspace/... in the following files in /home/dspace/bin and re-running the above statistics report generating scripts, as the dspace user, all was well :-)&lt;br /&gt;&lt;br /&gt;stat-monthly&lt;br /&gt;stat-general&lt;br /&gt;stat-report-monthly&lt;br /&gt;stat-report-general&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="twentyfive"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;25) Enabling RADIUS suthentication with DSpace 1.4.2&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;In order to further enable the College's use of DSpace as a Digital Respository holding both public and private collections the following considerations had to be taken into account:&lt;br /&gt;&lt;br /&gt;1)We needed RADIUS authentication to be able to use the same logins for staff and students to DSpace that we already used for the Moodle VLE. If students were not already registered with DSpace we wanted them to be automatically registered on their first login.&lt;br /&gt;&lt;br /&gt;2)We needed to restrict access to certain collections based on group membership. Consequently following successful authentication we wanted users to be added automatically to pre-existing DSpace groups.&lt;br /&gt;&lt;br /&gt;Marcelo Rodrigues of IRICUP- Reitoria da Universidade do Porto had already completed a RADIUS module for DSpace and it was &lt;em&gt;&lt;strong&gt;just&lt;/strong&gt;&lt;/em&gt; a question of getting it installed and authenticating against our Windows IAS server.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ec0076;"&gt;(Marcelo kindly provided me with invaluable support in translating the installation documentation from Portuguese, configuring the RADIUS module and interfacing it to Freeradius. I am also grateful to members of the Freeradius mailing list (especially Claudiu Filip), who provided me with invaluable help.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order to get round problems with the shared secret on the Windows IAS server and to support automatic addition of authorised users to groups in DSpace I decided to install a Freeradius proxy server between DSpace and the Windows IAS server. The authentication process is summarised below:&lt;br /&gt;&lt;br /&gt;DSpace &lt;-----&gt; Freeradius &lt;-----&gt; Windows IAS &lt;-----&gt; Windows AD&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is the procedure I followed to install the RADIUS authentication module:&lt;br /&gt;&lt;br /&gt;As user dspace download radius.tar.gz&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;tar -xzvf radius-dspace.tar.gz&lt;br /&gt;cd modulo-radius0.5_11_july/&lt;br /&gt;cd source_code&lt;br /&gt;cp -r src /home/dspace/dspace-1.4.2-source&lt;br /&gt;cp -r jsp /home/dspace/dspace-1.4.2-source&lt;br /&gt;cp -r lib /home/dspace/dspace-1.4.2-source&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note that in the code excerpts below the brackets have been changed to square [] purely for display purposes in this blog.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Edit the file /home/dspace/dspace-1.4.2-source/etc/dspace-web.xml and&lt;br /&gt;add the following lines at the end of the  [!-- Servlets --] section:&lt;br /&gt;&lt;br /&gt; [!-- Added by Clive Gould on 25th July 2007 --]&lt;br /&gt; [servlet]&lt;br /&gt;   [servlet-name]radius-login[/servlet-name]&lt;br /&gt;   [servlet-class]org.dspace.app.webui.servlet.RADIUSServlet[/servlet-class]&lt;br /&gt; [/servlet]&lt;br /&gt;&lt;br /&gt;Add the following lines at the end of the [!-- Servlet Mappings --] section:&lt;br /&gt;&lt;br /&gt; [!-- Added by Clive Gould on 25th July 2007 --]&lt;br /&gt; [servlet-mapping]&lt;br /&gt;   [servlet-name]radius-login[/servlet-name]&lt;br /&gt;   [url-pattern]/radius-login[/url-pattern]&lt;br /&gt; [/servlet-mapping]&lt;br /&gt;&lt;br /&gt;Save the file&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Add the following lines, suitably customised, to the end of the&lt;br /&gt;&lt;strong&gt;/home/dspace/config/dspace.cfg&lt;/strong&gt; file:&lt;br /&gt;&lt;br /&gt;#to enable Radius authentication&lt;br /&gt;radius.enable=true&lt;br /&gt;&lt;br /&gt;#Radius server IP&lt;br /&gt;radius.server_ip = 127.0.0.1&lt;br /&gt;&lt;br /&gt;#Secret key of the radius server&lt;br /&gt;radius.shared_key = dspaceclientkeygoeshere&lt;br /&gt;&lt;br /&gt;# Port used by the radius server (authentication port and accounting port)&lt;br /&gt;radius.authport = 1812&lt;br /&gt;radius.actport = 1813&lt;br /&gt;&lt;br /&gt;# Set to true to enable automatic addition of validated new users to DSpace groups&lt;br /&gt;group.add.auto = true&lt;br /&gt;&lt;br /&gt;# Set to true to enable automatic addition of validated existing users to groups &lt;br /&gt;# Note: Setting this to false speeds up the login process &lt;br /&gt;group.update_known_users = false&lt;br /&gt;&lt;br /&gt;Save the file&lt;br /&gt;&lt;br /&gt;Depending on the Reply-Message sent by the Freeradius server after user authentication, users can be automatically be added or removed from pre-existing groups in DSpace. The group.add.auto and the group.update_known_users parameters control how automatic group membership is handled. By default these parameters are disabled.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Add the appropriate language settings for the RADIUS module to DSpace: &lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.4.2-source/config/language-packs/&lt;br /&gt;pico Messages.properties &lt;br /&gt;&lt;br /&gt;Append the following lines to the end the file:&lt;br /&gt;&lt;br /&gt;-------------------------------------------------&lt;br /&gt;jsp.components.radius-form.newuser = New user? Click here to register.&lt;br /&gt;jsp.components.radius-form.enter = Please enter your username and&lt;br /&gt;password into the form below.&lt;br /&gt;jsp.components.radius-form.login.button = Log In&lt;br /&gt;jsp.login.radius-incorrect.title = Log In&lt;br /&gt;jsp.login.radius-incorrect.heading = Log In to DSpace&lt;br /&gt;jsp.login.radius-incorrect.errormsg = The username and password you&lt;br /&gt;supplied were not valid.  Please try again.&lt;br /&gt;jsp.login.radius.title = Log In&lt;br /&gt;jsp.login.radius.heading = Log In to DSpace&lt;br /&gt;------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To make rebuilding DSpace easier, create an executable shell script called css_1.4 in /home/dspace containing the following lines:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.4.2-source&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg build_wars&lt;br /&gt;rm -rf /home/dspace/tomcat/webapps/*dspace*&lt;br /&gt;rm -rf /home/dspace/tomcat/work/*&lt;br /&gt;cp /home/dspace/dspace-1.4.2-source/build/dspace*.war /home/dspace/tomcat/webapps&lt;br /&gt;&lt;br /&gt;Save the file&lt;br /&gt;&lt;br /&gt;Become the root user.&lt;br /&gt;&lt;br /&gt;Create an executable shell script called reb in /home/root containing&lt;br /&gt;the folowing lines:&lt;br /&gt;&lt;br /&gt;# This script is intended to be run as root&lt;br /&gt;# It stops tomcat, recompiles DSpace and copies over the new .war files,&lt;br /&gt;before restarting tomcat&lt;br /&gt;&lt;br /&gt;service httpd stop&lt;br /&gt;sleep 2&lt;br /&gt;service tomcat stop&lt;br /&gt;sleep 2&lt;br /&gt;sudo -u dspace /home/dspace/css_1.4&lt;br /&gt;sleep 2&lt;br /&gt;service tomcat start&lt;br /&gt;sleep 2&lt;br /&gt;service httpd start&lt;br /&gt;&lt;br /&gt;Save the file&lt;br /&gt;&lt;br /&gt;Run the file as illustrated below to rebuild DSpace:&lt;br /&gt;&lt;br /&gt;[root@vle bin]# reb&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;br /&gt;Buildfile: build.xml&lt;br /&gt;&lt;br /&gt;compile:&lt;br /&gt;   [javac] Compiling 1 source file to&lt;br /&gt;/home/dspace/dspace-1.4.2-source/build/classes&lt;br /&gt;&lt;br /&gt;build_wars:&lt;br /&gt;    [copy] Copying 1 file to /home/dspace/dspace-1.4.2-source/build&lt;br /&gt;    [copy] Copying 3 files to /home/dspace/dspace-1.4.2-source/build/jsp&lt;br /&gt;     [war] Building war: /home/dspace/dspace-1.4.2-source/build/dspace.war&lt;br /&gt;     [war] Building war: /home/dspace/dspace-1.4.2-source/build/dspace-oai.war&lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 19 seconds&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;&lt;br /&gt;Providing the Freeradius server is configured and running it is now possible to login to DSpace using RADIUS authentication from the following URL:&lt;br /&gt;&lt;br /&gt;http://vle.bromley.ac.uk/dspace/radius-login&lt;br /&gt;&lt;br /&gt;It is also possible to login to DSpace using the existing manual authentication from either of the following URL's: &lt;br /&gt;&lt;br /&gt;http://vle.bromley.ac.uk/dspace/password-login &lt;br /&gt;http://vle.bromley.ac.uk/dspace/dspace-admin&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At this point I wanted to force all users to login using RADIUS authentication. This involved logging on as an authenticated radius user, which created an account on DSpace for me. I then logged out and logged in as administrator using manual login and added my new radius authenticated user account to the DSpace administrators group. I then edited the following file to set radius authentication as the default login:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.4.2-source/src/org/dspace/eperson/&lt;br /&gt;pico PasswordAuthentication.java&lt;br /&gt;&lt;br /&gt;Change the following section to enable radius log by default:&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Returns URL of password-login servlet.&lt;br /&gt;     *&lt;br /&gt;     * @param context&lt;br /&gt;     *  DSpace context, will be modified (EPerson set) upon success.&lt;br /&gt;     *&lt;br /&gt;     * @param request&lt;br /&gt;     *  The HTTP request that started this operation, or null if not applicable.&lt;br /&gt;     *&lt;br /&gt;     * @param response&lt;br /&gt;     *  The HTTP response from the servlet method.&lt;br /&gt;     *&lt;br /&gt;     * @return fully-qualified URL&lt;br /&gt;     */&lt;br /&gt;    public String loginPageURL(Context context,&lt;br /&gt;                            HttpServletRequest request,&lt;br /&gt;                            HttpServletResponse response)&lt;br /&gt;    {&lt;br /&gt;        return response.encodeRedirectURL(request.getContextPath() +&lt;br /&gt;                                          "/&lt;strong&gt;radius-login&lt;/strong&gt;");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;On rebuilding and restarting DSpace RADIUS became the default login method.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There was a lot more customisation work that had to be done behind the scenes to get RADIUS login to work exactly as we needed it. This involved installing the latest version of the Freeradius server and configuring it to work as a proxy server with  both staff and student realms in our Active Directory database. Additionally, because users are only required to logon using their standard College username it was also necessary to modify the source code of the RADIUS module for DSpace so that the domain name suffix was automatically added to the username to form the full email address for DSpace to use for registration. At the same time a different local domain name suffix had to be added to the username for Freeradius and AD authentication purposes. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Customising the RADIUS module&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The modifications made to RADIUSServlet.java are shown below:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.4.2-source/src/org/dspace/app/webui/servlet/&lt;br /&gt;pico RADIUSServlet.java&lt;br /&gt;&lt;br /&gt;Added the following lines shown in context in bold:&lt;br /&gt;&lt;br /&gt;  // Process email and password fields&lt;br /&gt;        String netid = request.getParameter("login_netid");&lt;br /&gt;        String password = request.getParameter("login_password");&lt;br /&gt;        EPerson eperson;&lt;br /&gt;&lt;br /&gt;        &lt;strong&gt;// Next eight lines added by Clive on 050807&lt;br /&gt;        String radnetid;&lt;br /&gt;        if(netid.charAt(0)=='1') {&lt;br /&gt;                netid = netid + "@learner.bromley.ac.uk";&lt;br /&gt;                radnetid = netid.replaceAll("leaner.bromley.ac.uk", "learn.college.local");&lt;br /&gt;        } else {&lt;br /&gt;                netid = netid + "@teacher.bromley.ac.uk";&lt;br /&gt;                radnetid = netid.replaceAll("teacher.bromley.ac.uk", "teach.college.local");&lt;br /&gt;        }&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also modified the following line:&lt;br /&gt;&lt;br /&gt;AttributeList attrs = new AttributeList();&lt;br /&gt;            // changed from netid to radnetid by Clive on 020807&lt;br /&gt;            attrs.add(new Attr_UserName(&lt;strong&gt;radnetid&lt;/strong&gt;));&lt;br /&gt;            //      attrs.add(new Attr_NASPortType(Attr_NASPortType.IAPP));&lt;br /&gt;            //attrs.add(new Attr_NASPort(new Long(1)));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In our case we only needed mschapv2 authentication so following methods were  commented out to speed up the login process: &lt;br /&gt;&lt;br /&gt;/**     //EAP-TTLS&lt;br /&gt;*       RadiusResponse eapttls=try_auth_method(rc,attrs,"eap-ttls:trustAll=true",context,password);&lt;br /&gt;*       if (eapttls!=null)&lt;br /&gt;*           {&lt;br /&gt;*               log.info(LogManager.getHeader(context,"[RADIUSServlet] Authentication:"," handling EAP-TTLS authentication"));&lt;br /&gt;*               return eapttls;&lt;br /&gt;*           }&lt;br /&gt;*&lt;br /&gt;*       //MSCHAP&lt;br /&gt;*       RadiusResponse mschap=try_auth_method(rc,attrs,"mschap",context,password);&lt;br /&gt;*       if (mschap!=null)&lt;br /&gt;*           {&lt;br /&gt;*               log.info(LogManager.getHeader(context,"[RADIUSServlet] Authentication:"," handling MSCHAP authentication"));&lt;br /&gt;*               return mschap;&lt;br /&gt;*           }&lt;br /&gt;*&lt;br /&gt;*       //MSCHAPV1&lt;br /&gt;*       RadiusResponse mschapv1=try_auth_method(rc,attrs,"mschapv1",context,password);&lt;br /&gt;*       if (mschapv1!=null)&lt;br /&gt;*           {&lt;br /&gt;*               log.info(LogManager.getHeader(context,"[RADIUSServlet] Authentication:"," handling MSCHAPV1 authentication"));&lt;br /&gt;*               return mschapv1;&lt;br /&gt;*           }&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;        //MSCHAPV2&lt;br /&gt;        RadiusResponse mschapv2=try_auth_method(rc,attrs,"mschapv2",context,password);&lt;br /&gt;        if (mschapv2!=null)&lt;br /&gt;            {&lt;br /&gt;                log.info(LogManager.getHeader(context,"[RADIUSServlet] Authentication:"," handling MSCHAPV2 authentication"));&lt;br /&gt;                return mschapv2;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;/**     //CHAP&lt;br /&gt;*       RadiusResponse chap=try_auth_method(rc,attrs,"chap",context,password);&lt;br /&gt;*       if (chap!=null)&lt;br /&gt;*           {&lt;br /&gt;*               log.info(LogManager.getHeader(context,"[RADIUSServlet] Authentication:"," handling CHAP authentication"));&lt;br /&gt;*               return chap;&lt;br /&gt;*           }&lt;br /&gt;*&lt;br /&gt;*       //EAP-MD5&lt;br /&gt;*       RadiusResponse eapmd5=try_auth_method(rc,attrs,"eap-md5",context,password);&lt;br /&gt;*       if (eapmd5!=null)&lt;br /&gt;*           {&lt;br /&gt;*               log.info(LogManager.getHeader(context,"[RADIUSServlet] Authentication:"," handling EAP-MD5 authentication"));&lt;br /&gt;*               return eapmd5;&lt;br /&gt;*           }&lt;br /&gt;*&lt;br /&gt;*       //PAP&lt;br /&gt;*       RadiusResponse pap=try_auth_method(rc,attrs,"pap",context,password);&lt;br /&gt;*       if (pap!=null)&lt;br /&gt;*           {&lt;br /&gt;*               log.info(LogManager.getHeader(context,"[RADIUSServlet] Authentication:"," handling PAP authentication"));&lt;br /&gt;*               return pap;&lt;br /&gt;*           }&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;Saved the file and rebuilt DSpace.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Customising the Freeradius Server&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;There were also various configuration options required with the proxying Freeradius server including the addition of the appropriate entries in the users file so that  different Reply-Message (s) were sent for staff and student logins. This was necessary so that DSpace added new users to the appropriate groups based on whether they were staff of students.  &lt;br /&gt;&lt;br /&gt;The default configuration was used with the radiusd.conf file with the exception that the following lines were commented out to speed up the authentication process:&lt;br /&gt;&lt;br /&gt;authenticate {&lt;br /&gt;#       Auth-Type PAP {&lt;br /&gt;#               pap&lt;br /&gt;#       }&lt;br /&gt;#       Auth-Type CHAP {&lt;br /&gt;#               chap&lt;br /&gt;#       }&lt;br /&gt;#       Auth-Type MS-CHAP {&lt;br /&gt;#               mschap&lt;br /&gt;#       }&lt;br /&gt;        unix&lt;br /&gt;#       eap&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;The contents of the clients.conf file containing connection settings for the DSpace client is shown below:&lt;br /&gt;&lt;br /&gt;cd usr/local/etc/raddb&lt;br /&gt;cat clients.conf&lt;br /&gt;client 127.0.0.1 {&lt;br /&gt;        secret          = "dspaceclientkeygoeshere"&lt;br /&gt;        shortname       = vle&lt;br /&gt;        nastype         = other&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The contents of the proxy.conf file containing connection settings for the Windows IAS proxy is shown below:&lt;br /&gt;&lt;br /&gt;proxy server {&lt;br /&gt;        synchronous = no&lt;br /&gt;        retry_delay = 5&lt;br /&gt;        retry_count = 3&lt;br /&gt;        dead_time = 120&lt;br /&gt;        default_fallback = yes&lt;br /&gt;        post_proxy_authorize = yes&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Added by Clive on 26th July 2007&lt;br /&gt;realm teach.college.local {&lt;br /&gt;        type = radius&lt;br /&gt;        authhost = 10.200.0.2:1812&lt;br /&gt;        accthost = 10.200.0.2:1813&lt;br /&gt;        secret = "the\\$hared$ecretforIASgoeshere"&lt;br /&gt;        nostrip&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Added by Clive on 3rd August 2007&lt;br /&gt;realm learn.college.local {&lt;br /&gt;        type = radius&lt;br /&gt;        authhost = 10.200.0.2:1812&lt;br /&gt;        accthost = 10.200.0.2:1813&lt;br /&gt;        secret = "the\\$hared$ecretforIASgoeshere"&lt;br /&gt;        nostrip&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;realm LOCAL {&lt;br /&gt;        type            = radius&lt;br /&gt;        authhost        = LOCAL&lt;br /&gt;        accthost        = LOCAL&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;        nostrip&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Note that in the preset shared secret for the IAS server there were over 22 characters including unusual characters such as $ and also a single \&lt;br /&gt;&lt;br /&gt;It took a long time to find out that in order to get proxying to work it was necessary to double quote the shared secret in proxy.conf and escape the backslash using a second backslash \\&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The contents of the users file, which contains details of the Reply-Message for staff and students is shown below:&lt;br /&gt;&lt;br /&gt;DEFAULT Auth-Type = System&lt;br /&gt;        Fall-Through = 1&lt;br /&gt;&lt;br /&gt;DEFAULT Service-Type == Framed-User&lt;br /&gt;        Framed-IP-Address = 255.255.255.254,&lt;br /&gt;        Framed-MTU = 576,&lt;br /&gt;        Service-Type = Framed-User,&lt;br /&gt;        Fall-Through = Yes&lt;br /&gt;&lt;br /&gt;# Next three lines added by Clive on 03/08/07 so that DSpace automatically adds staff on login to the STAFF group&lt;br /&gt;DEFAULT Suffix == "teach.college.local", Auth-Type = System&lt;br /&gt;        Reply-Message = "Group_STAFF:yes;",&lt;br /&gt;        Fall-Through = Yes&lt;br /&gt;&lt;br /&gt;# Next three lines added by Clive on 03/08/07 so that DSpace automatically adds students on login to the STUDENT group&lt;br /&gt;DEFAULT Suffix == "learn.college.local", Auth-Type = System&lt;br /&gt;        Reply-Message = "Group_STUDENT:yes;",&lt;br /&gt;        Fall-Through = Yes&lt;br /&gt;&lt;br /&gt;DEFAULT Framed-Protocol == PPP&lt;br /&gt;        Framed-Protocol = PPP,&lt;br /&gt;        Framed-Compression = Van-Jacobson-TCP-IP&lt;br /&gt;&lt;br /&gt;DEFAULT Hint == "CSLIP"&lt;br /&gt;        Framed-Protocol = SLIP,&lt;br /&gt;        Framed-Compression = Van-Jacobson-TCP-IP&lt;br /&gt;&lt;br /&gt;DEFAULT Hint == "SLIP"&lt;br /&gt;        Framed-Protocol = SLIP&lt;br /&gt;&lt;br /&gt;The above files were saved and the radius server restarted so that the changes took effect.&lt;br /&gt;&lt;br /&gt;I also had to modify the startup script rc.local so that Freeradius started on system boot.&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;br /&gt;&lt;a name="twentysix"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;26) Using a commercial host specific SSL certificate&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The College has now started using machine specific wildcard SSL certificates provided by IKERNA and GlobalSign. I have replaced the wildcard certificate used above with a host specific certificate. The process I used is outlined below:&lt;br /&gt;&lt;br /&gt;Create a folder off /root called Certwork_Sept_07 and change into this folder.&lt;br /&gt;md /root/Certwork_Sept_07&lt;br /&gt;cd /root/Certwork_Sept_07&lt;br /&gt;&lt;br /&gt;Create a certificate signing request and send it off to IKERNA:&lt;br /&gt;&lt;br /&gt;openssl req -new -nodes -keyout myserver.key -out myserver.csr&lt;br /&gt;Generating a 1024 bit RSA private key&lt;br /&gt;.................++++++&lt;br /&gt;...++++++&lt;br /&gt;writing new private key to 'myserver.key'&lt;br /&gt;-----&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]:GB&lt;br /&gt;State or Province Name (full name) [Berkshire]:Kent&lt;br /&gt;Locality Name (eg, city) [Newbury]:Bromley&lt;br /&gt;Organization Name (eg, company) [My Company Ltd]:Bromley College&lt;br /&gt;Organizational Unit Name (eg, section) []:School of ICT&lt;br /&gt;Common Name (eg, your name or your server's hostname) []:vle.bromley.ac.uk&lt;br /&gt;Email Address []:root@vle.bromley.ac.uk&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 []:Bromley College&lt;br /&gt;&lt;br /&gt;Backup myserver.csr and myserver.key and keep them in a &lt;strong&gt;very&lt;/strong&gt; safe place.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When the reply comes back from IKERNA save the .pem attachment from the Globalsign certificate email in the Certwork_Sept_07 folder. As root enter the following commands:&lt;br /&gt;&lt;br /&gt;cd /root/Certwork_Sept_07&lt;br /&gt;cp cert_1616716307.pem myserver.crt&lt;br /&gt;openssl rsa -in myserver.key -out myserver.key.insecure&lt;br /&gt;cp myserver.key.insecure /etc/httpd/conf/ssl.key/server.key&lt;br /&gt;cp myserver.csr /etc/httpd/conf/ssl.csr/server.csr&lt;br /&gt;cp myserver.crt /etc/httpd/conf/ssl.crt/server.crt&lt;br /&gt;service httpd restart&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="twentyseven"&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;27) Upgrading to DSpace 1.5.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have just upgraded our test server to DSpace 1.5.0 and summarise the process I used below. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DSpace 1.5.0 will not be deployed on our production server for some time as despite a lot of help from Rui Ramos, I have to date, been unable to get RADIUS authentication to work with DSpace 1.5.0&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;### DSpace 1.4.2 to 1.5.0 upgrade procedure&lt;br /&gt;&lt;br /&gt;## In terms of the Web based upgrade documentation&lt;br /&gt;&lt;br /&gt;#[dspace-source] is /home/dspace/dspace-1.5.0-release/&lt;br /&gt;#[dspace] is /home/dspace&lt;br /&gt;&lt;br /&gt;# The build directory is&lt;br /&gt;&lt;br /&gt;# /home/dspace/dspace-1.5.0-release/dspace/target/dspace-1.5.0-build.dir/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;## Login as user dspace:&lt;br /&gt;# download dspace 1.5.0 default release and untar it&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;## Login as user root &lt;br /&gt;# copy dspace installation documentation into the Webserver root&lt;br /&gt;&lt;br /&gt;su - root&lt;br /&gt;cp -pr docs /var/www/html/docs_1.5&lt;br /&gt;&lt;br /&gt;# install and test maven&lt;br /&gt;&lt;br /&gt;cd /usr/local&lt;br /&gt;mkdir apache-maven&lt;br /&gt;cd apache-maven&lt;br /&gt;lynx http://maven.apache.org/download.html&lt;br /&gt;tar -xzvf apache-maven-2.0.9-bin.tar.gz&lt;br /&gt;&lt;br /&gt;pico /etc/profile&lt;br /&gt;# append the following lines:&lt;br /&gt;&lt;br /&gt;export M2_HOME=/usr/local/apache-maven/apache-maven-2.0.9&lt;br /&gt;export M2=$M2_HOME/bin&lt;br /&gt;export PATH=${PATH}:$M2&lt;br /&gt;# save /etc/profile&lt;br /&gt;&lt;br /&gt;# Put the testvle server into upgrade mode and stop tomcat and handle servers:&lt;br /&gt;&lt;br /&gt;cd /root/bin&lt;br /&gt;./backup_to_upgrade&lt;br /&gt;service httpd stop&lt;br /&gt;service tomcat stop&lt;br /&gt;service handle stop&lt;br /&gt;logout&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;## Login as user dspace:&lt;br /&gt;&lt;br /&gt;# compile dspace&lt;br /&gt;&lt;br /&gt;mvn --version&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.5.0-release/dspace&lt;br /&gt;mvn package&lt;br /&gt;&lt;br /&gt;# Edit the /home/dspace/dspace-1.5.0-release/dspace/config/dspace.cfg copied by rysnc from the vle server to customise it for the testvle server.&lt;br /&gt;&lt;br /&gt;sed s/"vle.bromley"/"testvle.bromley"/g /home/dspace/dspace-1.5.0-release/dspace/config/dspace.cfg &gt; &lt;br /&gt;&lt;br /&gt;/home/dspace/config/dspace.cfg&lt;br /&gt;&lt;br /&gt;# Copy over some new required files:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.0-release/dspace/config/xmlui.xconf /home/dspace/config/xmlui.xconf&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.0-release/dspace/config/item-submission.xml /home/dspace/config/item-submission.xml&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.0-release/dspace/config/item-submission.dtd /home/dspace/config/item-submission.dtd&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.0-release/dspace/config/input-forms.xml /home/dspace/config/input-forms.xml&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.0-release/dspace/config/input-forms.dtd /home/dspace/config/inputforms.dtd&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.0-release/dspace/config/crosswalks/sword-swap-ingest.xsl /home/dspace/config/crosswalks/sword-swap-ingest.xsl&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.0-release/dspace/config/crosswalks/xhtml-head-item.properties /home/dspace/config/crosswalks/xhtml-head-item.properties&lt;br /&gt;&lt;br /&gt;# Update the database&lt;br /&gt;&lt;br /&gt;psql -f /home/dspace/dspace-1.5.0-release/dspace/etc/database_schema_14-15.sql dspace -h localhost&lt;br /&gt;&lt;br /&gt;# Apply any JSP customisations here. &lt;br /&gt;# Probably best to start again with the new files that come with DSpace 1.5.0&lt;br /&gt;# &lt;br /&gt;&lt;br /&gt;# Edit dsrun&lt;br /&gt;cd /home/dspace/dspace-1.5.0-release/dspace/target/dspace-1.5.0-build.dir/bin&lt;br /&gt;pico /home/dspace/bin/dsrun and make the following amendments:&lt;br /&gt;&lt;br /&gt;# Now invoke Java&lt;br /&gt;# Modified by Clive Gould on 11th August 2008&lt;br /&gt;# java -Xmx256m -classpath $FULLPATH "$@"&lt;br /&gt;/usr/java/jdk/bin/java -mx2024m -classpath $FULLPATH "$@"&lt;br /&gt;&lt;br /&gt;Save dsrun&lt;br /&gt;&lt;br /&gt;# Build DSpace&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.5.0-release/dspace/target/dspace-1.5.0-build.dir/&lt;br /&gt;ant -Dconfig=/home/dspace/config/dspace.cfg update&lt;br /&gt;&lt;br /&gt;# Rebuild browse and search indexes &lt;br /&gt;./home/dspace/bin/index-init&lt;br /&gt;&lt;br /&gt;# Update statistics scripts &lt;br /&gt;&lt;br /&gt;Copy the new stats scripts:&lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.0-release/dspace/target/dspace-1.5.0-build.dir/bin/stat* /home/dspace/bin/&lt;br /&gt;&lt;br /&gt;# Then edit your statistics configuration file with the start details. &lt;br /&gt;# The statistics scripts have been rewritten for DSpace 1.5. First, make a note of the dates you have specified in your statistics scripts&lt;br /&gt;# for the statistics to run from. You will find these in /home/dspace/bin/stat-initial, as $start_year and $start_month. &lt;br /&gt;&lt;br /&gt;cp /home/dspace/dspace-1.5.0-release/dspace/config/dstat.cfg /home/dspace/config/dstat.cfg&lt;br /&gt;&lt;br /&gt;pico /home/dspace/conf/dstat.cfg&lt;br /&gt;&lt;br /&gt;# and add the following replacing '2005' and '1' as with the values you noted down.&lt;br /&gt;&lt;br /&gt;# the year and month to start creating reports from&lt;br /&gt;# - year as four digits (e.g. 2005)&lt;br /&gt;# - month as a number (e.g. January is 1, December is 12)&lt;br /&gt;start.year = 2005&lt;br /&gt;start.month = 1&lt;br /&gt;&lt;br /&gt;# Upgrade Tomcat to 5.5.26 as the existing version of 5.5.9 gives internal server errors with DSpace 1.5&lt;br /&gt;&lt;br /&gt;cd /home/dspace&lt;br /&gt;lynx http://tomcat.apache.org/download-55.cgi#5.5.26&lt;br /&gt;tar -xzvf apache-tomcat-5.5.26.tar.gz&lt;br /&gt;mv tomcat tomcat5.5.9&lt;br /&gt;mv apache-tomcat-5.5.26 tomcat&lt;br /&gt;cd /home/dspace/dspace-1.5.0-release/dspace/target/dspace-1.5.0-build.dir/webapps&lt;br /&gt;&lt;br /&gt;# Copy over the new webapps directories:&lt;br /&gt;&lt;br /&gt;cd /home/dspace/dspace-1.5.0-release/dspace/target/dspace-1.5.0-build.dir/webapps&lt;br /&gt;cp -pr jspui /home/dspace/tomcat/webapps/dspace&lt;br /&gt;cp -pr oai /home/dspace/tomcat/webapps/dspace-oai&lt;br /&gt;&lt;br /&gt;# Edit the following files to correct the path to dspace.cfg:&lt;br /&gt;&lt;br /&gt;/home/dspace/tomcat/webapps/dspace/WEB-INF/web.xml&lt;br /&gt;/home/dspace/tomcat/webapps/dspace-oai/WEB-INF/web.xml&lt;br /&gt;&lt;br /&gt;logout&lt;br /&gt;&lt;br /&gt;## Login as root&lt;br /&gt;&lt;br /&gt;service tomcat start&lt;br /&gt;service handle start&lt;br /&gt;service httpd start&lt;br /&gt;&lt;br /&gt;# Hurray DSpace 1.5.0 finally works on our test server :)&lt;br /&gt;&lt;br /&gt;&lt;a href="#menu"&gt;Return to Menu&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11179843-110975391994919155?l=dspacebromley.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/110975391994919155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11179843/posts/default/110975391994919155'/><link rel='alternate' type='text/html' href='http://dspacebromley.blogspot.com/2005/03/dspace-installation-procedure-on.html' title='DSpace installation procedure on Fedora Core 3 and CentOS 4 (RHEL 4)'/><author><name>clive</name><uri>http://www.blogger.com/profile/04834932543873462481</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_q1s98Hsu7OI/SuLawcqhM5I/AAAAAAAAAAM/mv6_N0TRJtU/S220/f2.jpg'/></author></entry></feed>
