...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Java-OpenJDK-15.0.2 - Higher Versions Not yet tested
Tomcat server (Minimum v.9.048) or above
MYSQL server (v.5.7.3x) - Higher versions not tested Yet
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
Install Java 15.2:
The latest version of Java OpenJDK on Ubuntu 18.04 is OpenJDK-11 this means we will have to install Java OpenJDK-15.0.2 using the tar.gz or the Debian Packages. In the steps below we will use the tar.gz procedure to install Java. First of all, visit the Oracle Archives page and download the Linux x64 Compressed Archive namely jdk-15.0.2_linux-x64_bin.tar.gz and once you are done follow th following steps https://www.oracle.com/java/technologies/javase/jdk15-archive-downloads.html
# sudo tar -zxvf jdk-15.0.2_linux-x64_bin.tar.gz
# sudo mv jdk-15.0.2 /usr/lib/jvm/# sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-15.0.2/bin/java 2
# sudo update-alternatives --config java
...
title | java license agreement |
---|
if you have more than 1 versions of Java installed, when you run the last command above you should see a prompt to select the version of Java you want to make the default. Otherwise the commands will not return anything. if you have more than one the example below, you will see something like below
There are 2 choices for the alternative java (providing /usr/bin/java).
...
Linux Server for Fineract Platform using Java-OpenJDK-15.0.2 - Higher Versions Not Recommended (Anything above 15.0.XX) is not yet tested thus not recommended) Tomcat server (Minimum v.9.0.xx) or above (latest available at https://tomcat.apache.org/download-90.cgi MYSQL server (v.5.7.xx) - Higher or lower versions not tested and not recommended on production servers until you test them your self Keep all the credentials used in this document as your defaults until after you are done with your first successful installation. |
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
Install Java 15.0.X the specific linkhttps://www.oracle.com/java/technologies/javase/jdk15-archive-downloads.html#license-lightbox :
The latest version of Java OpenJDK on Ubuntu 18.04 is OpenJDK-11 this means we will have to install Java OpenJDK-15.0.2 using the tar.gz or the Debian Packages. In the steps below we will use the tar.gz procedure to install Java. First of all, visit the Oracle Archives page and download the Linux x64 Compressed Archive namely jdk-15.0.2_linux-x64_bin.tar.gz and once you are done follow th following steps https://www.oracle.com/java/technologies/javase/jdk15-archive-downloads.html
(OR you can run this to download directly to your server:
)
# sudo tar -zxvf jdk-15.0.2_linux-x64_bin.tar.gz
# sudo mv jdk-15.0.2 /usr/lib/jvm/# sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-15.0.2/bin/java
...
In this case we have 3 and we have 0,1 & 2 ) type 2 and press enter
Next, Set the JAVA_HOME like so :
# export JAVA_HOME=/usr/lib/jvm/jdk-15.0.2
# export PATH=$PATH:$JAVA_HOME/bin
Info | ||
---|---|---|
| ||
Check you java version like so java -version java version "15.0.2" 2021-01-19 |
Install mysql-server :
# sudo apt update && sudo apt install mysql-server -y
...
title | mysql password |
---|
Once the installation is completed, the MySQL service will start automatically. To check whether the MySQL server is running, type:
# sudo systemctl status mysql
Configure the Port and binding address as shown below using sudo nano command
# sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Set the bind address as you wish for example 0.0.0.0 sets it to any IP address across the globe (Strongly not recommended)
By default it comes as
bind-address 127.0.0.1 ( this a security feature in MySQL 5.7 and above )
Run the security script: for proper configurations
# sudo mysql_secure_installation
...
# sudo mysql
Next, check which authentication method each of your MySQL user accounts use with the following command:
SELECT user,authentication_string,plugin,host FROM mysql.user;
...
1 (if you have more than one Java installations then use the number of current your Java installation)
# sudo update-alternatives --config java
Info |
---|
java license agreementif you have more than 1 versions of Java installed, when you run the last command above you should see a prompt to select the version of Java you want to make the default. Otherwise the commands will not return anything. if you have more than one the example below, you will see something like below There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status In this case we have 3 and we have 0,1 & 2 ) type 2 and press enter |
Next, Set the JAVA_HOME like so :
# export JAVA_HOME=/usr/lib/jvm/jdk-15.0.2
# export PATH=$PATH:$JAVA_HOME/bin
Info |
---|
java license agreementCheck you java version like so java -version java version "15.0.2" 2021-01-19 |
Install mysql-server :
# sudo apt update && sudo apt install mysql-server -y
Info |
---|
mysql passwordOnce the installation is completed, the MySQL service will start automatically. To check whether the MySQL server is running, type: # sudo systemctl status mysql Configure the Port and binding address as shown below using sudo nano command Set the bind address as you wish for example 0.0.0.0 sets it to any IP address across the globe (Strongly not recommended) Run the security script: for proper configurations Follow the prompts and configure you installation to the best of your interests # sudo mysql Next, check which authentication method each of your MySQL user accounts use with the following command: SELECT user,authentication_string,plugin,host FROM mysql.user; Output should look like below Set the password to "mysql" Please note that this is Bad for security, but just to get all installed and instructions on how to change it will be provided later in this guide) Setting password use the command below ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysql'; FLUSH PRIVILEGES; SELECT user,authentication_string,plugin,host FROM mysql.user;
Eexit sudo mysql and restart mysql service exit # sudo service mysql restart On completion of java installation,one could verify the installed version by & should be 5.7 or above # mysql --version |
Install tomact :
Info | ||
---|---|---|
| ||
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-90.cgi and under the core section, selecting the link to the tar.gz file. Use it for wget below:- |
# sudo wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.50/bin/apache-tomcat-9.0.50.tar.gz
# sudo mv apache-tomcat-9.0.50.tar.gz /usr/share
# cd /usr/share
# sudo tar xvf apache-tomcat-9.0.50.tar.gz
# sudo rm -f apache-tomcat-9.0.50.tar.gz
# sudo mv apache-tomcat-9.0.50 tomcat9
# cd ~
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
...
|
Install tomact :
Info |
---|
NoteThe 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-90.cgi and under the core section, selecting the link to the tar.gz file. Use it for wget below:- |
# sudo wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.72/bin/apache-tomcat-9.0.72.tar.gz
# sudo mv apache-tomcat-9.0.72.tar.gz /usr/share
# cd /usr/share
# sudo tar xvf apache-tomcat-9.0.72.tar.gz
# sudo rm -f apache-tomcat-9.0.72.tar.gz
# sudo mv apache-tomcat-9.0.72 tomcat9
# cd ~
Install nano - text editor
# sudo apt-get install nano
OPTIONAL (date/time settings)
Code Block |
---|
Check date: |
# date
Code Block |
---|
and if needed update with |
# dpkg-reconfigure tzdata
Step 2 - Tomcat setup
Enabling SSL
To enable tomcat SSL (https), generate and store a key with a key size of 2048 as required for the latest browsers:
# sudo keytool -genkey -keyalg RSA -keysize 2048 -alias tomcat -keystore /usr/share/tomcat.keystore
in case you have the error below
Sudo: keytool: command not found
run the commands below to install and set the keytool path
sudo update-alternatives --install /usr/bin/keytool keytool /usr/lib/jvm/jdk-15.0.2/bin/keytool 1
sudo update-alternatives --set keytool /usr/lib/jvm/jdk-15.0.2/bin/keytoolthen re-run the command
# sudo keytool -genkey -keyalg RSA -keysize 2048 -alias tomcat -keystore /usr/share/tomcat.keystore
Info | |
---|---|
title | set keystore passwordset 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/tomcat9/conf/server.xml path
# sudo nano /usr/share/tomcat9/conf/server.xml
Info | |
---|---|
title | nano shortcut keysTip: 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'?> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Resource <Connector |
xyz123" <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> |
Info |
---|
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/tomcat9/lib
# sudo wget https://repo1.maven.org/maven2/org/drizzle/jdbc/drizzle-jdbc/1.4/drizzle-jdbc-1.4.jar
Download mysql jdbc 8 connector
Download it from https://downloads.mysql.com/archives/c-j/
# wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.21.tar.gz
Then unzip it
#tar -xvf mysql-connector-java-8.0.21.tar.gz
#rm -r mysql-connector-java-8.0.21.tar.gz.gz
Then place the .jar in the /usr/share/tomcat9/lib folder.
#sudo mv mysql-connector-java-8.0.21/mysql-connector-java-8.0.21.jar /usr/share/tomcat9/lib/
#rm -r mysqlr mysql-connector-java-8.0.21.tar.gz
Then place the .jar in the /usr/share/tomcat9/lib folder.
#sudo mv mysql-connector-java-8.0.21/mysql-connector-java-8.0.21.jar /usr/share/tomcat9/lib/
#rm -r mysql-connector-java-8.0.21
The filename above will vary depending on what the latest version of the connector is
Edit /etc/init.d/tomcat9
# sudo nano /etc/init.d/tomcat9
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
...
The filename above will vary depending on what the latest version of the connector is
use this script for auto starting tomcat after reboot
Edit /etc/init.d/tomcat9
Code Block |
---|
sudo nano /etc/init.d/tomcat9 |
copy below content into it & exit by pressing ctrl+x then confirm with y for yes.
|
|
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
# sudo chmod 755 /etc/init.d/tomcat9
Link this script to the startup folders with a symbolic link.Execute these two commands.
...
|
Then Execute on Terminal
Code Block |
---|
sudo chmod 755 /etc/init.d/tomcat9 |
Link this script to the startup folders with a symbolic link.Execute these two commands.
Code Block |
---|
sudo ln -s /etc/init.d/tomcat9 /etc/rc1.d/K99tomcat
sudo ln -s /etc/init.d/tomcat9 /etc/rc2.d/S99tomcat |
Finally execute
Code Block |
---|
sudo systemctl enable tomcat9 |
More Information
Check Status
Code Block |
---|
sudo systemctl status tomcat9 |
Manually Stop
Code Block |
---|
sudo systemctl stop tomcat9 |
Manually Start
Code Block |
---|
sudo systemctl start tomcat9 |
Step 3 - Fineract Platform and Database Setup/Population
Download and extract Fineract platform::
Info |
---|
For latest released code you can download from https://sourceforge.net/projects/mifos/files/latest/download?source=files orIf wget/download fails, this link:- https://github.com/apache/fineract/releases In which you will find the following folders and file
|
# cd /usr/src
# sudo wget https://sourceforge.net/projects/mifos/files/Mifos%20X/mifosplatform-21.07.02.PATCH_RELEASE.zip/download
# sudo unzip mifosplatform-21.07.02.PATCH_RELEASE.zip
# cd mifosplatform-21.07.02.PATCH_RELEASE
Initialize MySQL data
# mysql -u root -p
Enter mysql root password, and in mysql console type:
create database `fineract_tenants`;
create database `fineract_default`;
exit
Step 4 - Access Mifos using 21.07.01 release of the community-app (this is the user-interface)
Folllow the steps here https://github.com/openMF/community-app to build yourself one. Once you are done
...
# cd /usr/src/mifosplatform-21.07.02.PATCH_RELEASE
# sudo cp fineract-provider.war /usr/share/tomcat9/webapps/
# sudo cp -r apps/community-app/ /usr/share/tomcat9/webapps/
# sudo cp -r api-docs/ /usr/share/tomcat9/webapps/
# cd /usr/share/tomcat9/webapps
# sudo mv ROOT OLDROOT
# sudo mv community-app ROOT
Create a directory for reports (pentahoReports): – This shall be updated soon in the meantime follow the events here https://github.com/openMF/fineract-pentaho
Follow the steps in https://github.com/openMF/fineract-pentaho#build--use and after building then
# sudo -i
# cd /root
# mkdir -p .mifosx/pentahoReports
# cp /usr/src/mifosplatform-21.07.02.PATCH_RELEASE/pentahoReports/* ~/.mifosx/pentahoReports/
Info |
---|
pentahoReports & upload directoryPentaho 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/tomcat9/.mifosx/pentahoReports/Income Statement.prpt","userMessageGlobalisationCode":"error.msg.reporting.error","parameterName":null,"value" Upload Directory
|
Start tomcat:
# sudo /etc/init.d/tomcat9 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
server.xml
Code Block | ||||
---|---|---|---|---|
| ||||
<Listener className="org.apache.catalina.core.JasperListener" /> |
OPTIONAL:
*in separate terminal you may watch your Mifos(logs) come to life like this:
# sudo tail -f /usr/share/tomcat9/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 | |
---|---|
title | It's Done!Congratulations! You could access Mifos X through any internet browser:- @ https://server ip address or address or if you are using server port number as 8443 then you could access it @ it @ https://localhost:8443 With these credentials:- username: mifos password: password |
Stop tomcat - after the initial launch, you need to stop MifosX so that you can upload the pentaho jars and then start MifosX again:
# sudo /etc/init.d/tomcat9 stop
# cd /usr/src/mifosplatform-21.07.02.PATCH_RELEASE
# sudo cp -r pentaholibs/*.* /usr/share/tomcat9/webapps/fineract-provider/WEB-INF/lib
Start tomcat:
# sudo /etc/init.d/tomcat9 start
Setup is complete with pentaho reports and mifos should be running and can be accessed at @ https://server ip address or address or if you are using server port number as 8443 then you could access it @ it @ https://localhost:8443 .
Info |
---|
Need Help?If you need help on the Mifos Installation, you could always reach our partners:- 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: We would be happy to help you. |