Skip to content
Cloudj

VPS use cases

WordPress VPS for Vietnamese websites: stack, sizing and setup

Set up a WordPress VPS for Vietnamese visitors: Cloudj has no servers in Vietnam, so choose Singapore, Hong Kong or Tokyo, size the server and add caching.

Updated · 6 min read

A WordPress VPS gives a Vietnamese website what shared hosting usually cannot: its own CPU and memory, full control over PHP and caching, and the freedom to choose where the server sits. This guide covers the three decisions that matter most for a site whose audience sits on Vietnamese ISPs: where to place the server, how big to make it, and how to build a lean LEMP stack (Linux, Nginx, MariaDB, PHP) with caching that keeps pages fast under load.

One thing up front: Cloudj does not have servers in Vietnam. The closest Cloudj locations to Vietnamese readers are Singapore, Hong Kong and Tokyo. The rest of this guide explains how to choose between them and how to set up WordPress so that the extra distance matters as little as possible.

Where to host: Singapore, Hong Kong or Tokyo

A server outside Vietnam adds network distance compared with a host inside the country: requests from Viettel, VNPT or FPT subscribers have to cross international links, and how well that works depends on each ISP's routes at the time. For a WordPress site this is usually manageable, because a well-cached page needs only a few round trips, but it is worth measuring rather than assuming.

The three nearest Cloudj locations each have a different strength:

  • Singapore is the regional hub of Southeast Asia. It suits sites whose readers are in Vietnam and also in Thailand, Malaysia, Indonesia or the Philippines.
  • Hong Kong sits to the north-east of Vietnam and is a natural candidate when many readers are in northern Vietnam, or when the site also serves readers in Hong Kong, Taiwan or southern China.
  • Tokyo is further away, but is a sound choice when the site also has readers in Japan or Korea, or when your measurements show the best routes from your audience's ISPs go there.

How to choose:

  1. Deploy a small hourly server in two or three of these locations.
  2. Ask a few readers or colleagues on different Vietnamese ISPs (Viettel, VNPT, FPT, mobile networks) to run ping and mtr to each server, ideally in the evening when networks are busiest. The guide to testing VPS latency with ping and mtr shows how to read the results.
  3. Keep the location with the lowest and most stable results, and delete the others. Hourly servers are billed while they exist, even when stopped.

The Asia VPS guide and the Singapore vs Hong Kong vs Tokyo comparison go deeper into the trade-offs. If your site must be hosted inside Vietnam, for example because of a contract or policy, a Cloudj server is not the right fit and you need an in-country host.

Sizing a WordPress VPS

WordPress itself is light. What consumes memory is PHP-FPM workers, the database and any object cache. Reasonable starting points:

Site profileStarting sizeNotes
Blog or company site, low traffic1 vCPU, 2 GB RAMEnough with page caching
Busy blog or small WooCommerce shop2 vCPU, 4 GB RAMRoom for Redis and more PHP workers
Several sites or a larger shop4 vCPU, 8 GB RAMConsider dedicated CPU for steady load

A 1 GB server can run WordPress, but MariaDB and PHP together leave little headroom, so add swap if you go that small. Shared CPU is fine for most content sites; WooCommerce stores with constant checkout and search activity benefit from general purpose or dedicated CPU. You can resize CPU and RAM later from the console and grow the disk, so start modestly. For a closer look at each location, read best VPS in Singapore, best VPS in Hong Kong and best VPS in Japan.

Installing the LEMP stack

The commands below assume a fresh Ubuntu 24.04 server. Log in over SSH, then update and install the packages:

sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx mariadb-server php-fpm php-mysql php-curl php-gd \
  php-mbstring php-xml php-zip php-intl php-imagick unzip
sudo mysql_secure_installation

Create a database and a dedicated user for WordPress:

sudo mysql -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
sudo mysql -e "CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'use-a-long-random-password';"
sudo mysql -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES;"

