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 | ||
---|---|---|
| ||
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
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 -i
# apt-get update
# apt-get upgrade
# sudo add-apt-repository ppa:openjdk-r/ppa
# apt-get install openjdk-8-jdk mysql-server
java -version (for checking version)
tomact installation :
# sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
# wget http://a.mbbsindia.com/tomcat/tomcat-7/v7.0.68/bin/apache-tomcat-7.0.68.tar.gz
# sudo mkdir /opt/tomcat
# sudo tar xvf apache-tomcat-7.0.68.tar.gz -C /opt/tomcat --strip-components=1
# cd /opt/tomcat
# sudo chgrp -R tomcat conf
# sudo chmod g+rwx conf
# sudo chmod g+r conf/*
# sudo chown -R tomcat work/ temp/ logs/
# sudo update-alternatives --config java
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)
|
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
Then set password for example:- xyz123
Update /etc/tomcat7/server.xml configuration file
# sudo nano /etc/tomcat7/server.xml
<?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="com.mysql.jdbc.Driver"
url="jdbc:mysql://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="8443" maxThreads="200" scheme="https"
secure="true" SSLEnabled="true"
keystoreFile="/etc/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>
Save the file and exit by clicking ctrl+x & yes(y)
Download mysql connector and place it under lib folder
# cd /usr/share/tomcat7/lib
# sudo wget http://www.java2s.com/Code/JarDownload/mysql/mysql-connector-java-5.1.23-bin.jar.zip# sudo unzip mysql-connector-java-5.1.23-bin.jar.zip
Restart and test tomcat:
# 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. |
Step 3 - Mifos Platform and Database Setup/Population
Download and extract mifos platform:
# cd /usr/src
# wget https://sourceforge.net/projects/mifos/files/Mifos%20X/mifosplatform-15.03.1.RELEASE.zip
# unzip mifosplatform-15.03.1.RELEASE
# cd mifosplatform-15.03.1.RELEASE
Info |
---|
If wget/download fails, get a working link here http://sourceforge.net/projects/mifos/files/Mifos%20X/ ) |
Create and populate databases (more 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/mifosplatform-15.03.1.RELEASE
# cp mifosng-provider.war /var/lib/tomcat7/webapps/
# cp -r api-docs/ /var/lib/tomcat7/webapps/ROOT/
# cp -r apps/community-app/ /var/lib/tomcat7/webapps/ROOT/
# cp -r api-docs/ /var/lib/tomcat7/webapps/ROOT/
Create a directory for mifos uploads (Client Images & Signatures) & reports (pentahoReports):
sudo mkdir -p /usr/share/tomcat7/.mifosx/default/documents
cp -r /usr/src/mifosplatform-15.03.1.RELEASE/pentahoReports /usr/share/tomcat7/.mifosx/
chown -R tomcat7 /var/lib/tomcat7/webapps/.mifosx/
Info | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
|
and finally
# /etc/init.d/tomcat7 restart
Setup is complete and mifos should be running.
OPTIONAL:
*in separate terminal you may watch your Mifos come to life like this:
# tail -f /var/lib/tomcat7/logs/mifos-platform.log
(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
|
Appendix A - 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
/etc/tomcat7/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.
# /etc/init.d/tomcat7 restart
Panel | |
---|---|
On this page:
|