How to install WordPress on LEMP stack (Nginx) on a VPS

WordPress is one of the most popular content management systems (CMS) in the world, powering millions of websites across the globe. For those looking to leverage the performance benefits of a LEMP stack (Linux, Nginx, MariaDB/MySQL, PHP) on a Virtual Private Server (VPS), installing WordPress can optimize your web presence with robust and scalable solutions. This article will guide you through the steps of installing WordPress on a LEMP stack and configuring Nginx for optimal performance.

Step-by-Step Guide to Installing WordPress

  1. Update Your Server and Install LEMP Stack: Before installing WordPress, ensure that your VPS is up-to-date. Connect to your server via SSH and run sudo apt update && sudo apt upgrade. Next, install the LEMP stack. You can install Nginx, MySQL, and PHP with the command: sudo apt install nginx mysql-server php-fpm php-mysql. During the installation, you will be prompted to set a password for the MySQL root user.

  2. Create a MySQL Database and User: WordPress uses a database to manage data. Log in to the MySQL shell with sudo mysql and create a new database and user for WordPress. For example, use:

    CREATE DATABASE wordpress;
    CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;

    Replace ‘password’ with a secure password of your choice.

  3. Download and Configure WordPress: Go to the web root directory (typically /var/www/html) and remove any existing files. Download the latest WordPress version with wget https://wordpress.org/latest.tar.gz. Extract the archive with tar xzvf latest.tar.gz and move the contents to the root directory. Configure WordPress by copying the sample configuration file: cp wp-config-sample.php wp-config.php. Edit the wp-config.php file to enter the details of the database name, user, and password you created earlier.

Configuring Nginx for WordPress on LEMP

  1. Configure Nginx Server Block: Start by creating a new server block configuration for your WordPress site. Open a new configuration file in Nginx’s sites-available directory with sudo nano /etc/nginx/sites-available/wordpress. Configure the server block to listen on the default web port and to serve files from your WordPress directory. The configuration should include the handling of PHP files using the PHP processor and specify the server name (domain or IP).

  2. Enable Permalinks in WordPress: To use SEO-friendly URL structures, WordPress needs to rewrite rules that must be specified in Nginx’s configuration. Inside your server block, add the following location block:

    location / {
       try_files $uri $uri/ /index.php?$args;
    }

    This directive tells Nginx to serve any PHP scripts directly and to pass all other requests to index.php with the original query string parameters.

  3. Activate the Configuration and Restart Nginx: After configuring your server block, enable it by creating a symbolic link to the sites-enabled directory with sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/. Test the Nginx configuration for errors with sudo nginx -t. If everything is set correctly, restart Nginx to apply the changes with sudo systemctl restart nginx.

By following the outlined steps, you can successfully install WordPress on a LEMP stack using Nginx on your VPS. This setup not only leverages the speed and efficiency of Nginx but also ensures that your WordPress site is scalable and secure. Remember to regularly maintain and update your WordPress installation and Nginx server to protect against vulnerabilities and ensure optimal performance.

Hot this week

How to Secure a WordPress Website Using Cloudflare: The Complete Guide for 2026

WordPress is the most popular website platform in the...

What Happens During a Quarterly Configuration Review? A Walkthrough for Armor Business Customers

If you're on Armor Business, a quarterly configuration review...

Why Free DDoS Protection Isn’t Always Enough for Your Business Website

When business owners first learn about website security, one...

Cloudflare vs Traditional Firewalls: Which Provides Better Website Security?

Website security has become one of the most important...

Bot Traffic 101: How to Tell Good Bots From Bad Ones on Your Website

Seeing "bot traffic" in your analytics can trigger an...

Topics

How to Secure a WordPress Website Using Cloudflare: The Complete Guide for 2026

WordPress is the most popular website platform in the...

What Happens During a Quarterly Configuration Review? A Walkthrough for Armor Business Customers

If you're on Armor Business, a quarterly configuration review...

Why Free DDoS Protection Isn’t Always Enough for Your Business Website

When business owners first learn about website security, one...

Cloudflare vs Traditional Firewalls: Which Provides Better Website Security?

Website security has become one of the most important...

Bot Traffic 101: How to Tell Good Bots From Bad Ones on Your Website

Seeing "bot traffic" in your analytics can trigger an...

What Does “Origin Server” Mean and Why Does It Matter for Website Security?

"Origin server" is a term that gets used constantly...
spot_img

Related Articles

Popular Categories

spot_imgspot_img