Step-by-step guide

Step 1 - Installing System Updates and Prerequisites:

Run all below mentioned scripts one by one on the ununtu console & follow step by step instructions: - 

# sudo apt-get update

# sudo apt-get upgrade

# sudo apt-get install python-software-properties 

# sudo add-apt-repository ppa:webupd8team/java

# sudo apt-get update


Install Java : 

# sudo apt-get install oracle-java8-installer 

java license agreement

On prompting for accepting oracle java agreement, accept the agreement by pressing y(yes) key.

 
On completion of java installation,one could verify the installed version by & should be 1.8v:-
# java -version 


Install mysql-server : (Only version 5.5 or version 5.6)

# sudo apt-get install mysql-server

mysql password

set mysql root password to: mysql

(Bad for security, but just to get all installed and instructions on how to change it will be provided later in this guide)

On completion of MySQL installation,one could verify the installed version by & should be 5.5v or 5.6v:-
# mysql --version

 

Install tomact : 

Note

For latest release you can download from or If wget/download fails,then follow this link:- https://tomcat.apache.org/download-70.cgi >> core >> tar.gz & copy the link address then use it after wget below:-

# sudo wget http://mirror.fibergrid.in/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz

 # cd /usr/share 

 # sudo tar xvf /home/ubuntu/apache-tomcat-7.0.69.tar.gz 

 # sudo mv apache-tomcat-7.0.69 tomcat7


Step 2 - Tomcat setup

Enabling SSL

To enable tomcat SSL (https), generate and store a key:

# sudo keytool -genkey -keyalg RSA -alias tomcat -keystore /usr/share/tomcat.keystore

set password to: xyz123

(Bad for security, but just to get all installed and instructions on how to change it will be provided later in this guide)

This gets stored in /usr/share/tomcat7 as tomcat.keystore

 

Updating server.xml configuration file

It is located at /usr/share/tomcat7/conf/server.xml path

# sudo nano /usr/share/tomcat7/conf/server.xml 

nano shortcut keys

Tip: To delete line by line you could use ctrl+k
To exit you could use ctrl+x
To confirm say yes & you could use y
then click on enter button to save

copy and replace below content into it

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />

<Resource type="javax.sql.DataSource"
name="jdbc/mifosplatform-tenants"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="org.drizzle.jdbc.DrizzleDriver"
url="jdbc:mysql:thin://localhost:3306/mifosplatform-tenants"
username="root"
password="mysql"
initialSize="3"
maxActive="10"
maxIdle="6"
minIdle="3"
validationQuery="SELECT 1"
testOnBorrow="true"
testOnReturn="true"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000"
logAbandoned="true"
suspectTimeout="60"
/>
</GlobalNamingResources>

<Service name="Catalina"> 
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="443" maxThreads="200" scheme="https"
secure="true" SSLEnabled="true"
keystoreFile="/usr/share/tomcat.keystore"
keystorePass="xyz123"
clientAuth="false" sslProtocol="TLS"
URIEncoding="UTF-8"
compression="force"
compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css"/>

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

<Engine name="Catalina" defaultHost="localhost">

<Realm className="org.apache.catalina.realm.LockOutRealm">

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>
</Engine>
</Service>
</Server>

Note:

If your any of the server port connections are using port number = 443, then you need to change your port number to 8443, in server.xml here:-

port="443" maxThreads="200" scheme="https" to port="8443" maxThreads="200" scheme="https" 

 

Download drizzle jdbc connector

Place it under lib folder 

# cd /usr/share/tomcat7/lib

# sudo wget http://central.maven.org/maven2/org/drizzle/jdbc/drizzle-jdbc/1.3/drizzle-jdbc-1.3.jar

Edit /etc/init.d/tomcat7

# sudo nano /etc/init.d/tomcat7

copy below red colored content into it & exit by pressing ctrl+x then confirm with y for yes. 

# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid

case $1 in
start)
sh /usr/share/tomcat7/bin/startup.sh
;;
stop)
sh /usr/share/tomcat7/bin/shutdown.sh
;;
restart)
sh /usr/share/tomcat7/bin/shutdown.sh
sh /usr/share/tomcat7/bin/startup.sh
;;
esac
exit 0

# sudo chmod 755 /etc/init.d/tomcat7

Link this script to the startup folders with a symbolic link.Execute these two commands.

# sudo ln -s /etc/init.d/tomcat7 /etc/rc1.d/K99tomcat
# sudo ln -s /etc/init.d/tomcat7 /etc/rc2.d/S99tomcat

Step 3 - Fineract Platform and Database Setup/Population

Initialize Fineract Platform Database(s)

# mysql -u root -p

Enter mysql root password, and in mysql console type: 

create database `mifosplatform-tenants`;
create database `mifostenant-default`;
exit 

Optional - If you want to load sample data, otherwise you could skip this part: 

# mysql -u root -p mifostenant-default < database/migrations/sample_data/load_sample_data.sql

Step 4 - Copy Apache Fineract war file into webapps directory

Extract the release binary and copy fineract platform war file into Tomcat's webapps folder: 

# sudo cp fineract-provider.war /usr/share/tomcat7/webapps/

 

Finally start tomcat as service with below command

sudo /etc/init.d/tomcat7 start

Setup is complete and Fineract platform should be running.