Skip to main content
Skip table of contents

Installation

This installation guide assumes you have setup and configured your centOS / RHEL server. For more information, refer to our Server Requirements & Setup section.

Download the latest version

BASH
cd /var/www/
git clone https://github.com/au-research/ANDS-Registry-Core.git core
# Make sure the following directory have write access open
chmod 754 -R /var/www/core/engine/logs
chmod 754 -R /var/www/core/engine/cache
chmod 754 -R /var/www/core/assets/uploads

Setup the database

Having installed a MySQL server, setup a new databases and initialise the tables:

SQL
mysql -u root -p
CREATE DATABASE dbs_roles;
CREATE DATABASE dbs_registry;
CREATE DATABASE dbs_portal;

If required, create a web user account and give it access:

SQL
CREATE USER 'webuser' IDENTIFIED BY '<yourpassword>';
GRANT SELECT, INSERT, UPDATE, DELETE ON dbs_roles.* TO 'webuser';
GRANT SELECT, INSERT, UPDATE, DELETE ON dbs_registry.* TO 'webuser';
GRANT SELECT, INSERT, UPDATE, DELETE ON dbs_portal.* TO 'webuser';
FLUSH PRIVILEGES;

Import the table structure:

BASH
mysql -u root -p dbs_roles < /var/www/core/etc/db/mysql/dbs_roles_r15_full.sql
mysql -u root -p dbs_registry < /var/www/core/etc/db/mysql/dbs_registry_r15_full.sql
mysql -u root -p dbs_portal < /var/www/core/etc/db/mysql/dbs_portal_r15_full.sql

Seed the database with the first role superuser|superuser:

BASH
mysql -u root -p dbs_roles < /var/www/core/etc/db/mysql/dbs_roles_r15.seed.sql

Download and configure the search indexer

We will be using SOLR 5.4.0, ignore this section if you already have a SOLR instance running in another container (eg. Tomcat):

BASH
cd /opt
wget http://archive.apache.org/dist/lucene/solr/5.4.0/solr-5.4.0.tgz
tar -xzvf solr-5.4.0.tgz
cd /opt/solr-5.4.0/
bin/solr start -p 8983

SOLR should now be running in http://localhost:8983/solr

ARDC is making use of the JTS library for spatial searching requirements. This library is available as a jar file from Maven Repository. The jts-1.13.jar file needs to be placed within the directory /opt/solr-5.4.0/server/lib directory

Adding the portal collection and the relations collection:

CODE
cd /opt/solr-5.4.0/
bin/solr create -c portal
bin/solr create -c relations

Update the SOLR schema for the portal and relations collection:

CODE
cd /var/www/core/
php index.php registry maintenance migrate doMigration registryIndex
php index.php registry maintenance migrate doMigration relationsIndex

The schema should be updated for http://localhost:8983/solr/portal/schema and http://localhost:8983/solr/portal/schema.

You can opt to install SOLR as a service for easy management.

Update the registry configuration

Update the global_config.php:

BASH
cp myrepo/global_config.sample myrepo/global_config.php
PHP
$eDBCONF['default']['password'] = '<yourpassword>';
$ENV['default_base_url'] = "http://yourwebsite.com/"; #include trailing slash!
// The SOLR URL is the URL of the search index core
$ENV['solr_url'] = "http://yourwebsite.com:8080/solr/";

Update the deployment state to production:

CODE
$ENV['deployment_state'] = "production";

In production mode, all scripts and assets should be pre-compiled and ready to go.

To operate in development mode, various dependencies need to be installed correctly. ARDC is making use of bower and composer as dependency managers:

CODE
cd applications/portal
bower install
cd applications/api
composer dump-autoload --optimize

Configure the web server .htaccess file:

This may require AllowOverride All in your web server configuration

Configure the web server httpd.conf file:

If you haven't done so already, change the DocumentRoot in /etc/httpd/conf/httpd.conf to /var/www/core for consistency

Copy the sample .htaccess file:

BASH
cp myrepo/htaccess.sample myrepo/.htaccess

open it with your favourite editor and update:

BASH
RewriteBase /

to the base of your app relative to the root:

Firewall / IPTables Port Forwarding

BASH
iptables -I RH-Firewall-1-INPUT 10 -p tcp -m tcp  -s 130.56.111.64/26 --match multiport --dports 80,8080 -j ACCEPT -m comment --comment "HTTP and Tomcat Ports"
iptables-save | tee /etc/sysconfig/iptables
service iptables restart

Installing ARDC TaskManager

Optionally you can create a cronjob that hit the URL http://localhost/api/task/run/ . This will achieve the same effect but will crunch through background task slower

TaskManager is ARDC own background tasking system that works closely with the Registry to lessen the amount of on demand PHP processing for some operation by putting it in the background.

CODE
cd /opt
git clone https://github.com/au-research/ANDS-TaskManager.git ands-taskmanager
cd /opt/ands-taskmanager
mkdir log

Configure TaskManager:

CODE
polling_frequency = 5 #how often does the task manager hit the databasemax_thread_count = 5 #how many concurrent threads are run
max_up_seconds_per_task = 7200 #when a task run past this number of seconds, consider it failed
run_dir = '/opt/ands-taskmanager/' #the directory of the task manager
admin_email_addr = "" #for reporting purposes
response_url='https//localhost/api/task/exe/' #the exe to execute a task eg. http://localhost/api/task/exe/:taskid
maintenance_request_url = 'http://localhost/api/task/run/' #maintenance task run when there's no task required
data_store_path = run_dir + 'result_contents'
log_dir= run_dir + 'log'
log_level = "INFO"
db_host='localhost'
db_user='webuser'
db_passwd=''
db='dbs_registry'
tasks_table='tasks'

Install TaskManager as a service:

CODE
cd /opt/ands-taskmanager
cp ands-taskprocessor /etc/init.d/ands-taskmanagerchmod 755 /etc/init.d/ands-taskmanager
chkconfig --add ands-taskmanager
chkconfig ands-taskmanager on
service ands-taskmanager start

Finish

The registry should be accessible from http://localhost/registry . You should be able to logon using superuser|superuser
and the portal should be accessible from http://localhost/
To start using the ARDC Harvester to harvest records into the registry, refer to the Harvester documentation for instructions on how to install and configure the ARDC Harvester.
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.