How to Install LAMP on Ubuntu

LAMP is an open source Web development platform that uses Linux as the operating system, Apache as the Web server, MySQL as the relational database management system and PHP as the object-oriented scripting language.

1. Update your system

First we are making sure you are up to date by running:

~$ sudo apt-get update -y && sudo apt-get upgrade -y

2. Installing Apache2

Now that we have the L in place, it’s time to install the A.

~$ sudo apt-get install apache2

You can verify if that worked by entering your server’s IP into a browser, you should see something along those lines:


3. Installing MySQL

~$ sudo apt-get install mysql-server

During the installation, you will be prompted to enter the MySQL root password. Make sure to write that down.

Now we are also going to secure our installation:

~$ sudo mysql_secure_installation

Enter the root password you entered before.

Now you get asked a couple of questions, answer as below:

Enter current password for root (enter for none): Enter your root password

Would you like to setup VALIDATE PASSWORD plugin? N

Change the password for root? [Y/n] N

Remove anonymous users? [Y/n] {ENTER}

Disallow root login remotely? [Y/n] {ENTER}

Remove test database and access to it? [Y/n] {ENTER}

Reload privilege tables now? [Y/n] {ENTER}

That’s it. Let’s continue with PHP.

 4. Installing PHP

And last but not least, the P.

For PHP we need to install slightly more, PHP with all it’s dependencies:

~$ sudo apt-get install php libapache2-mod-php php-mysql php-curl php-gd php-intl php-pear php-imagick php-imap php-mcrypt php-memcache php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl php-mbstring php-gettext

Let’s restart apache2:

~$ sudo /etc/init.d/apache2 restart

5. Testing the configuration and wrapping up

To test your configuration, we first need to create the phpinfo.php file.

~$ sudo nano /var/www/html/phpinfo.php

Paste the following text into it:

<?php phpinfo(); ?>

Save with CTRL+O and exit with CTRL+X.

If you  now open http://YOURSERVERIP/phpinfo.php in your web browser, you should see the PHP configuration page:



How to enable MySQL/MariaDB remote access

Out of the box, MySQL will only allow access from the localhost address To change this, you need to open the /etc/mysql/mysql.conf.d/mysqld.cnf (mariadb–> /etc/mysql/my.cnf) file and change the line:

~$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address =


bind-address =

Save and close that file.

~$ sudo -u root -p

command this:


Restart the MySQL server with the command:

~$ sudo systemctl restart mysql.service

How to install ODK Aggregate on Ubuntu Server

Open Data Kit (ODK) is an open-source suite of tools that helps to Build survey form, Collect data on a mobile device and send it to a server and Aggregate the collected data on a server and extract it in useful formats. ODK Aggregate can be deployed on Google’s App Engine, by creating google account. ODK Aggregate can also be deployed locally on a Tomcat server backed with a MySQL or PostgreSQL database server.

After installation of Tomcat and PostgreSQL you can download ODK installation file as like in our instruction here:

Go for and choose the proper version click download

Then while it downloading click the link

Here it will be

~$ wget


After it is downloaded type the below command and follow the instruction (please be informed that the version can be deferred) :

~$ sudo chmod +x ODK*.run

~$ sudo ./ODK*.run 

The installer does not install anything, but will guide you through configuring ODK Aggregate for Tomcat and PostgreSQL.

During instruction, you have given a name for a folder for ODK Aggregate war file and other files. I have given ODK name.

~$ cd ODK/ODK*/

~$ sudo cp ODK*.war /opt/tomcat/webapps/

~$ sudo -i -u postgres

Then go to the folder location inside the folder:

postgres@ubuntu: ~$ cd /home/[user_name_for_the_account]/ODK/ODK*

postgres@ubuntu: ~$ psql

postgres=# \i create_db_and_user.sql

postgres=# \q

postgres@ubuntu: ~$ exit

~$ sudo service tomcat restart

now you can browse for   http://[computer_name_or_IP]:8080/ODKAggregate

ODK user name is what you set and password is aggregate

