Info | ||
---|---|---|
| ||
Before you begin, please take backup of database, war and community-app |
Step 1: Stop running tomcat server
Code Block | ||||
---|---|---|---|---|
| ||||
ubuntu@host:~$ /etc/init.d/tomcat7 stop |
If tomcat fails to shutdown gracefully then get the process id of the MIfos X war running on tomcat (Since it is java application, process information contains 'java' word)
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
ubuntu@host:~$ ps -ef | grep java root 1189 1 0 12:28 ? 00:02:20 /usr/bin/java -Djava.util.logging.config.file=/usr/share/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:MaxPermSize=512m -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -classpath /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/usr/share/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.io.tmpdir=/usr/share/tomcat7/temp org.apache.catalina.startup.Bootstrap start |
Note: If system running multiple Java applications then it will list all the process id, please select the process id corresponding to tomcat server that is running Mifos X application
Code Block | ||||
---|---|---|---|---|
| ||||
ubuntu@host:~$ sudo kill -9 1189 |
Step 2: Uninstall Java, if Java version is less than Java 8
Q: How to Check Java version?A: Java -version
Note |
---|
Java 1.8.x is same as Java 8 |
Warning |
---|
Skip Step 2 and Step 3 if your machine has Java version 8 (1.8) |
1) Remove all the Java related packages (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ):
dpkg-query -W -f='${binary:Package}\n' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e '^java-common' | xargs sudo apt-get -y remove sudo apt-get -y autoremove
2) Purge config files:
dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
3) Remove Java config and cache directory:
sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
4) Remove manually installed JVMs:
sudo rm -rf /usr/lib/jvm/*
5) Remove Java entries, if there is still any, from the alternatives:
for g in ControlPanel java java_vm javaws jcontrol jexec keytool mozilla-javaplugin.so orbd pack200 policytool rmid rmiregistry servertool tnameserv unpack200 appletviewer apt extcheck HtmlConverter idlj jar jarsigner javac javadoc javah javap jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc xulrunner-1.9-javaplugin.so; do sudo update-alternatives --remove-all $g; done
6) Search for possible remaining Java directories:
sudo updatedb sudo locate -b '\pack200'
7) Check for java is removed
java -version
Step 3: Install Java 8
Note |
---|
Follow Step 3 in installing Java 8 if you have removed Java in last step. |
1) Install Java 8
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 |
2) Check for java is installed
java -version
Info |
---|
You should see this below message:- java version "1.8.0_77" Java(TM) SE Runtime Environment (build 1.8.0_77-b03) Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode) |
Step 4: Uninstall existing Tomcat
Warning |
---|
No need to uninstall the tomcat server if it's version is 7.0.69 and above |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
ubuntu@host:~$ sudo apt-get remove tomcat7 |
Warning | ||
---|---|---|
| ||
if you get message 'Package 'tomcat7' is not installed, so not removed' then that mean tomcat was not installed using apt-get install instead it was installed by downloading tar.zip |
sudo find / -name tomcat7
3) Remove all tomcat directories
sudo rm -r /usr/share/tomcat7
sudo rm -r /var/lib/tomcat7
sudo rm -r /var/log/tomcat7
sudo rm -r /etc/init.d/tomcat7
4) Search for all remaining tomcat directories & remove them too.
sudo find / -name tomcat7
Step 5: Tomcat Installation
Note |
---|
Install the tomcat server only if you have uninstalled it in previous step. |
1 1) Install tomact Tomact :
# cd ~
# 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
Info | ||
---|---|---|
| ||
For latest release you can download it from , this link:-:- https://tomcat.apache.org/download-70.cgi →Go to Core→ Select "tar.gz" File |
2) Install nano - text editor
# sudo apt-get install nano
Info |
---|
Server Time and Date Settings(Optional) Check date:
and if needed update using the command
|
Step 6: Tomcat setup
1) 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 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 tomcat.keystore
2) 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
copy and replace below content into it
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<?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 "%r" %s %b" /> </Host> </Engine> </Service> </Server> |
3) 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
4) 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 case $1 in |
# 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 7:Download and extract Fineract platform:
# cd /usr/src
# sudo wget https://sourceforge.net/projects/mifos/files/Mifos%20X/fineractplatform-16.06.01.RELEASE.zip
# sudo apt-get install unzip
# sudo unzip fineractplatform-16.06.01.RELEASE.zip
# cd fineractplatform-16.06.01.RELEASE
Info |
---|
For latest release you can download from or If wget/download fails, this link:- http://sourceforge.net/projects/mifos/files/Mifos%20X/ ) |
Step 8: Droping Mifos into Tomcat
1) Copy fineract-platform and community app into Tomcat's webapps folder:
# cd /usr/src/fineractplatform-16.06.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
2) Create a directory for reports (pentahoReports):
# sudo -i
# cp -r /usr/src/fineractplatform-16.06.01.RELEASE/pentahoReports /root/.mifosx
Info | ||
---|---|---|
| ||
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
|
3) 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(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 | ||
---|---|---|
| ||
Important You could access Mifos X through any internet browser:- @ https://server ip address with you earlier credentails Note: Since in this instruction page, we have provided port number as 443 in server.xml page so need to provide port number. Since we have renamed community-app as ROOT no need to provide /community-app |