WordPress runs on roughly two of every five websites on the internet — and the single biggest thing separating a fast one from a slow one is the web server underneath it. This guide uses OpenLiteSpeed, the free, open-source edition of the LiteSpeed web server, paired with MariaDB and a free Let's Encrypt certificate. You'll go from a fresh server to a live, HTTPS-secured WordPress site you fully own.
Every command below is meant to be copied and pasted in order. Alongside each step you'll find a short "why this matters" note — skim past them if you're a veteran, or read them if you want to understand what you're actually doing instead of just pasting blindly.
Why OpenLiteSpeed for WordPress?
You could run WordPress on Apache or Nginx. People do it every day. But OpenLiteSpeed wins for WordPress specifically, for three concrete reasons:
- LiteSpeed Cache (LSCache) — a server-level, full-page cache built into the web server and controlled by the official WordPress plugin. It's dramatically faster than the bolt-on PHP caching plugins you'd use on Nginx or Apache, because the cache lives in the server itself, not in PHP.
- HTTP/3 and QUIC, out of the box — the newest, fastest transport protocols are on by default, so visitors on flaky mobile connections still get a snappy site.
- An event-driven engine that holds thousands of simultaneous connections on modest RAM — which means a small cloud server goes a long way before you ever need to upsize.
The short version: for the same hardware, an OpenLiteSpeed + LSCache WordPress site typically serves far more traffic, far faster, than the same site on stock Apache or Nginx — at no software cost. That's the whole reason this stack exists.
Before you start
You'll need three things:
- A cloud server running a fresh Ubuntu 22.04 or 24.04 install, with root (or sudo) SSH access. 1 GB RAM works for a single site; 2 GB+ is comfortable. An Ace-Host cloud server with fast storage and our end-to-end redundant network is an ideal home for this.
- A domain name you control, so you can point it at the server and issue a real SSL certificate.
- Five minutes of patience. That's it.
Point your domain and connect
In your DNS provider, create two A records pointing at your server's public IP address — one for the bare domain and one for www:
# Type Name Value
A @ YOUR_SERVER_IP
A www YOUR_SERVER_IPGive DNS a few minutes to propagate, then connect to your server over SSH and bring it fully up to date:
ssh root@YOUR_SERVER_IP
apt update && apt upgrade -yWhy update first? A fresh image is rarely fully patched. Running updates now means every package you install next pulls the current, security-patched version — and you avoid chasing weird bugs later.
Install OpenLiteSpeed
OpenLiteSpeed isn't in Ubuntu's default repositories, so add LiteSpeed's official repo, then install the server and start it:
wget -O - https://repo.litespeed.sh | sudo bash
apt update
apt install openlitespeed -y
systemctl enable --now lshttpdConfirm it's running:
systemctl status lshttpd --no-pagerAce-Host tip: OpenLiteSpeed installs to /usr/local/lsws/. Its admin dashboard listens on port 7080 and a default demo site on 8088 — remember those two numbers, you'll use them shortly.
Install PHP (the LiteSpeed build)
OpenLiteSpeed uses its own PHP build called LSPHP, which talks to the server over the fast LSAPI protocol instead of PHP-FPM. Install PHP 8.3 plus the modules WordPress wants:
apt install lsphp83 lsphp83-common lsphp83-mysql lsphp83-curl \
lsphp83-imagick lsphp83-opcache lsphp83-intl -yWhy these modules? mysql lets WordPress talk to the database, curl powers updates and API calls, imagick handles image resizing, opcache caches compiled PHP for speed, and intl covers internationalization. Together they also clear WordPress's Site Health warnings, so your dashboard comes up green.
Install and secure MariaDB
MariaDB is the open-source database that stores everything WordPress remembers. Install it, start it, then run the built-in hardening wizard:
apt install mariadb-server mariadb-client -y
systemctl enable --now mariadb
mysql_secure_installationWhen the wizard asks, answer like this: switch to unix_socket auth (or set a root password), then Y to remove anonymous users, Y to disallow remote root login, Y to drop the test database, and Y to reload privileges.
Heads up: say yes to every prompt in the wizard. Each one closes a default hole — anonymous logins, a throwaway test database, remote root access — that attackers actively scan for. Skipping them is the most common way a brand-new database gets compromised.
Create the WordPress database
Open the database shell and create a dedicated database and user for this one site. Replace ChangeMe_Strong#Pass with a long random password:
mysql -u root -pCREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'ChangeMe_Strong#Pass';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;Why a separate user? Giving WordPress its own user with rights to only its own database is the principle of least privilege. If that one site is ever compromised, the damage is contained to a single database instead of your entire server. Veterans: this is also what lets you host multiple isolated sites cleanly later.
Set a password and open the WebAdmin
Set your OpenLiteSpeed dashboard login, then open the console in your browser:
/usr/local/lsws/admin/misc/admpass.shNow visit https://YOUR_SERVER_IP:7080 and log in with the username and password you just set. Your browser will warn about the certificate on this admin port — that's expected; continue anyway.
Ace-Host tip: the rest of the setup happens in this point-and-click WebAdmin console — no more config-file editing required. If you prefer the command line for everything, every screen here maps to a file under /usr/local/lsws/conf/, but the GUI is faster and harder to typo.
Download WordPress and point your site at it
Back in your SSH session, download the latest WordPress into the server's web directory and hand ownership to the web-server user:
cd /usr/local/lsws/Example/html
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
chown -R nobody:nogroup wordpressThen, in the WebAdmin console (port 7080), make two small changes and restart:
- Virtual Hosts → Example → General: set Document Root to
$VH_ROOT/html/wordpress/ - Listeners → Default → View → Example mapping: add your domain (e.g.
yourdomain.com) so the server answers for it on port 80 - Click the green Graceful Restart button (top right) to apply
What just happened? You told OpenLiteSpeed two things: where your site's files live (the document root) and which domain should serve them (the listener mapping). That's the entire job of a web server in two settings.
Finish the install in your browser
Open http://yourdomain.com in a browser. WordPress's famous five-minute installer appears. Choose your language, then enter the database details from Step 5:
Database Name wordpress
Username wp_user
Password ChangeMe_Strong#Pass
Database Host localhost
Table Prefix wp_Pick a site title, create your admin account with a strong, unique password, and click install. You now have a live WordPress site.
Don't reuse a password here. Your WordPress admin login is the single most attacked door on the whole server. Use a long, unique passphrase and, once you're in, add a two-factor authentication plugin. This one habit prevents the overwhelming majority of WordPress break-ins.
Turn on free HTTPS with Let's Encrypt
A live site isn't done until it's encrypted. Install Certbot and issue a free certificate for both your domain and its www version:
apt install certbot -y
certbot certonly --webroot \
-w /usr/local/lsws/Example/html/wordpress \
-d yourdomain.com -d www.yourdomain.comCertbot saves your certificate to /etc/letsencrypt/live/yourdomain.com/. Now wire it into OpenLiteSpeed in the WebAdmin console:
- Listeners → Add: create a listener named SSL, Port 443, Secure = Yes, then save and map your domain to the Example virtual host
- On that listener's SSL tab, set:
Private Key File /etc/letsencrypt/live/yourdomain.com/privkey.pem
Certificate File /etc/letsencrypt/live/yourdomain.com/fullchain.pemHit Graceful Restart. Then make HTTPS the default by adding a redirect under Virtual Hosts → Example → Rewrite → Rewrite Rules:
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]Certbot certificates last 90 days and renew themselves automatically. Tell the renewal to reload OpenLiteSpeed so a fresh certificate goes live without you lifting a finger:
certbot renew --deploy-hook "/usr/local/lsws/bin/lswsctrl restart" --dry-runAce-Host tip: if your DNS is on Cloudflare, you can instead use acme.sh with the Cloudflare API for fully hands-off DNS-validated certificates — handy if you run several sites. Either way, the certificate is free and trusted by every browser.
Switch on speed and lock the doors
This is the payoff step — and the one generic guides skip. In your WordPress dashboard, go to Plugins → Add New, search LiteSpeed Cache, install and activate it. It auto-detects OpenLiteSpeed and turns on server-level full-page caching, image optimization, and HTTP/3 delivery.
Why this matters most: LSCache is the reason you chose this stack. With it active, repeat visitors are served a fully-rendered page straight from the web server, skipping PHP and the database entirely. It's the difference between a site that buckles under a traffic spike and one that shrugs it off.
Finally, a few one-time hardening touches. Turn on the firewall, allowing only what you need:
ufw allow OpenSSH
ufw allow 80,443/tcp
ufw allow from YOUR_HOME_IP to any port 7080 proto tcp
ufw enableAnd disable the in-dashboard file editor so a compromised login can't rewrite your site's code — add this line to wp-config.php:
define('DISALLOW_FILE_EDIT', true);- Server: OpenLiteSpeed (admin on :7080)
- Database: MariaDB, least-privilege user
- HTTPS: Let's Encrypt, auto-renewing
- Speed: LiteSpeed Cache + QUIC
Prefer point-and-click? The 1-click alternative
Everything above gives you total control — and total responsibility. If you'd rather manage sites, email, DNS, SSL, and backups from a clean dashboard instead of the command line, run your cloud server with the Enhance control panel. It installs the whole stack for you and turns site creation into a few clicks, while you keep the full power of a real server underneath.
Enhance gives you a modern dashboard with one-click WordPress installs and migrations, automatic SSL, scheduled backups with one-click restore, DNS management, email, and built-in security — a firewall, brute-force protection, and ModSecurity with OWASP rules. It's the convenience people love about shared hosting, sitting on top of a server you actually own.
Why a cloud server beats shared hosting
Shared hosting is cheap for a reason: your site lives on one big machine alongside hundreds or thousands of strangers' sites, all drawing from the same pool of CPU, memory, and disk. It works — until a neighbor's runaway script, traffic spike, or security breach becomes your slow afternoon or your downtime. You don't control the server, you can't tune it, and "unlimited" plans are oversold by design.
A cloud server flips that. The resources are yours. The root access is yours. And with Enhance handling the panel for pennies, you give up almost none of the convenience. Here's the honest comparison:
| What you get | Typical shared hosting | Cloud server + Enhance |
|---|---|---|
| Dedicated CPU & RAM | Shared / oversold | Yours alone |
| Noisy-neighbor risk | High — one pool, many sites | None — isolated server |
| Security isolation | Account-level, shared kernel | Full container & server isolation |
| Root & full control | No | Yes |
| Choose your PHP / stack | Locked to host config | Your call |
| Scale up without migrating | Re-platform to a new plan | Resize in place |
| Control-panel cost | Bundled (you pay anyway) | $0.15/mo per site |
| Who answers support | Tier-1 script readers | A real system administrator |
The bottom line: for not much more than a serious shared plan, a cloud server gives you dedicated resources, real security isolation, and full control — the three things shared hosting structurally can't offer. Add Enhance for 15¢ a site and you keep the easy dashboard too. That's why we build it this way.
Ready to build it? Spin up an Ace-Host cloud server, or talk to a system administrator who will set the whole thing up with you.
Frequently asked questions
Is OpenLiteSpeed really free?
Yes. OpenLiteSpeed is the free, open-source edition of the LiteSpeed web server, with no license fee and no traffic limits. The LiteSpeed Cache plugin for WordPress is free too. You only pay for the server it runs on.
Is OpenLiteSpeed faster than Nginx for WordPress?
For WordPress specifically, usually yes — because of LiteSpeed Cache. LSCache is a server-level full-page cache that serves rendered pages without touching PHP or the database, which most Nginx setups can only approximate with extra plugins and tuning. On identical hardware, the cached LiteSpeed site typically handles far more concurrent visitors.
How much RAM do I need to run WordPress on a cloud server?
A single WordPress site runs comfortably on 1 GB of RAM, and 2 GB gives you headroom for traffic spikes, image processing, and a few plugins. Because OpenLiteSpeed is event-driven and LSCache offloads most requests, you can host more on less than you'd expect.
Do I need a control panel like Enhance or cPanel?
No — this guide sets everything up without one. A panel just makes ongoing management (new sites, SSL, backups, email, DNS) point-and-click instead of command-line. On a cloud server, Enhance does that for $0.15/month per website, with no per-server fee.
Will my Let's Encrypt certificate renew automatically?
Yes. Certbot installs a scheduled renewal that runs in the background, and the deploy hook in Step 9 reloads OpenLiteSpeed so the fresh certificate goes live automatically. You don't have to touch it.
Can I host more than one WordPress site on the same server?
Absolutely. Repeat the database and virtual-host steps for each site, or let Enhance manage multiple isolated sites for you. A single cloud server can comfortably host many WordPress sites — and you keep every one of them on infrastructure you control.