How to Install PostgreSQL on Ubuntu Server 16.04 and Manage

What does PostgreSQL mean?

PostgreSQL is an open-source, object-relational database management system (ORDBMS) that is not owned or controlled by one company or individual. Because PostgreSQL software is open-source, it is managed mostly through a coordinated online effort by an active global community of developers, enthusiasts and other volunteers.

First released in the mid-1990s, postgresSQL is written in C. Its primary competitors include Oracle DB, SQL Server and MySQL.

This term is also known as Postgres.


First, let us update the system:

~$ sudo apt-get update && sudo apt-get upgrade

Install PostgreSQL from the Ubuntu package repository:

~$ sudo apt-get install postgresql postgresql-contrib

Change Postgres Linux user’s password
~$ sudo passwd postgres
 To enable remote access you will need to edit two files:
/etc/postgresql/9.5/main/postgresql.conf (9.5 is the version number so it can be various)
~$ sudo nano /etc/postgresql/9.5/main/pg_hba.conf
 Find the below
# IPv4 local connections:
host all all md5
and change it as below
# IPv4 local connections:
host all all md5
and for second file:
~$ sudo nano /etc/postgresql/9.5/main/postgresql.conf
# listen_addresses=’localhost’ to

Switching Over to the postgres Account

The installation procedure created a user account called postgres that is associated with the default Postgres role. In order to use Postgres, we can log into that account.

Switch over to the postgres account on your server by typing:

~$ sudo -i -u postgres
be below command:
~$ psql

You will be logged in and able to interact with the database management system right away.

~$ postgres=#
 Exit out of the PostgreSQL prompt by typing: \q
~$ postgres=# \q
To change the password for a user type below
~$ postgres=# ALTER USER [user_name] with PASSWORD [password];
 Creating a user
~$ sudo -u postgres createuser [user_name]
Create a database
~$ sudo -u postgres createdb [db_name]
Granting a user on a database
~$ postgres=# grant all privileges on database [db_name] to [user_name];

How to install Tomcat 8 on Ubuntu Server 16.04

Apache Tomcat is a web server and servlet container that is used to serve Java applications. Tomcat is an open source implementation of the Java Servlet and JavaServer Pages technologies, released by the Apache Software Foundation. This tutorial covers the basic installation and some configuration of the latest release of Tomcat 8 on your Ubuntu 16.04 server.

 First step will be to install apt-get-repository by below command

~$ sudo apt-get install software-properties-common

 let us update
~$ sudo apt-get update
The second step is about installing Java. If you want to install Oracle Java then execute the below commands
~$ sudo apt-add-repository ppa:webupd8team/java
~$ sudo apt-get update
~$ sudo apt-get install oracle-java8-installer

Setting as default JDK

~$ sudo apt-get install oracle-java8-set-default

Setting the path globally:

type :

~$ sudo nano /etc/bash.bashrc

and add this line at the end of page.

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

loading bash.bash.bashrc

~$ source /etc/bash.bashrc

The third step is creating tomcat group and user.

~$ sudo groupadd tomcat

~$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Forth Step is about installing Tomcat

Go to click the version you want to download

Then click the mirror if you want to change the download server and click on tar.gz then copy the link address. Here it is

Run the below command

~$  wget

~$ sudo mkdir /opt/tomcat

~$ sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat

The Fifth step is updating the permission

~$ cd /opt/tomcat

~$ sudo chgrp -R tomcat /opt/tomcat

Next, give the tomcat group read access to the conf directory and all of its contents, and execute access to the directory itself:

~$ sudo chmod -R g+r  conf

~$ sudo chmod g+x  conf

Make the tomcat user the owner of the webapps, work, temp and logs directories:

~$ sudo chown -R tomcat  webapps/ work/ temp/ logs/

The sixth step is about creating a systemd service file

Run the below command first to know where Java is installed

~$ sudo update-java-alternatives -l

It will show something like this

java-8-oracle 1081 /usr/lib/jvm/java-8-oracle

So the java is installed under /usr/lib/jvm/java-8-oracle

