Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Mifos Ubuntu Server 12.04 Installation Guide

Installation guide: Linux Server for Mifos Platform using Ubuntu Server 12, JDK7, Tomcat web server and mysql server.

 

Info
titleVersions at a time of this guide

All required software in this guide (with an exception of mifosplatform) comes from Ubuntu Package System.

Ubuntu 12.04.4 LTS  Release:    12.04   Codename:    precise

mysql  Ver 14.14 Distrib 5.5.37, for debian-linux-gnu (i686) using readline 6.2

Apache Tomcat/7.0.42 

mifosplatform-1.23.1.RELEASE

OpenJDK Runtime Environment (IcedTea6 1.13.3) (6b31-1.13.3-1ubuntu1~0.12.04.2)

OpenJDK Server VM (build 23.25-b01, mixed mode)

 

Step 1 - Installing System Updates and Prerequisites:

 

# sudo -s

# apt-get update

# apt-get upgrade

# apt-get install openjdk-7-jdk mysql-server tomcat7

 

Info
titlemysql 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)

  • You could skip to Appendix A below and setup a custom mifos db user/password right away.

 

OPTIONAL (nano text editor & date/time settigns)
# apt-get install  nano
Check date:

# date

and if needed update with

# dpkg-reconfigure tzdata

 

 

Step 2 - Enabling SSL

To enable tomcat SSL (https), generate and store a key:
All in one line:
 # keytool -genkey -keyalg RSA -alias tomcat -keystore /etc/tomcat7/keystore.jks
 -storepass keystore -validity 360 -keysize 2048

 

Update /etc/tomcat7/server.xml configuration file

...

Restart and test tomcat:

...

 

...

titleTomcat Testing

...

 0      0 [::]:8443               [::]:*                  LISTEN      27217/java

 You'll need this working to get mifos running.

 

Step 3 - Mifos Platform and Database Setup/Population

Download and extract mifos platform:

# cd /usr/src
# wget http://downloads.sourceforge.net/project/mifos/Mifos%20X/mifosplatform-1.23.1.RELEASE.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmifos%2Ffiles%2FMifos%2520X%2F&ts=1403225973&use_mirror=softlayer-dal
# mv mifosplatform-1.23.1.RELEASE.zip\?r\=http\:%2F%2Fsourceforge.net%2Fprojects%2Fmifos%2Ffiles%2FMifos%20X%2F  mifos.zip
# unzip mifos.zip
# cd mifosplatform-1.23.1.RELEASE

 

Info

If wget/download fails,  get a working link here http://sourceforge.net/projects/mifos/files/Mifos%20X/ )

...

# mysql -u root -p

...

Add database Resource to tomcat config

...

 

Step 4 - Activate Mifos

Copy mifos and community app to Tomcat's webapps folder:

...

Create a directory for mifos uploads & reports (pentahoReports):

mkdir -p /var/lib/tomcat7/.mifosx/default/documents/

cp -r /usr/src/mifosplatform-1.23.1.RELEASE/pentahoReports /usr/share/tomcat7/.mifosx/

chown tomcat7 /var/lib/tomcat7/webapps/.mifosx/

 

Info
titlepentahoReports

If /pentahoReports  is not copied into /usr/share/tomcat7/.mifosx, accounting reports will fail with:

Income Statement.prpt","defaultUserMessage":"Unable to create key: No loader was able to handle the given key data: /usr/share/tomcat7/.mifosx/pentahoReports/Income Statement.prpt","userMessageGlobalisationCode":"error.msg.reporting.error","parameterName":null,"value"

 

 

Info
title.mifosx/ Upload Directory
  • If .mifosx directory is not created, Clients > Upload Documents  will fail with:  "Error error.msg.document.save"  (firebug, network tab)
  • Access to this directory should be restricted to authorized personnel only.
    While all accounting related information is stored in a database, submitted documents are simply stored in orginal format as uploaded. Mifos will store user uploaded files/documents relating to clients,loans,etc   in .mifosx/

 

 

and  finally

# /etc/init.d/tomcat7 restart

 

Setup is complete and mifos should be running.

 

OPTIONAL:
*in sepperate terminal you may watch your Mifos come to life like this:

 

# tail -f /var/lib/tomcat7/logs/mifos-platform.log

 

