Mifos X Ubuntu Server 14.04 Installation Guide:Java-JDK (v.1.8.0_65 & above),Tomcat server (v.7.0.68.0 & above) and mysql server (v.5.5 or 5.6). |
---|
Step 1 - Installing System Updates and Prerequisites:
# 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
# sudo apt-get install oracle-java8-installer
Info |
---|
title | 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 :
# sudo apt-get install mysql-server
Info |
---|
|
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 :
# sudo wget http://a.mbbsindia.com/tomcat/tomcat-7/v7.0.68/bin/apache-tomcat-7.0.68.tar.gz
# cd /usr/share
# sudo tar xvf /home/ubuntu/apache-tomcat-7.0.68.tar.gz
# sudo mv apache-tomcat-7.0.68 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 - Enabling SSL
To enable tomcat SSL (https), generate and store a key:
All in one line:
# sudo keytool -genkey -keyalg RSA -alias tomcat -keystore /usr/share/tomcat7/keystore.jks
Info |
---|
title | set 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/tomcat7 as keystore.jks |
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 |
---|
|
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 red colored content into it
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<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/tomcat7/keystore.jks"
keystorePass="xyz123"
clientAuth="false" sslProtocol="TLS"
URIEncoding="UTF-8"
compression="force"
compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css"/>
<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=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
Download drizzle jdbc connector and 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 content into it
# 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
then exit by pressing ctrl+x and confirm with y
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
Info |
---|
|
Tomcat should be listening on localhost and your external ip if you have one.
Visit https://[server ip address]:8080 to confirm tomcat is running Visit https://[server ip address]:8443 to confirm tomcat ssl is working (you'll need to accept cerfificate manually)
If pages fail to load, something is probably wrong with tomcat. Tomcat on ubuntu logs to /opt/tomcat/logs/catalina.out
Check to see if tomcat7 is listening:
# netstat -ltpu
On the lsit you should be able to find sometihng like: 0 0 [::]:8443 [::]:* LISTEN 27217/java You'll need this working to get mifos running. |
Download and extract mifos platform:
# cd /usr/src
# sudo wget https://sourceforge.net/projects/mifos/files/Mifos%20X/fineractplatform-16.03.03.RELEASE.zip
# sudo apt-get install unzip
# sudo unzip fineractplatform-16.03.03.RELEASE.zip
# cd fineractplatform-16.03.03.RELEASE
Create and populate databases (for more refer at:- https://github.com/openMF/mifosx/blob/master/INSTALL.md )
# 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 -p 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 mifos and community app to Tomcat's webapps folder:
# cd /usr/src/
fineractplatformfineractplatform-16.03.03.RELEASE
# sudo cp fineract-provider.war /
optusr/
tomcat/webapps/# cp -r api-docs/ /opt/tomcat/webapps/ROOT/# share/tomcat7/webapps/
# sudo cp -r apps/community-app/ /usr/
optshare/
tomcattomcat7/webapps/
ROOT/# sudo mv ROOT OLDROOT
# sudo mv community-app ROOT
# sudo cp -r api-docs/ /
optusr/share/
tomcattomcat7/webapps/ROOT/
Create a directory for reports (pentahoReports):
# sudo -i
# cd /root
# mkdir .mifosx
# cp -r /usr/src/fineractplatform-16.03.03.RELEASE/pentahoReports /root/.mifosx
Info |
---|
|
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" |
Info |
---|
title | .fineract/ 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 restart
# sudo $CATALINA_HOME/bin/shutdown.sh
# sudo $CATALINA_HOME/bin/startup.sh start
# sudo /etc/init.d/tomcat7 start
Setup is complete and mifos should be running.
OPTIONAL:
*in separate terminal you may watch your Mifos come to life like this:
# tail -f /usr/optshare/tomcattomcat7/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 |
---|
|
Congratulations! Mifos: Platform application should be available @ https://[server ip address]:8443/mifosng-provider/api/v1/offices?tenantIdentifier=default&pretty=true Community application should be available @ https://[server ip address]:8443/community-app?baseApiUrl=https://[server ip address]:8443/mifosng-provider/api/v1/ username: mifos password: password |
Appendix A - To change mysql username/password
Change Mifos default mysql password:
# apt-get install phpmyadmin
1. Go to http://[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 $CATALINA_HOME/bin/shutdown.sh
# sudo $CATALINA_HOME/bin/startup.sh
Info |
---|
title | Versions at a time of this guide |
---|
|
All required software in this guide (with an exception of fineractplatform) 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.68
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) |