Technology Encyclopedia Home >How I Moved My WordPress Blog to a Cloud Server in Under 30 Minutes — A Complete Walkthrough

How I Moved My WordPress Blog to a Cloud Server in Under 30 Minutes — A Complete Walkthrough

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.


Table of Contents

  1. Why Move WordPress to a Cloud Server?
  2. What You'll Need (It's Less Than You Think)
  3. Part 1 — Spinning Up the Server (10 min)
  4. Part 2 — Getting Into WordPress for the First Time
  5. Part 3 — Pointing Your Domain and Getting HTTPS
  6. Part 4 — The Plugins I Actually Use
  7. Part 5 — Backups (Don't Skip This)
  8. Part 6 — The One Thing That Tripped Me Up
  9. Performance Tweaks That Made a Real Difference
  10. Six Months Later — Honest Assessment

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

Why Move WordPress to a Cloud Server? {#why-leave}

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:

  • Root access — install any PHP extension, configure Nginx/Apache exactly as you need
  • Dedicated resources — the CPU and RAM you pay for are yours alone
  • Predictable performance — traffic spikes on other sites don't affect you
  • Faster global load times — choose a data center close to your readers
  • Complete data ownership — your database, your files, your backup schedule

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.


What You'll Need (It's Less Than You Think) {#prerequisites}

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.


Part 1 — Spinning Up the Server (10 min) {#part-1}

Step 1: Create the instance

Log into the console, click LighthouseNew. 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:

  • Nginx
  • MySQL 8.0
  • PHP 8.x
  • Certbot (for free SSL)
  • phpMyAdmin

No setup required on your end. This is the part that used to take me a few hours on a raw Ubuntu server.

Step 2: Pick a plan

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.

Step 3: Pick a region

Choose the data center closest to where most of your readers are:

  • US East (Virginia) — North America and Europe
  • US West (Silicon Valley) — West Coast and Asia-Pacific
  • Singapore or Tokyo — Southeast Asia and Oceania

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.

Step 4: Open the right firewall ports

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

Part 2 — Getting Into WordPress for the First Time {#part-2}

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:

  • The WordPress admin URL (http://YOUR_IP/wp-admin)
  • Your initial admin username and password

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.

Completing the setup wizard

Visit http://YOUR_SERVER_IP/ in your browser. WordPress will show you a 4-field setup screen:

  1. Site title
  2. Admin username (don't use "admin" — that's the first thing bots try)
  3. Password (make it strong)
  4. Email address

Click Install WordPress. Done. Your blog exists.


Part 3 — Pointing Your Domain and Getting HTTPS {#part-3}

DNS: the most common source of confusion

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.

HTTPS: two commands and you're done

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.


Part 4 — The Plugins I Actually Use {#part-4}

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.


Part 5 — Backups (Don't Skip This) {#part-5}

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"

Part 6 — The One Thing That Tripped Me Up {#part-6-gotcha}

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.


Performance Tweaks That Made a Real Difference {#performance}

Gzip compression (5 minutes, big impact)

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.

Redis object caching (makes repeat visits snappy)

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.

Tencent Cloud EdgeOne for the CDN layer

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.


Six Months Later — Honest Assessment {#verdict}

Here's what changed after moving to a cloud server:

What improved:

  • Page load times dropped significantly — under 1 second for most pages
  • Full control over server configuration, PHP version, and extensions
  • I know exactly where my data is and who has access to it
  • Backups run on my schedule, to storage I control

What requires more attention:

  • You're responsible for system updates (sudo apt update && sudo apt upgrade occasionally)
  • When something breaks, you debug it yourself — no managed support team
  • Backups need to be actively configured (which I covered in Part 5)

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.


Troubleshooting {#troubleshooting}

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

Frequently Asked Questions {#faq}

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