...

titleIt's Done!

 

Congratulations!

 

...


Mifos X Ubuntu Server 16.04 Installation Guide:

Linux Server for Fineract Platform using Ubuntu Server 16.04,

Java-JDK (v.1.8.0_231 & above),

Tomcat server (v.7.0.109.0 & above) 

MYSQL server (v5.5 or v5.6  not above or below).  and not recommended to use any other version in live production outside of what is provided here

Step 1 - Installing System Updates and Prerequisites:

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

# sudo apt-get update

# sudo apt-get upgrade

# sudo apt-get install python-software-properties 

# sudo apt-get install software-properties-common

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

# sudo apt-get update 



 Install Java : 

sudo apt-get install oracle-java8-installer

 OR
# sudo -E add-apt-repository ppa:openjdk-r/ppa
# sudo apt-get update
# sudo apt-get install openjdk-8-jdk

Info
titlejava 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 : 

# sudo apt-get install mysql-server 


Info
titlemysql 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)

  • You could skip to Appendix A below and setup a custom mifos db user/password right away.
 
On completion of java installation,one could verify the installed version by & should be 5.5v:-
# mysql --version


Install tomact : 

Info
titleNote

The latest tomcat release will change and the link below may become invalid. If wget fails, get the correct link by going to https://tomcat.apache.org/download-70.cgi and under the core section, selecting the link to the tar.gz file. Use it for wget below:-

# sudo wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.85/bin/apache-tomcat-7.0.85.tar.gz

 # sudo mv apache-tomcat-7.0.109.tar.gz /usr/share

 # cd /usr/share 

 # sudo tar xvf apache-tomcat-7.0.109.tar.gz

 # sudo rm -f apache-tomcat-7.0.109.tar.gz

 # sudo mv apache-tomcat-7.0.85 tomcat7


Install nano - text editor 

# sudo apt-get install nano

OPTIONAL (date/time settings) 

Check date:

# date

and if needed update with

# dpkg-reconfigure tzdata 

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

Info
titleset keystore password

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 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 

Info
titlenano 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>


Info
titleNote:

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 https://repo1.maven.org/maven2/org/drizzle/jdbc/drizzle-jdbc/1.3/drizzle-jdbc-1.3.jar

Download mysql jdbc connector

Download it from https://dev.mysql.com/downloads/connector/j/,

# wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j_8.0.31-1ubuntu18.04_all.deb

Then unzip it

#tar -xvf mysql-connector-java-5.1.49.tar.gz

#rm -r mysql-connector-java-5.1.49.tar.gz

Then place the .jar in the  /usr/share/tomcat7/lib  folder. 

#sudo mv mysql-connector-java-5.1.49/mysql-connector-java-5.1.49-bin.jar /usr/share/tomcat7/lib/

#sudo mv mysql-connector-java-5.1.49/mysql-connector-java-5.1.49.jar /usr/share/tomcat7/lib/

#rm -r mysql-connector-java-5.1.49

The filename above will vary depending on what the latest version of the connector is

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. 


#!/bin/bash
### BEGIN INIT INFO
# Provides:         tomcat
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Auto-starts tomcat
# pidfile: /var/run/tomcat.pid
### END INIT INFO

case $1 in
start)
sh /usr/share/tomcat9/bin/startup.sh
;;
stop)
sh /usr/share/tomcat9/bin/shutdown.sh
;;
restart)
sh /usr/share/tomcat9/bin/shutdown.sh
sh /usr/share/tomcat9/bin/startup.sh
;;
esac
exit 0
Then Execute on Terminal the command below

# 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

Download and extract Fineract platform:

Info

For latest release you can download from or If wget/download fails, this link:- http://sourceforge.net/projects/mifos/files/Mifos%20X/ )

# cd /usr/src

# sudo wget https://jaist.dl.sourceforge.net/project/mifos/Mifos%20X/mifosplatform-18.03.01.RELEASE.zip

# sudo unzip mifosplatform-18.03.01.RELEASE.zip

# cd fineractplatform-18.03.01.RELEASE


Initialize MySQL data 

# mysql -u root -p

Enter mysql root password, and in mysql console type: 

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

# mysql -u root -pmysql mifosplatform-tenants < database/mifospltaform-tenants-first-time-install.sql 

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

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

