From Zero to VPS
A complete guide to moving WordPress from shared hosting to a self-managed VPS. Written by someone who broke things, rebuilt servers, and learned the hard way.
Build the server in the right order
Decide if VPS is the right move before buying anything.
Learn the terminal and SSH habits this series depends on.
Choose a VPS plan, distro, and first server setup path.
Lock down the server before WordPress touches it.
Install the LEMP stack, WordPress, SSL, and core config.
Tune performance, back up data, monitor, and operate safely.
The first time I heard "VPS," I closed the tab. Terminal, SSH keys, Linux - it all looked like something meant for real sysadmins.
Then I deleted an entire server with one wrong command. Over ten websites, gone in a second. No warning, no confirmation, no undo.
This series is written from those failures, not from documentation. Every common mistake in this series, I made first.
If you are still deciding whether WordPress should run on a VPS at all, start with my WordPress VPS hosting guide. If you already know you are going the VPS route and want the speed side of the stack, see the WordPress performance stack guide.
AI can explain a command to you. It cannot take the consequences when you run the wrong one.
This series exists because you need to understand what you are doing - before you paste a command into a terminal.
- Your shared hosting is hitting its limits
- You want control over your own server
- You are willing to learn, including rebuilding from scratch
- You want to run multiple WordPress sites on one VPS
- Shared hosting is still working fine for you
- You do not want to manage a server yourself
- You need things stable immediately, no learning curve
Series contents
Each part has a concrete job. You can read straight through, or jump to the part where your current server problem starts.
Mindset & Orientation
Understand what a VPS is, who should use one, and what can go wrong.
- 0.1 What Is a VPS? A Plain-English Explanation for WordPress Users →
- 0.2 Shared Hosting vs VPS vs Managed: Which One Do You Actually Need? →
- 0.3 The Real Fears About Using a VPS — And What They Actually Mean →
- 0.4 What You Actually Need Before Starting — The Real Checklist →
- 0.5 What Is Linux — And Why Does Every VPS Run It? →
Terminal & Linux Basics
Get comfortable enough with terminal, SSH, Linux folders, and daily commands.
- 1.1 What Is a Terminal — It's Just Typing Instead of Clicking →
- 1.2 20 Linux Commands You'll Actually Use Every Day →
- 1.3 How to Read Terminal Errors — The Most Important Skill on a VPS →
- 1.4 Nano vs Vim — Edit Server Files Without Getting Stuck →
- 1.5 File Permissions — Why 755 and 644 Appear Everywhere →
- 1.6 Dangerous Linux Commands — And the Story of How I Lost 10 Websites in One Second →
Buying & Connecting Your First VPS
Choose a provider and create the server without skipping the basic decisions.
- 2.1 Vultr vs DigitalOcean vs Hetzner — Which VPS Should You Buy? →
- 2.2 How to Choose Your VPS Plan — RAM, CPU, and Storage Explained →
- 2.3 Rocky Linux vs Ubuntu vs Debian — Which OS Should You Choose? →
- 2.4 What Is SSH — And Why You Need to Understand It Before Connecting →
- 2.5 How to Create an SSH Key — The Security Step You Can't Skip →
- 2.6 Connecting to Your VPS for the First Time →
- 2.7 First Things to Do After Connecting — Initial Server Setup →
VPS Security Basics
Secure SSH, firewall rules, Fail2ban, users, and permissions before installing apps.
Installing the LEMP Stack
Build the Nginx, PHP-FPM, MariaDB, and WordPress foundation.
- 4.1 LAMP vs LEMP — Why This Series Uses Nginx →
- 4.2 Installing Nginx on Rocky Linux 9 →
- 4.3 Installing MariaDB and Creating the WordPress Database →
- 4.4 Installing PHP-FPM and Choosing the Right Version →
- 4.5 Configuring the Nginx Server Block with FastCGI Cache →
- 4.6 Testing the LEMP Stack Before Installing WordPress →
Installing WordPress on VPS
Configure WordPress, SSL, wp-config, file permissions, and a complete install.
- 5.1 Downloading and Extracting WordPress via Command Line →
- 5.2 Configuring wp-config.php — Connecting WordPress to the Database →
- 5.3 Setting WordPress File Permissions Correctly →
- 5.4 Installing SSL with Let's Encrypt and Certbot →
- 5.5 Pointing Your Domain to the VPS and Handling DNS Propagation →
- 5.6 Completing the WordPress Installation — From Browser Setup to First Secure Configuration →
Performance Optimization
Add FastCGI cache, Redis, PHP-FPM tuning, and MariaDB tuning.
Backup & Recovery
Create a backup system you can actually restore from.
Day-to-Day Operations
Monitor, update, add sites, and keep the server boring in production.
Start carefully. Break less. Understand more.
If you are still comparing providers, read the Vultr material first. If the decision is already made, start with article 0.1 and move in order.