I've been running a personal blog for about three years. As the site grew, I started wanting more flexibility: faster load times, the ability to install custom PHP extensions, root access to configure things exactly the way I needed.
Moving to a cloud server was the natural next step. The whole migration took me about 90 minutes. I've been running on it for six months now, and I'm glad I made the switch.
Here's exactly what I did — step by step.
I used Tencent Cloud Lighthouse for this. It has a pre-built WordPress image that sets up Nginx, MySQL, and PHP for you automatically — no manual stack configuration. That was the main reason I picked it.
Key Takeaways
- Tencent Cloud Lighthouse has a pre-built WordPress image — no manual LAMP/LNMP setup required
- Total setup time: ~30 minutes including DNS propagation
- Cost: ~$5–6/month for a personal blog, with a predictable flat monthly rate
- Free HTTPS via Certbot, automated backups via Lighthouse snapshots
- Upgrade server specs from the console without re-provisioning
Shared hosting is a great starting point — it's affordable, easy to manage, and requires no server knowledge. For many sites it's exactly the right choice.
At some point though, you may find yourself wanting more: full root access, the ability to install any PHP extension, dedicated resources that don't fluctuate with other sites on the same machine, or simply more control over how your server is configured.
Self-hosting WordPress on a cloud server gives you all of that:
The tradeoff is that you manage the server yourself. With Lighthouse's pre-configured WordPress image, though, the initial setup takes about 10 minutes rather than an afternoon.
Before we start, here's the honest list:
| What | Why |
|---|---|
| A Tencent Cloud account | Free to sign up, takes 2 minutes |
| A domain name | You probably already have one |
| A terminal (SSH client) | macOS/Linux: it's already there. Windows: Windows Terminal works great |
| About 30 minutes | Including waiting for DNS to propagate |
That's genuinely it. You don't need to know how Linux works deeply. You don't need to know what Nginx is. The WordPress image handles the complicated parts.
What's this going to cost? The starter plan that's fine for a personal blog runs about $5–$6/month. That's less than most people spend on coffee per week. Check the current pricing at tencentcloud.com/act/pro/lighthouse — there are usually new-user deals.
Log into the console, click Lighthouse → New. On the configuration screen, the important bit is the image selection:
Switch to Application Images and select WordPress (latest).
That image comes with everything pre-installed and pre-configured:
No setup required on your end. This is the part that used to take me a few hours on a raw Ubuntu server.
I started on the Starter plan (2 vCPU, 2 GB RAM) and it's been more than enough for a personal blog. Here's a quick guide:
| Plan | vCPU | RAM | Bandwidth | Best For |
|---|---|---|---|---|
| Starter | 2 | 2 GB | 4 Mbps | Personal blog, under 1K visitors/day |
| Basic | 2 | 4 GB | 6 Mbps | Growing blog, up to 5K visitors/day |
| Standard | 4 | 8 GB | 8 Mbps | WooCommerce store or high traffic |
One thing I appreciate: if you need to upgrade later, it's a few clicks and your data stays intact. I haven't had to yet, but it's good to know it's not a whole migration.
Choose the data center closest to where most of your readers are:
I'm writing mostly for a North American audience, so I went with Virginia. My GTmetrix scores went from ~3.5 seconds on shared hosting to under 800ms. I'm not exaggerating.
After the instance is created, click the Firewall tab and make sure these ports are open:
| Port | Protocol | What it's for |
|---|---|---|
| 80 | TCP | Regular HTTP |
| 443 | TCP | HTTPS (the padlock) |
| 22 | TCP | SSH access |
Here's where I made my first mistake, which I'll save you from.
Go to App Management on your instance page. You'll see a section with:
http://YOUR_IP/wp-admin)Change that password the moment you log in. I forgot to do this on a staging server once. A week later it had been compromised and was sending spam. Never again.
There's also a neat feature called OrcaTerm — it's a browser-based SSH terminal built directly into the Lighthouse console. I use it for quick server commands without needing to open my local terminal. If you're on Windows and haven't set up SSH yet, this saves you a bunch of setup time.
To see all your WordPress credentials, click OrcaTerm and run:
cat /home/lighthouse/readme.txt
That file has everything: database name, DB password, admin password. Screenshot it and put it somewhere safe.
Visit http://YOUR_SERVER_IP/ in your browser. WordPress will show you a 4-field setup screen:
Click Install WordPress. Done. Your blog exists.
In your domain registrar's panel, add two A records pointing to your server's IP:
| Type | Host | Value | TTL |
|---|---|---|---|
| A | @ |
Your server IP | 600 |
| A | www |
Your server IP | 600 |
Then wait. DNS can take anywhere from 5 minutes to a couple of hours. I always check with whatsmydns.net — you can see when propagation has reached different parts of the world.
Once DNS is pointing correctly, SSH into your server (or use OrcaTerm) and run:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Follow the prompts. When it asks whether to redirect HTTP traffic to HTTPS, say yes. Certbot handles the rest — it configures Nginx and sets up auto-renewal automatically.
Then go to WordPress Settings → General and update both URL fields to https://yourdomain.com.
That's your whole HTTPS setup. It used to feel like a big deal to me. It takes about 90 seconds now.
I've tried a lot of WordPress plugins over three years. Here's what I kept:
| Plugin | Why I use it | Could I skip it? |
|---|---|---|
| Yoast SEO | SEO meta tags, sitemaps | No — it's basically mandatory |
| WP Super Cache | Page caching (huge speed difference) | Don't skip this either |
| Akismet Anti-Spam | Blocks comment spam automatically | Yes, if you disable comments |
| UpdraftPlus | Automated backups to Google Drive | No — just install it |
| ShortPixel | Compresses images on upload | Optional but recommended |
| Wordfence | Security scanner and firewall | Recommended for public sites |
Honestly, don't go plugin-crazy. Every plugin adds overhead. Start with Yoast, WP Super Cache, Akismet, and UpdraftPlus. That's the core four.
I'm putting this early because I've seen too many people treat backups as an afterthought. "I'll set it up later." Later never comes until something breaks.
The easiest option: Lighthouse auto-snapshots
In the console, go to your instance → Snapshots → turn on Auto Snapshot. Set it to daily with 7-day retention. Done. If anything ever goes catastrophically wrong, you restore to yesterday's snapshot in about two minutes.
This is a full disk image — OS, WordPress files, database, everything.
The belt-and-suspenders option: UpdraftPlus to cloud storage
Install UpdraftPlus, connect it to Google Drive or S3, set daily database backups and weekly full backups. Now you have both a system-level snapshot AND a portable backup you can restore to any host.
I use both. Paranoid? Maybe. But I sleep better.
If you want to do it manually (for the curious):
DB_NAME="wordpress"
DB_USER="wordpress"
DB_PASS="your_password_from_readme.txt"
DATE=$(date +%Y%m%d_%H%M%S)
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > ~/backup_wp_$DATE.sql.gz
echo "Saved: backup_wp_$DATE.sql.gz"
Okay, here's the thing I wish someone had told me.
After I enabled HTTPS with Certbot, I went to WordPress settings and updated the URLs to https://yourdomain.com. So far so good. But I'd forgotten that WordPress stores URLs in the database too — in the options table.
The result? Mixed content warnings everywhere. My browser was showing the padlock but flagging half the page as "insecure" because some image URLs and links were still pointing to http://.
The fix was simple once I knew what it was. Install the Better Search Replace plugin, do a search-and-replace in the database swapping http://yourdomain.com for https://yourdomain.com. Run it. Problem gone.
If you follow the steps in order (set HTTPS, then install WordPress through the wizard), you won't hit this. I hit it because I was migrating an existing site. Just flagging it in case you're doing the same.
Edit your Nginx config:
sudo nano /etc/nginx/nginx.conf
Add this inside the http {} block:
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
Then reload: sudo nginx -s reload
This alone can cut your page weight by 60–70% for text-heavy pages.
sudo apt install -y redis-server
sudo systemctl enable --now redis
In WordPress, install Redis Object Cache from the plugin directory. Then add these two lines to wp-config.php:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
Database queries that WordPress runs on every page load get cached in memory. For a content-heavy site, this is a meaningful improvement.
If you have international readers, adding a CDN in front of your site makes a significant difference — especially for visitors far from your server's data center region.
I use Tencent Cloud EdgeOne for this. It caches your static assets (images, CSS, JS) at edge nodes around the world, so your visitors get content delivered from a node close to them instead of hitting your origin server every time. It also handles DDoS mitigation and bot protection at the edge — meaning most attack traffic never reaches your Lighthouse instance at all.
The setup is straightforward: point your domain's nameservers to EdgeOne, configure your origin (your Lighthouse IP), and set caching rules. For a WordPress blog, the default caching configuration works well out of the box. My Time to First Byte for US visitors dropped noticeably after switching, and the security layer is a genuine bonus on top of that.
Here's what changed after moving to a cloud server:
What improved:
What requires more attention:
sudo apt update && sudo apt upgrade occasionally)My overall take:
| Shared Hosting | Tencent Cloud Lighthouse | |
|---|---|---|
| Monthly cost | $5–$15 | $5–$12 |
| Root access | No | Full |
| Resource isolation | Shared | Dedicated |
| Setup time | Near zero | ~30 minutes |
| Configuration flexibility | Limited by plan | Unlimited |
| Maintenance required | Minimal | Some (updates, monitoring) |
For a personal blog or small business site where you want control and good performance, a cloud server is a solid choice. If you're comfortable copying and pasting a few terminal commands, you can absolutely manage it yourself.
| Issue | Likely Cause | Fix |
|---|---|---|
| Connection refused | Service not running or wrong port | Check systemctl status SERVICE and verify firewall rules |
| Permission denied | Wrong file ownership or permissions | Check file ownership with ls -la and use chown/chmod to fix |
| 502 Bad Gateway | Backend service not running | Restart the backend service; check logs with journalctl -u SERVICE |
| SSL certificate error | Certificate expired or domain mismatch | Run sudo certbot renew and verify domain DNS points to server IP |
| Service not starting | Config error or missing dependency | Check logs with journalctl -u SERVICE -n 50 for specific error |
| Out of disk space | Logs or data accumulation | Run df -h to identify usage; clean logs or attach CBS storage |
| High memory usage | Too many processes or memory leak | Check with htop; consider upgrading instance plan if consistently high |
| Firewall blocking traffic | Port not open in UFW or Lighthouse console | Open port in Lighthouse console firewall AND sudo ufw allow PORT |
How much does it cost to host WordPress on a cloud server?
Tencent Cloud Lighthouse plans start at around $5–6/month. For a personal blog with moderate traffic, the 2 GB RAM Starter plan is sufficient. Costs scale predictably as your traffic grows.
Do I need to know Linux to host WordPress on a VPS?
Not deeply. With the Lighthouse WordPress application image, the server is pre-configured. You need to copy-paste a few terminal commands for HTTPS setup and occasional maintenance. No Linux expertise required.
Is hosting WordPress on a VPS faster than shared hosting?
Generally yes. On a VPS, your CPU and RAM are dedicated to your site rather than shared with hundreds of others. After migrating, most users see page load times drop from 2–5 seconds to under 1 second.
How do I back up a self-hosted WordPress site?
Two approaches work well together: Lighthouse's built-in snapshot feature (automated full-server backups) and the UpdraftPlus WordPress plugin (automated file and database backups to Google Drive or S3). Using both gives full coverage.
Can I migrate an existing WordPress site to Tencent Cloud Lighthouse?
Yes. The standard migration process: export your WordPress database and files from the old host, import them to the new server, update DNS to point to the new IP. The Better Search Replace plugin helps update hardcoded URLs in the database.
What happens if my blog gets a traffic spike?
On a VPS, you have dedicated resources — a traffic spike won't affect you the way it would on shared hosting. If you consistently need more capacity, Lighthouse lets you upgrade the plan spec from the control panel without re-provisioning.
Ready to make the switch?
👉 Get started with Tencent Cloud Lighthouse
👉 View current pricing and launch promotions
👉 Explore all active deals and offers