- Published on
Install Linux, Nginx, MySQL, PHP (LEMP stack) on Ubuntu 20.04
Step 1 – Installing the Nginx Web Server
sudo apt update
sudo apt install nginx
If you have the ufw
firewall enabled, as recommended in our initial server setup guide, you will need to allow connections to Nginx.
sudo ufw app list
Since you haven’t configured SSL for your server in this guide, you will only need to allow regular HTTP traffic on port 80
sudo ufw allow 'Nginx HTTP'
Step 2 — Installing MySQL
sudo apt install mysql-server
sudo mysql_secure_installation
Step 3 – Installing PHP
sudo apt install php-fpm php-mysql
Step 4 — Configuring Nginx to Use the PHP Processor
sudo mkdir /var/www/your_domain
sudo chown -R $USER:$USER /var/www/your_domain
sudo nano /etc/nginx/sites-available/your_domain
This will create a new blank file. Paste in the following bare-bones configuration:
server {
listen 80;
server_name your_domain www.your_domain;
root /var/www/your_domain;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Activate your configuration by linking to the config file from Nginx’s sites-enabled
directory:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/your_domain
sudo unlink /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx