LinuxLinux MintTutorials

How To Install LAMP Stack on Linux Mint 20

Install LAMP Stack on Linux Mint 20

In this tutorial, we will show you how to install LAMP Stack on Linux Mint 20. For those of you who didn’t know, LAMP (a server stack) represents a full-featured stack containing the most popular web server known as Apache, the most popular database server MariaDB and the most popular open-source web programming language known as PHP. All components are free and open-source software, and the combination is suitable for building dynamic web pages. The LAMP stack is one of the most popular server configurations in the world.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you the step-by-step installation of LAMP Stack on a Linux Mint 20 (Ulyana) server.

Prerequisites

  • A server running one of the following operating systems: Linux Mint 20 (Ulyana).
  • It’s recommended that you use a fresh OS install to prevent any potential issues.
  • SSH access to the server (or just open Terminal if you’re on a desktop).
  • A non-root sudo user or access to the root user. We recommend acting as a non-root sudo user, however, as you can harm your system if you’re not careful when acting as the root.

Install LAMP Stack on Linux Mint 20 Ulyana

Step 1. Before running the tutorial below, it’s important to make sure your system is up to date by running the following apt commands in the terminal:

sudo apt update

Step 2. Installing the LAMP Stack on Linux Mint 20.

Run the command below on your terminal to install the LAMP server:

sudo apt install lamp-server^

When prompted with ‘do you want to continue press ‘Enter’ to continue the installation.

Testing Apache webserver:

Once you have completed the installation, run:

sudo systemctl start apache2.service
sudo systemctl enable apache2.service
  • Configure Firewall

After installing Apache it is necessary to modify UFW firewall rules to open HTTP and HTTPS ports. Run the following command:

sudo ufw allow 'Apache Full'

To verify changes run the following command:

$ sudo ufw status

Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Apache Full                ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Apache Full (v6)           ALLOW       Anywhere (v6)
  • Verify Apache Installation.

Apache2 serves any files for your website from /var/www/html the directory. Open your favorite browser and open the below URL to verify Apache installation:

http://your-ip-address

Configure MySQL:

After installation, MySQL will start automatically. To check the status type the following command:

sudo systemctl status mariadb
  • Secure MySQL from default settings.

By default, MySQL is not hardened. You can secure MySQL using the mysql_secure_installation script. you should read and below each step carefully which will set a root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB:

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

Remove anonymous users? [Y/n] y
 ... Success!

Disallow root login remotely? [Y/n] y
 ... Success!

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...
Thanks for using MariaDB!

To log in to MySQL, use the following command (note that it’s the same command you would use to log into a MariaDB database):

mysql -u root -p

Also try to create a new database, user, and assign privileges to a database:

## CREATE DATABASE
MySQL [(none)]> CREATE DATABASE mydb;
 
## CREATE USER ACCOUNT
MySQL [(none)]> CREATE USER 'dbusers'@'localhost' IDENTIFIED BY 'your-secret-passwd';
 
## GRANT PERMISSIONS ON DATABASE
MySQL [(none)]> GRANT ALL ON mydb.* TO 'dbusers'@'localhost';
 
##  RELOAD PRIVILEGES
MySQL [(none)]> FLUSH PRIVILEGES;

Then, restart the MariaDB database server and enable it to start on system start-up using:

sudo systemctl restart mysql
sudo systemctl enable mysql

Testing PHP:

Once it is completed installation, you can ensure that the latest stable release of PHP 7.4 is installed on your system by using the command:

php -v

To test PHP, create a test file named info.php with the content below. Save the file, then browse to it to see if PHP is working:

nano /var/www/html/info.php
<?php
phpinfo();
?>

Restart Apache2 to ensure that the changes take effect before testing PHP:

sudo systemctl restart apache2

Congratulations! You have successfully installed the LAMP Stack. Thanks for using this tutorial for installing LAMP (Apache, MariaDB, and PHP) in Linux Mint 20 systems. For additional help or useful information, we recommend you to check the official Apache, MariaDB, and PHP website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is a seasoned Linux system administrator with a wealth of experience in the field. Known for his contributions to idroot.us, r00t has authored numerous tutorials and guides, helping users navigate the complexities of Linux systems. His expertise spans across various Linux distributions, including Ubuntu, CentOS, and Debian. r00t's work is characterized by his ability to simplify complex concepts, making Linux more accessible to users of all skill levels. His dedication to the Linux community and his commitment to sharing knowledge makes him a respected figure in the field.
Back to top button