The utf8mb4 character set matters for Vietnamese: it stores every diacritic and emoji your editors might paste in. Download WordPress into the web root:

cd /tmp && curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
sudo mv wordpress /var/www/example.vn
sudo chown -R www-data:www-data /var/www/example.vn

Create /etc/nginx/sites-available/example.vn. Confirm your PHP version with php -v; Ubuntu 24.04 ships PHP 8.3, so the socket is php8.3-fpm.sock.

server {
    listen 80;
    server_name example.vn www.example.vn;
    root /var/www/example.vn;
    index index.php;
    client_max_body_size 64M;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }

    location ~* \.(css|js|jpg|jpeg|png|webp|svg|woff2)$ {
        expires 30d;
        access_log off;
    }
}

Enable it, then request a free certificate from Let's Encrypt:

sudo ln -s /etc/nginx/sites-available/example.vn /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.vn -d www.example.vn

Open the domain in a browser and finish the WordPress installer with the database details you created. If you want a fuller explanation of server blocks and HTTPS, the Nginx reverse proxy and SSL guide goes step by step.

Caching that actually helps

Caching is where a VPS pulls ahead of shared hosting, because you control every layer.

  1. OPcache is enabled by default with PHP-FPM on Ubuntu. It keeps compiled PHP in memory and needs no work from you.
  2. Object cache with Redis stores database query results. Install it with sudo apt install -y redis-server php-redis, restart PHP-FPM, and enable a Redis object cache plugin in WordPress. This helps most on WooCommerce and on sites with many logged-in users.
  3. Page cache serves finished HTML to anonymous visitors without touching PHP. A caching plugin that writes static files, or Nginx FastCGI cache, both work. Exclude the cart, checkout and account pages on a shop.
  4. Image weight often matters more than server tuning. Serve WebP and size images for mobile, since most Vietnamese visitors browse on phones.
  5. Fewer round trips matter more when the server is abroad. Cached HTML, long browser cache lifetimes for static files and fewer third-party scripts all reduce how often a visitor's browser has to reach the server.

After caching, tune PHP-FPM in /etc/php/8.3/fpm/pool.d/www.conf. The pm.max_children value should fit in RAM: divide the memory you can spare for PHP by the typical size of one worker (check with ps or top), and leave room for MariaDB.

Keeping it healthy

  • Harden the server first: SSH keys, a firewall that only opens ports 22, 80 and 443, and automatic security updates. The new VPS security checklist lists each step.
  • Back up both the database (mysqldump) and wp-content to storage outside the server, on a schedule, and test a restore at least once.
  • Watch CPU, RAM and network graphs in the console after a campaign or a post goes viral, and resize before the site slows down.

FAQ

Is 1 vCPU and 2 GB RAM enough for WordPress?

For a blog or company site with modest traffic and page caching, usually yes. Add capacity when you run WooCommerce, many plugins or several sites on one server.

Should I use a control panel?

A panel is convenient but uses memory and adds attack surface. A plain LEMP stack as above is lighter; choose a panel only if non-technical staff need to manage the server.

Does Cloudj have a VPS in Vietnam?

No. Cloudj's nearest server locations to Vietnam are Singapore, Hong Kong and Tokyo. If your site has to be hosted inside Vietnam, use an in-country host.

Can I pay in VND?

Yes. Vietnamese customers can top up the Cloudj account balance by bank transfer in VND, and servers are paid from that balance.

Can I move from shared hosting without downtime?

Mostly. Copy files and the database to the new server, test it with a hosts-file entry, then switch DNS. The website migration guide covers the order of steps.

Launch your WordPress server

Measure from your readers' ISPs, pick Singapore, Hong Kong or Tokyo, start with a modest size and grow when the graphs say so. You can see live prices on the pricing page, and the Cloudj console shows the exact cost before you deploy.

Deploy a server or order proxies

Pick a location in the console, see the live price, and pay from your balance.