How to Install LAMP Stack with MariaDB on Ubuntu 21.04
First, check for any pending system upgrade.
apt update
apt upgrade
Install Apache
A command to install apache2 and with its utilities.
apt install -y apache2 apache2-utils
Next, check the Status of Apache.
systemctl status apache2
Output:
root@server:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
Active: active (running) since Thu 2021-04-29 16:37:46 UTC; 16s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 31366 (apache2)
Tasks: 55 (limit: 2280)
Memory: 5.5M
CGroup: /system.slice/apache2.service
├─31366 /usr/sbin/apache2 -k start
├─31367 /usr/sbin/apache2 -k start
└─31368 /usr/sbin/apache2 -k start
If Apache is not active can start using the following command.
systemctl start apache2
Use the following command to auto starts apache at boot time.
systemctl enable apache2
To check Apache Version.
apache2 -v
Output:
Server version: Apache/2.4.41 (Ubuntu)
Server built: 2020-08-12T19:46:17
To Enable Firewall.
To enable TCP port.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
To allow the Http
ufw allow http
Output:
Rules updated
Rules updated (v6)
Now you can verify whether the apache installed correctly or not by opening it in a web browser.
NOTE: Replace your Server IP-address below.
http://ip-address
Install MariaDB Database Server
To install MariaDB.
apt install mariadb-server mariadb-client
To check the status of MariaDB.
systemctl status mariadb
Output:
root@server:~# systemctl status mariadb
● mariadb.service - MariaDB 10.3.25 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor prese>
Active: active (running) since Thu 2021-04-29 16:41:06 UTC; 15s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 33004 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 2280)
Memory: 64.7M
CGroup: /system.slice/mariadb.service
└─33004 /usr/sbin/mysqld
To start MariaDB if it is not active.
systemctl start mariadb
Use the following command to auto starts MariaDB at boot time.
systemctl enable mariadb
Next, MariaDB database security.
NOTE: In this step you will prompt several questions.
mysql_secure_installation
Output:
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
To login MariaDB.
mariadb -u root
To exit from MariaDB.
exit;
To check MariaDB Version.
mariadb --version
Output:
root@server:~# mariadb --version
mariadb Ver 15.1 Distrib 10.3.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Install PHP7.4
To install PHP.
apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
To Enable the Apache php7.4 module and restart the Apache Web server.
a2enmod php7.4
systemctl restart apache2
To check PHP Version.
php --version
Output:
root@server:~# php --version
PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
To test PHP scripts we need to add info.php file in the document.
nano /var/www/html/info.php
Add the following in the file.
<?php phpinfo(); ?>
To verify enter the following link in a web browser.
NOTE: Replace your server IP-address below.
http://server-ip-address/info.php
To Run PHP-FPM with Apache.[Optional]
FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for heavy-loaded sites.
NOTE: This is optional step PHP 7.4 is used to run the PHP code but if you want to run PHP code with PHP-FPM follow this step.
First, Disable PHP 7.4.
a2dismod php7.4
Next. Install PHP 7.4 FPM.
apt install php7.4-fpm
Enable proxy_fcgi and setenvif module.
a2enmod proxy_fcgi setenvif
Output:
Considering dependency proxy for proxy_fcgi:
Enabling module proxy.
Enabling module proxy_fcgi.
Module setenvif already enabled
To activate the new configuration, you need to run:
systemctl restart apache2
To enable php7.4-fpm file.
a2enconf php7.4-fpm
Restart the Apache.
systemctl restart apache2
To enable php7.4-fpm.
systemctl enable php7.4-fpm
To start php7.4-fpm.
systemctl start php7.4-fpm
To check the status of php7.4-fpm.
systemctl status php7.4-fpm
Output:
root@server:~# systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: >
Active: active (running) since Thu 2021-04-29 17:13:08 UTC; 15min ago
Docs: man:php-fpm7.4(8)
Process: 42271 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/>
Main PID: 42263 (php-fpm7.4)
Status: "Processes active: 0, idle: 2, Requests: 1, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 2280)
Memory: 8.1M
CGroup: /system.slice/php7.4-fpm.service
To verify enter the following link in a web browser.
NOTE: Replace your server IP-address below.
http://server-ip-address/info.php
Now you have successfully installed LAMP stack (Apache, MariaDB, and PHP7.4) on Ubuntu 21.04.