Web Hosting 10 February 2026 12 min read Frankfurt, Germany

Install WordPress on
Germany VPS — LEMP Guide

WordPress on shared hosting is a performance bottleneck. A Germany VPS with Nginx, PHP 8.3, MySQL, and Redis delivers sub-200ms page loads consistently. This is the complete 10-step installation guide — from fresh Ubuntu server to live WordPress with HTTPS.

Why Run WordPress on a Germany VPS?

WordPress on shared hosting is the internet's most common performance bottleneck. Shared hosts throttle PHP execution, limit database connections, and force you to share a CPU with hundreds of other sites. The result: slow page loads, failed caching plugins, and sites that buckle under any real traffic.

A Germany VPS for WordPress gives you dedicated CPU cores, dedicated DDR5 RAM, and enterprise NVMe SSD storage — with full root access to configure every layer of the stack exactly as WordPress needs it. Our Ryzen 9950x at 5.7GHz handles PHP execution faster than any Xeon-based shared host. Combined with Nginx, PHP-FPM, and Redis, a properly configured WordPress VPS Germany serves pages in under 200ms consistently.

This guide installs the complete LEMP stack (Linux, Nginx, MySQL, PHP) on Ubuntu 22.04 LTS — the most popular WordPress VPS configuration in 2026.

Requirements: Germany VPS running Ubuntu 22.04 LTS (KRAFT plan minimum — 2GB RAM recommended for WordPress). SSH access as root. A domain name pointed at your VPS IP (or test with the IP directly).

Step 1 — Update Your Server

Always start with a fully updated system. Connect via SSH and run:

Bash — Ubuntu 22.04
apt update && apt upgrade -y
apt install -y curl wget unzip software-properties-common ufw

Step 2 — Install Nginx

Nginx is the recommended web server for WordPress VPS Germany — it handles static files with minimal RAM and manages concurrent connections far more efficiently than Apache for most WordPress workloads.

Bash
apt install -y nginx
systemctl enable nginx
systemctl start nginx
# Test: visit http://YOUR_VPS_IP — should show Nginx welcome page
ufw allow 'Nginx Full'  # Allow ports 80 and 443
ufw allow 22/tcp        # Keep SSH open
ufw enable

Step 3 — Install MySQL

Bash
apt install -y mysql-server
systemctl enable mysql
# Secure MySQL installation
mysql_secure_installation
# Answer: Y, set root password, Y, Y, Y, Y

# Create WordPress database and user
mysql -u root -p
# Inside MySQL prompt:
CREATE DATABASE wordpress_db;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD_HERE';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Step 4 — Install PHP 8.3

PHP 8.3 delivers 35% better performance than PHP 7.4 for WordPress workloads. Always use the latest stable PHP version.

Bash
add-apt-repository ppa:ondrej/php -y
apt update
apt install -y php8.3-fpm php8.3-mysql php8.3-xml php8.3-curl   php8.3-gd php8.3-mbstring php8.3-zip php8.3-intl php8.3-bcmath   php8.3-redis php8.3-imagick

# Optimise PHP-FPM for WordPress (edit the pool config)
nano /etc/php/8.3/fpm/pool.d/www.conf
# Change these values for a 2GB VPS:
# pm = dynamic
# pm.max_children = 10
# pm.start_servers = 3
# pm.min_spare_servers = 2
# pm.max_spare_servers = 5

systemctl restart php8.3-fpm
systemctl enable php8.3-fpm

Step 5 — Install Redis (Object Cache)

Redis dramatically reduces database load by caching WordPress objects in memory. On a Germany VPS with DDR5 RAM, Redis reduces repeat page load times to under 50ms for cached requests.

Bash
apt install -y redis-server
systemctl enable redis-server
systemctl start redis-server
# Test Redis is working:
redis-cli ping   # Should return: PONG

Step 6 — Configure Nginx for WordPress

Create a dedicated Nginx server block for your WordPress site:

Bash
nano /etc/nginx/sites-available/yourdomain.com
Nginx Config — WordPress
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain.com;
    index index.php index.html;

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

    # PHP-FPM
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
    }

    # Static files caching
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # Security headers
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    add_header X-XSS-Protection "1; mode=block";

    # Block access to sensitive files
    location ~ /\.ht { deny all; }
    location = /wp-config.php { deny all; }
}
Bash — Enable site
ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
nginx -t    # Test config — must say "ok"
systemctl reload nginx

Step 7 — Download and Install WordPress

Bash
# Create web root and download WordPress
mkdir -p /var/www/yourdomain.com
cd /var/www/yourdomain.com
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz --strip-components=1
rm latest.tar.gz

# Set correct permissions
chown -R www-data:www-data /var/www/yourdomain.com
find /var/www/yourdomain.com -type d -exec chmod 755 {} \;
find /var/www/yourdomain.com -type f -exec chmod 644 {} \;

# Create wp-config.php from sample
cp wp-config-sample.php wp-config.php
nano wp-config.php
# Update: DB_NAME, DB_USER, DB_PASSWORD, DB_HOST (use 'localhost')
# Also add: define('WP_REDIS_HOST', '127.0.0.1');

Step 8 — Install Free SSL with Let's Encrypt

Bash
apt install -y certbot python3-certbot-nginx
certbot --nginx -d yourdomain.com -d www.yourdomain.com
# Follow prompts: enter email, agree to TOS, choose redirect (option 2)
# Certbot auto-configures Nginx for HTTPS and sets up auto-renewal

# Verify auto-renewal works:
certbot renew --dry-run

Step 9 — Complete WordPress Setup

Open your browser and navigate to https://yourdomain.com. The WordPress installation wizard will appear. Complete the setup: choose your site title, create an admin username and strong password, and click Install WordPress. After 30 seconds, your WordPress site is live on your Germany VPS.

Step 10 — Performance Plugins for WordPress VPS Germany

With your LEMP stack running on AMD Ryzen 9950x, install these plugins to maximise performance:

Expected performance results: A properly configured WordPress site on our Germany VPS (Nginx + PHP-FPM 8.3 + Redis + Cloudflare) typically achieves: TTFB under 80ms, Time to Interactive under 1.5 seconds, Google PageSpeed score 95+. Shared hosting typically scores 45–70.

Frequently Asked Questions

The KRAFT plan (2GB DDR5, $7/mo) handles a single WordPress site with moderate traffic (under 10,000 daily visitors) comfortably. The STURM plan (4GB DDR5, $14/mo) is recommended for WooCommerce stores, high-traffic blogs, or multiple WordPress sites. The Ryzen 9950x's 5.7GHz clock speed means even 2GB handles more than you'd expect.
Nginx with PHP-FPM is the recommended configuration for WordPress VPS in 2026. Nginx uses significantly less RAM per connection than Apache's prefork model, handles static file serving faster, and manages high concurrency better. The only reason to choose Apache is if you rely on .htaccess files for custom redirect rules — Nginx does not support .htaccess natively.
Yes — multiple Nginx server blocks can serve different domains from the same VPS, each with its own WordPress install and database. The STURM plan (4GB) comfortably handles 5–10 WordPress sites with moderate traffic. Use a tool like WordOps or EasyEngine to manage multiple WordPress installs efficiently.
Previous
Connect Windows VPS via RDP
Previous
Connect Windows VPS via RDP