- Create user xnat to run Tomcat service:
sudo useradd -u 6667 -d /opt/xnat -s /bin/bash xnat
- Install PostgreSQL:
sudo apt-get install postgresql
then edit /etc/postgresql/9.5/main/postgresql.conf file:standard_conforming_strings=off
, and restart PostgreSQL server:sudo /etc/init.d/postgresql restart
- Install Java 7
Current XNAT (v1.6.5) requires Java 7. Java 8 will NOT work. Type the commands below to install Java 7:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer oracle-java7-set-default
- Install Tomcat 7
Current XNAT v1.6.5 requires Tomcat7. However, DO NOT install tomcat7 from Ubuntu Repository. It was compiled with Java 8 and will cause this problem. Instead, you should download from offical Tomcat web site. Type the command below to install tomcat:
cd /opt
sudo wget http://apache.mirror.serversaustralia.com.au/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.tar.gz
sudo tar zxvf apache-tomcat-7.0.70.tar.gz
sudo ln -s /opt/apache-tomcat-7.0.70 /opt/tomcat7
sudo chown -R xnat:xnat /opt/apache-tomcat-7.0.70
sudo chown -R xnat:xnat /opt/tomcat7
then set startup scripts permissions:sudo chmod +x /opt/tomcat7/bin/startup.sh
sudo chmod +x /opt/tomcat7/bin/shutdown.sh
and you need to set JAVA_OPTS in /opt/tomcat7/bin/catalina.sh and insert the following line at the start: JAVA_OPTS="-XX:MaxPermSize=1024m -Xmx8192m"
NOTE: you need to set MaxPermSize and MaxHeapSize(Xmx) in JAVA_OPTS. Otherwise, OutOfMemoryError will occur when you load XNAT web app.
- Install Maven:
sudo apt-get install maven
- Download and extract XNAT 1.6.5:
cd /opt
sudo wget ftp://ftp.nrg.wustl.edu/pub/xnat/xnat-1.6.5.tar.gz
sudo tar zxvf xnat-1.6.5.tar.gz
sudo chown -R xnat:xnat /opt/xnat
- Prepare XNAT directories:
sudo mkdir /data/xnat/archive
sudo mkdir /data/xnat/prearchive
sudo mkdir /data/xnat/ftp
sudo mkdir /data/xnat/cache
sudo mkdir /data/xnat/build
NOTE: '/data/xnat' should be the mount point for large storage for XNAT.
- Set up environment variables for xnat user, by editting .bashrc file:
sudo su xnat
vi ~/.bashrc
add the following: # JAVA
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export PATH=$JAVA_HOME/bin:$PATH
# Tomcat
export TOMCAT_HOME=/opt/tomcat7
export PATH=$PATH:$TOMCAT_HOME/bin
# XNAT
export XNAT_HOME=/opt/xnat
export PATH=$PATH:$XNAT_HOME/bin
- Create XNAT database user xnat01:
sudo su postgres
createuser -U postgres -S -D -R -P xnat01
Note: set and remember the password for db user xnat01, you will need it in the XNAT build.properties file.
- Create XNAT database:
sudo su postgres
createdb -U postgres -O xnat01 xnat
- Edit /opt/xnat/build.properties:
su xnat
cd /opt/xnat
cp build.properties.sample build.properties
vi build.properties
and the content should be like below:maven.appserver.home = /opt/tomcat7
xnat.site.title=XNAT
xdat.project.name=xnat
xdat.project.db.name=xnat
xdat.project.db.driver=org.postgresql.Driver
xdat.project.db.connection.string=jdbc:postgresql://localhost/xnat
xdat.project.db.user=xnat01
xdat.project.db.password=XXXXXXX
xdat.archive.location=/data/xnat/archive
xdat.prearchive.location=/data/xnat/prearchive
xdat.cache.location=/data/xnat/cache
xdat.ftp.location=/data/xnat/ftp
xdat.build.location=/data/xnat/build
xdat.mail.server=mail.yourdomain.org
xdat.mail.port=25
xdat.mail.protocol=smtp
xdat.mail.username=
xdat.mail.password=
xdat.mail.admin=xnat-admin@yourdomain.org
xdat.url=http://192.168.100.12:8080/xnat
xdat.require_login=true
xdat.enable_new_registrations=false
xdat.security.channel=any
xdat.enable_csrf_token=true
Note: xdat.url need to be set to the public ip or address instead of localhost if you want the XNAT server to be accessed from other computers.
- Edit project.properties file. and replace the 'maven.repo.remote' line with
maven.repo.remote=https://nrgxnat.artifactoryonline.com/nrgxnat/xnat-maven1
NOTE: You need to do this because the offical XNAT maven repository is down.
- Run setup.sh script to build:
sudo su xnat
cd /opt/xnat
bin/setup.sh
- Create Database tables & views:
cd /opt/xnat
psql xnat01 -h localhost -d xnat -f deployments/xnat/sql/xnat.sql
Note: you need supply the password for db user xnat01.
- Store initial security settings:
sudo su xnat
cd /opt/xnat/deployments/xnat
StoreXML -project xnat -l security/security.xml -allowDataDeletion true
- Store Example Custom Variable Sets:
sudo su xnat
cd /opt/xnat/deployments/xnat
StoreXML -dir ./work/field_groups -u admin -p admin -allowDataDeletion true
- Deploy the web app
sudo su xnat
cd /opt/xnat
bin/update.sh -Ddeploy=true
- Now start Tomcat7 server:
sudo su xnat
/opt/tomcat7/bin/startup.sh
- When open the xnat web page in browser the first name, it will take a very long time to load as it is loading the XNAT web app in Tomcat.