~$ echo $JAVA_HOME

If these both are not same then you need to command

~$ sudo nano /etc/bash.bashrc

and add you need to add

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Let us create the systemd service file

~$ sudo nano /etc/systemd/system/tomcat.service

and let us add

Description=Apache Tomcat Web Application Container


Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'




Save and exit

Reload the systemd daemon:

~$ sudo systemctl daemon-reload

Start the Tomcat service :

~$ sudo systemctl start tomcat

Let’s enable the service on boot

~$ sudo systemctl enable tomcat

Step Seven:

If firewall is enabled the allow traffic to 8080 port which tomcat server use by typing:

~$ sudo ufw allow 8080

Let us test the Tomcat server on a browser:

http:// [server_name_or_IP] : 8080

Step Eight:

Configure tomcat web management interface

~$ sudo nano /opt/tomcat/conf/tomcat-users.xml

Now let us add this

<?xml version='1.0' encoding='utf-8'?>

    <role rolename="admin"/>
    <role rolename="admin-gui"/>
    <role rolename="manager-gui"/> 
    <user username="admin" password="password" roles="admin,admin-gui,manager-gui"/>

Generate a username which it is admin here and generate a proper password

We also need to configure context.xml file under

/opt/tomcat/webapps/manager/META-INF/context.xml and /opt/tomcat/webapps/host-manager/META-INF/context.xml

In both file it should be

<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Restart the service by typing:

~$ sudo systemctl start tomcat

Congradulation for the installation of Apache Tomcat!

Set A Static IP On Linux

The interfaces file is where you need to change from the default “dhcp” setting to add some information about the “static” IP address that you want to configure.

Edit the /network/interfaces file

~$ sudo nano /etc/network/interfaces

sudo nano /etc/network/interfaces


Then reboot the computer or run the below command

~$ sudo /etc/init.d/networking restart

Apt-Get Update : failure to fetch

For that you will need the below commands:

~$ sudo rm -vf /var/lib/apt/lists/*
~$ sudo apt-get update

This will solve your issue!

If the problem is messed with keys then you can try the below commands

~$ cd /etc/apt/apt/sources.list.d/

~$ sudo rm -R *

~$ cd /var/lib/apt/lists/

~$ sudo rm -R *

~$ sudo nano /etc/apt/sources.list

and comment out the line with #

~$ apt-key list

~$ sudo apt-key del XXXX

XXXX is the key ID from the list you got

~$ sudo apt-key update

~$ sudo apt-get clean

~$ sudo apt-get update

DBeaver – Open source SQL Editor

DBeaver is an open source universal database tool for developers and database administrators that has a low memory footprint. It supports JDBC compliant databases such as MySQL, Oracle, IBM DB2, PostgreSQL, SQL Server, Firebird, SQLite, and Sybase. Its main features include the ability to browse and edit databases, create and execute SQL scripts, export data, transaction management and ER diagrams. Additionally, DBeaver’s functionality can be extended by the use of plugins.


Main page :

You can check other alternatives as DataGrip and Navicat.

WPS Office for Linux – Community Edition


WPS Office (an acronym for Writer, Presentation and Spreadsheets, previously known as Kingsoft Office) is an office suite for Microsoft Windows, Linux, iOS and Android OS, developed by Zhuhai-based Chinese software developer Kingsoft. WPS Office is a suite of software which is made up of three primary components: WPS Writer, WPS Presentation, and WPS Spreadsheet.wps

The personal basic version is free to use, but a watermark is printed on all printed output after the 30 day trial ends. A fully featured professional-grade version is also available for a subscription fee. The current version of WPS Office is WPS Office 10.

The product has had a long history of development and success in China under the name “WPS” and “WPS Office”. For a time, Kingsoft branded the suite under the “KSOffice” brand in an attempt to gain a foothold in international markets, but has since returned to “WPS Office”. Since WPS Office 2005, the user interface is similar to that of Microsoft Office products, and supports Microsoft document formats besides native Kingsoft formats.


Download Link–>