How to Install LEMP Stack on Debian 10

The term LEMP is an acronym of the names of its four open-source components:

  • L - Linux operating system
  • E - Nginx, an HTTP and reverse proxy server
  • M - MySQL or MariaDB relational database management system
  • P - PHP programming language.

In this series, we’ll cover how to install a LEMP stack on Debian 10. We will show you how to install Nginx, generate a free Let’s Encrypt SSL certificate, install and secure MariaDB, and install PHP.

The detailed tutorials that are part of this series are listed at the end of this page.

If you are in a hurry and don’t want to read more detailed documentation, you can install LEMP Stack on your Debian 10 server by following our Quickstart section.

Install LEMP Stack on Debian 10 [Quickstart]

This quickstart shows the basic steps required to get a LEMP stack installed on Debian 10.

Prerequisites

The user you are logged in as must have sudo privileges to be able to install packages.

Step 1. Installing Nginx

Nginx is available in default Debian repositories. Update the packages index and install Nginx by running the following commands:

sudo apt updatesudo apt install nginx

Nginx service will automatically start after the installation process is complete.

Step 2. Installing MySQL

MariaDB is the default database system in Debian 10. To install it on your server, type:

sudo apt install mariadb-server

Once the installation is completed, issue the mysql_secure_installation command to improve the security of the MariaDB installation:

sudo mysql_secure_installation

You will be asked to set the root password, remove the anonymous user, restrict root user access to the local machine, and remove the test database. You should answer “Y” (yes) to all questions.

If you want to install MySQL instead of MariaDB, check our tutorial for installation instructions.

Step 3. Installing PHP

Debian 10 ships with PHP version 7.3. To install PHP and most common PHP modules, use the following command:

sudo apt install php-fpm php-opcache php-cli php-gd php-curl php-mysql

Step 4. Configuring Nginx to Process PHP Pages

Now that you have all of the LEMP components installed, edit the Nginx virtual host configuration file and add the following lines so that Nginx can process PHP files:

server {
  # other code

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php3.0-fpm.sock;
  }
}

Save the file and restart the Nginx service for the changes to take effect:

sudo systemctl restart nginx

More Information

For more detailed instructions about each step, please consult the following tutorials.

Tutorials