Step 4 - Activate Mifos

Copy fineract-platform and community app into Tomcat's webapps folder: 

# cd /usr/src/fineractplatform-18.03.01.RELEASE

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

# sudo cp -r apps/community-app/ /usr/share/tomcat7/webapps/ 

# sudo cp -r api-docs/ /usr/share/tomcat7/webapps/

# cd /usr/share/tomcat7/webapps

# sudo mv ROOT OLDROOT

# sudo mv community-app ROOT

Create a directory for reports (pentahoReports):

# sudo -i 

# cd /root 

# mkdir .mifosx

# cp -r /usr/src/fineractplatform-18.03.01.RELEASE/pentahoReports /root/.mifosx 

Info
titlepentahoReports & upload directory

Pentaho Reports

If /pentahoReports  is not copied into /root/.mifosx, penatoh reports,ex:accounting reports will fail with:

Income Statement.prpt","defaultUserMessage":"Unable to create key: No loader was able to handle the given key data: /usr/share/tomcat7/.mifosx/pentahoReports/Income Statement.prpt","userMessageGlobalisationCode":"error.msg.reporting.error","parameterName":null,"value"

Upload Directory

  • .fineract directory gets created automatically, if not created then Clients > Upload Documents  will fail with:  "Error error.msg.document.save"  (firebug, network tab)
  • Access to this directory should be restricted to authorized personnel only.
    While all accounting related information is stored in a database, submitted documents are simply stored in orginal format as uploaded. Mifos will store user uploaded files/documents relating to clients,loans,etc   in .fineract/


and finally to start

sudo /etc/init.d/tomcat7 start

Setup is complete and mifos should be running. 

In case if it throws error ClassNotFoundException org.apache.catalina.core.JasperListener you need to remove the below line from server.xml 

Code Block
languagetext
titleserver.xml
<Listener className="org.apache.catalina.core.JasperListener" /> 



OPTIONAL:
*in separate terminal you may watch your Mifos(logs) come to life like this: 

tail -f /usr/share/tomcat7/logs/catalina.out 

(if all is good, after a while of loading, you should see something like: Root WebApplicationContext: initialization completed in 45876 ms)

Info
titleIt's Done!

Congratulations!

You could access Mifos X through any internet browser:- 

@ https://server ip address 

or if you are using server port number as 8443 then you could access it https://localhost:8443

With these credentials:-

username: mifos

password: password


Additional info:-

  • Platform application should be available @ https://[

...

  • public DNS]/fineract-provider/api/v1/offices?tenantIdentifier=default&pretty=true

...

  • API docs should be available @ https://[public DNS]/api-docs/apiLive.htm


Info
titleOptional title - Appendix A

Appendix A - To change mysql username/password

Change Mifos default mysql password:

# apt-get install phpmyadmin

1.  Go to   http://[

...

 

username: mifos
password: password

 

...

Change Mifos default mysql password:

# apt-get install phpmyadmin

...

# /etc/init.d/tomcat7 restart

 

 

...

yourserverip]/phpmyadmin  and login

2.  Click on Privileges, then Add a new User

3. Pick a username/password and create it. Assign full privileges globally, or on  mifosplatform-tenants &  mifostenant-default databases.

4. On the left, select/open mifosplatform-tenants database,
you should see a table with a single column , click "edit" infront of it.

Locate:
schema_username
schema_password

And set user/pass created in step #3.

Finally, edit

/opt/tomcat/conf/server.xml
username="root"
password="mysql"

And set user/pass created in step #3 here as well.

You can now set new mysql root password, without braking mifos.

Restart tomcat. Finish.

sudo /etc/init.d/tomcat7 restart



Info
titleNeed Help?

If you need help on the Mifos Installation, you could always reach our partners:-

https://mifos.org/directory/

Ex: https://mifos.org/directory/listing/intelligrow-consultancy-services-private-limited/

Welcome to Mifos community, If you are stuck with the Mifos Installation or need training or customization or need any help with respect to mifos please reach to us at:

Sangamesh Nadagoudar,
sangamesh@intelligrow.co or info@intelligrow.co or sangameshintelligrow@gmail.com

+91-9535891298

www.intelligrow.co

We would be happy to help you.