The LAMP Stack (Linux, Apache, MySQL, and PHP) is the most popular web hosting environment for the PHP based application. Here Linux is an operating system, Apache is the popular web server developed by Apache Foundation, MySQL is relational database management system used for storing data and PHP is the widely used programming language.

How to Install Apache, MySQL & PHP on Ubuntu 20.04 Apache LAMP mysql PHP ubuntu ubuntu 20.04

This article will help you to Install Apache 2.4, MySQL 8.0 and PHP 7.4 on Ubuntu 20.04 LTS (Focal Fossa) system. Let’s begin the installation of LAMP stack your Ubuntu machine.

Prerequisites

You must have root or sudo privileged user access to your Ubuntu 18.04 system. Login to your Ubuntu system using GUI for Desktop and SSH for the server edition.

ssh [email protected]

Now upgrade current packages to latest version.

sudo apt update
sudo apt upgrade

Step 1 – Installing PHP

PHP 7.4 packages are available under the default repositories on Ubuntu 20.04 LTS. To install PHP on your system, update apt index and then install it on your system.

sudo apt update
sudo apt install -y php7.4

Also install additional PHP modules required for your application.

sudo apt install php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-xml

Step 2 – Installing Apache2

Next, you need to install Apache2 package on your system. The Apache packages are are available under the default apt repositories. You also need to install libapache2-mod-php module to work PHP with Apache2.

Type below commands to install it:

sudo apt install apache2 libapache2-mod-php7.4

To create additional virtual hosts visit this tutorial.

Step 3 – Installing MySQL Server

The default Ubuntu 20.04 apt repositories contains MySQL server 8.0. Finally, install mysql-server packages for the MySQL database. Also, install the php-mysql package to use MySQL support using PHP. Use the following command to install it.

sudo apt install mysql-server php7.4-mysql

The installer will prompt for the 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
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component? 

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

Step 4 – Installing phpMyAdmin (optional)

phpMyAdmin provides a user friendly web interface to manage MySQL database server. You can install phpMyAdmin on Ubuntu 20.04 by executing the following command:

sudo apt install phpmyadmin

The installation process will prompt to select web server to configure. Select “Apache” as web server to run phpMyAdmin.

Next, this will prompt to create database for phpMyAdmin and prompt for the administrative user access details. Complete all steps to finish phpMyAdmin installation.

Step 5 – Manage Services

We have done with the installation of LAMP stack on Ubuntu 20.04 LTS system. The below commands will help you to start/stop or restart Apache and MySQL services running with systemd.

To restart Apache and MySQL services, type:

sudo systemctl restart apache2
sudo systemctl restart mysql

To start Apache and MySQL services, type:

sudo systemctl start apache2
sudo systemctl start mysql

To stop Apache and MySQL services, type:

sudo systemctl stop apache2
sudo systemctl stop mysql

Step 6 – Adjusting Firewall Rules

You can directly provide a service name like “http” or “https” to allow. The firewalld uses /etc/services file to determine the corresponding port of the service.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
After adding the rules reload the rules using command:
sudo firewall-cmd --reload

Step 7 – Test Setup

After completing all setup. Let’s create a info.php file website document root with following content.

sudo echo "" > /var/www/html/info.php

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

How to Install Apache, MySQL & PHP on Ubuntu 20.04 Apache LAMP mysql PHP ubuntu ubuntu 20.04

Also access the phpMyAdmin

How to Install Apache, MySQL & PHP on Ubuntu 20.04 Apache LAMP mysql PHP ubuntu ubuntu 20.04

Congratulation’s! You have successfully configured web server on your Ubuntu 20.04 LTS system. Read our next article Installing LAMP Stack on RHEL based systems