Step 1 – Install PHP

PHP 7 is the default available packages in Ubuntu 16.04 repositories. Simply use the following commands to update apt cache and install PHP packages on your system.

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install -y php7.2

You may also need to install some additional PHP modules for supporting various tasks

sudo apt install php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mcrypt

Step 2 – Install Apache2

After installing PHP on your system, let’s start the installation of Apache2 in your system. Also, you need to install a libapache2-mod-php module to work PHP with Apache2.

sudo apt install apache2 libapache2-mod-php7.2

Step 3 – Install MySQL

Finally, install mysql-server packages for MySQL database. Also, install php-mysql package to use MySQL support using php. Use the following command to install it.

sudo apt install mysql-server php7.2-mysql

The installer will prompt for root password, This password will work for your MySQL root user. After installing MySQL execute the following command for initial settings of MySQL server. You will see that script will prompt for more settings than earlier MySQL versions like password validation policy etc.

sudo mysql_secure_installation

You can also install phpMyAdmin for the administration of MySQL using web interface.

sudo apt install phpmyadmin

Step 4 – Restart Services

After installing all the services on your system. Restart MySQL and Apache service to reload any changes done manually.

sudo systemctl restart apache2.service
sudo systemctl restart mysql.service

Step 5 – Open Access in Firewall

The systems with iptables/ufw enabled, execute the following commands to open port 80 for public access of web server.

Iptables Users:

sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

UFW Users:

sudo ufw allow 80/tcp

Step 6 – Test Setup

After completing all set up. Let’s create an info.php file website document root with the following content.


Now access this file in web browser. You will see the screen like below with all the details of PHP on the server.

Was this answer helpful? 0 Users Found This Useful (26 Votes)