How to Install Apache, MySql, PHP & phpMyAdmin on Ubuntu 16 (LAMP Stack)

Use-Cases of this Tutorial

  • Installing latest versions of Apache, MySql, PHP & phpMyAdmin on Ubuntu 16.04
  • Installing latest versions of Apache, MySql, PHP & phpMyAdmin on Ubuntu 16.04 (over an AWS EC2 Instance)

Having your own VPS or a Dedicated Server offers a lot of freedom as compared to a Shared Hosting plan. You can enable Apache & PHP modules as per your wish, and also use many useful Linux utilities in your PHP code.

However the initial setup is quite a pain. Installing applications and working with the Linux command line are not the easiest of things. But installing Apache, PHP, MySql & phpMyAdmin is not difficult, as long as you stick with the process. In fact you can have a fully functional LAMP stack by executing only 10-12 command line operations !

Follow the steps given below, one by one.

Step 1 : Updating the Package List

Update the package list on your system so that you can have the latest available versions of Apache, PHP, MySql and phpMyAdmin.

sudo apt-get update

Step 2 : Installing Apache

Install Apache through the following command :

sudo apt-get install apache2

Note that it will install the latest available version of Apache (2.4 as of Jan, 2017).

Step 3 : Checking Successful Installation of Apache

You can check whether Apache has been installed by typing in the IP address of your server http://your-ip-address (or http://localhost if you're doing it on a local server). You should see a page like this :

Step 4 : Installing MySql

Install MySql through the following command :.

sudo apt-get install mysql-server

You will also be asked to enter the desired password of the MySql root account. Although it is optional, don't leave it. The default password of the root account is blank, and instead of changing it later on, better do it now.

Type in a strong password and press the arrow-down button to highlight the Ok button. When highlighted the Ok button will turn red. Press the enter key to proceed.

You will also be asked for a confirmation of the password. Repeat the same.

The latest available version of MySql (5.7 as of Jan, 2017) will be installed.

Step 5 : Checking Successful Installation of MySql

Type the following command :

mysql -u root -p

If MySql has been installed successfully, you should be prompted for a password. Enter the password which you chose in the above step. You should see the MySql prompt like this :

mysql>

Here you can run mysql queries, create tables etc.

Now to go back, exit MySql by typing in the command :

exit

Step 6 : Installing PHP with Commonly Used Extensions

Install PHP and commonly used extensions :

sudo apt-get install php libapache2-mod-php php-mysql php-curl php-gd php-json php-mcrypt php-zip

In the above command in addition to PHP, the following PHP extensions are also installed :

  • MySql Extension : To use MySql functions available in PHP
  • Curl Extension : To make CURL requests through PHP, commonly used in implementing API calls of web services
  • GD Extension : To enable the GD library. PHP uses GD library for image manipulation tasks
  • JSON Extension : To decode and encode JSON through PHP
  • Mcrypt Extension : Contains various encryption functions
  • Zip Extension : Zip and unzip through PHP

PHP offers a lot more extensions, but these are the most commonly used. If required, you can install an extension later.

Also note that libapache2-mod-php is the Apache Module to run PHP. This module provides the connection between Apache and PHP.

The latest available version of PHP (7 as of Jan, 2017) will be installed.

Step 7 : Checking Successful Installation of PHP

Type the following command :

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/phpinfo.php

This will create a phpinfo.php file in the root directory. Type this url in the browser http://your-ip-address/phpinfo.php (or http://localhost/phpinfo.php if installing locally). You should see a page like this, showing your PHP configuration :

Step 8 : Installing phpMyAdmin

Install phpMyAdmin through the commannd :

sudo apt-get install phpmyadmin

You will be asked to choose the type of web server. The default choice would be apache2. Press space key to select. Now press Tab key to highlight the Ok button. Now press the enter key. Pressing key in this order is very important, otherwise apache2 will not be selected. When selected apache2 would have a * symbol beside it, see the second image how it would look like.

You will then be asked whether to configure database for phpmyadmin with dbconfig-common. Choose Yes and click enter.

You will then be asked to enter the password of MySql root account. Enter the password which you typed while installing MySql. Use the Tab key to highlight the Ok button and press enter.

Do the same when asked for password confirmation.

The latest available version of phpMyAdmin (4.5 as of Jan, 2017) will be installed.

Step 9 : Checking Successful Installation of phpMyAdmin

Visit the url http://your-ip-addrss/phpmyadmin (or http://localhost/phpmyadmin) in your browser. If phpMyAdmin is installed successfully, you should see the standard phpMyAdmin login page. Type in root as the username, and the MySql password you chose earlier to access the databases.

Step 10 : Enable Apache Rewrite Module

Enable the Rewrite Module in Apache, so that your application can make use of seo-friendly pretty URLs, such as http://website.com/posts/12/post-on-ubuntu/ (instead of http://website.com?post_id=12). Most probably you will be needing pretty URLs in future, better enable it now.

sudo a2enmod rewrite

Now restart Apache so that this change becomes live.

sudo service apache2 restart

That's it. You should have a fully functional LAMP stack. You can start writing your code now !

In case of any issues, please comment it below.

I'm available for freelancing
If you've liked this article, you'll probably like my code too.

From short code snippets to complete web applications, I code in Javascript & PHP
Low Prices from $20, Fast Delivery Time
I'm available for freelancing
If you've liked this article, you'll probably like my code too.

From short code snippets to complete web applications, I code in Javascript & PHP
Low Prices from $20, Fast Delivery Time