Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Mifos X Ubuntu Server 14.04 Installation Guide:
Linux ServerMifos X Ubuntu Server 14.04 Installation Guide:Linux Server for Fineract Platform using Ubuntu Server 14.04,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 | ||
---|---|---|
| ||
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)
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 | ||
---|---|---|
| ||
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 ) This gets stored in /usr/share/tomcat7 |
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" />
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory
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.userscore.MemoryUserDatabaseFactoryJasperListener"
pathname="conf /tomcat-users.xml"
/><Resource type="javax.sql.DataSource"
name="jdbc/mifosplatform-tenants"
factory
<Listener className="org.apache.tomcatcatalina.jdbccore.pool.DataSourceFactoryJreMemoryLeakPreventionListener" />
driverClassName<Listener className="org.drizzleapache.catalina.jdbcmbeans.DrizzleDriverGlobalResourcesLifecycleListener" />
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 <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.valvesrealm.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.pidcase $1 in
start)
sh 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/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
title | Tomcat Testing |
---|
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.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.pidcase $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
Step 3 - Mifos Platform and Database Setup/Population
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
Info |
---|
For latest release you can download from or If wget/download fails, this link:- http://sourceforge.net/projects/mifos/files/Mifos%20X/ ) |
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.sqlOptional - 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/fineractplatform-16.03.03.RELEASE
# sudo cp fineract-provider.war /usr/share/tomcat7/webapps/
# sudo cp -r apps/community-app/ /usr/share/tomcat7/webapps/
# sudo mv ROOT OLDROOT
# sudo mv community-app ROOT
# sudo cp -r api-docs/ /usr/share/tomcat7/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":"/Income Statement.prpt","userMessageGlobalisationCode":"error.msg.reporting.error","parameterName":null,"value" |
Info | ||
---|---|---|
| ||
|
Info | ||
---|---|---|
| ||
|
and finally to 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:
(if all is good, after a while of loading, you should see something like: Root WebApplicationContext: initialization completed in 45876 ms)# tail -f /usr/share/tomcat7/logs/catalina.out
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 |
Change Mifos default mysql password:
1. Go to http://[yourserverip]/phpmyadmin and login# apt-get install phpmyadmin
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
|
and finally to 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/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 | ||
---|---|---|
| ||
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 /etc/init.d/tomcat7 restart
Info | ||
---|---|---|
| ||
Tomcat should be listening on localhost and your external ip if you have one. 0 0 [::]:8443 [::]:* LISTEN 27217/java You'll need this working to get mifos running. |
Info | ||
---|---|---|
| ||
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
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) |
Panel | |
---|---|
On this page:
|