TemperStack
Intermediate12 min readUpdated Mar 13, 2026

How to install WordPress on Contabo

Quick Answer

Order a Contabo VPS with Ubuntu, SSH in as root, install LAMP stack or a control panel like CyberPanel, create a WordPress database, and deploy via one-click installer or manual files. Total time: 30-60 minutes. Secure with SSL and proper permissions for production use.

Prerequisites

  1. Contabo VPS or VDS with Ubuntu 22.04 LTS (at least 2GB RAM)
  2. SSH client like PuTTY or terminal
  3. Domain name with A record pointing to VPS IP
  4. Root credentials from Contabo dashboard
  5. Basic Linux command knowledge
1

Order and Install Ubuntu Server

Log in to my.contabo.com Customer Panel, go to Server control > VPS/VDS control, select Standard Image > Ubuntu 22.04 LTS, set a secure root password, and click Install. Wait 5-10 minutes for completion and note the server IP from details page[2][5].
Tip
Store root password securely; it's not emailed.
2

Connect to Server via SSH

Use SSH client: ssh root@YOUR_SERVER_IP -p 22 (PuTTY on Windows: enter IP, port 22, root username, paste password). Verify connection with free -h to check RAM/swap[1][2].
Tip
Right-click in PuTTY to paste password.
3

Update System and Install LAMP Stack

apt update && apt upgrade -y
apt install apache2 mariadb-server mariadb-client php8.2 php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-xmlrpc unzip wget -y
systemctl enable apache2 mariadb
systemctl start apache2 mariadb
PHP 8.2 meets WordPress requirements; test Apache at http://YOUR_IP[2][5].
4

Secure MariaDB and Create WordPress Database

Run mysql_secure_installation: set root password, answer Y to remove anonymous users/test DB. Then:
mysql -u root -p
CREATE DATABASE wordpress_db;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'YourStrongWPUserPass123!';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
[2][5].
Tip
Use strong, unique passwords.
5

Option: Install Control Panel (CyberPanel Recommended)

For easier management:
sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)
Select 1 (CyberPanel), 1 (OpenLiteSpeed). Access at https://YOUR_IP:8090 (admin/1234567, change password immediately). Or use CloudPanel per tutorials[1][4].
Tip
Ideal for beginners; skips manual LAMP.
6

Download and Configure WordPress Files

cd /home && wget https://wordpress.org/latest.zip
unzip latest.zip
rm -rf /var/www/html/*
cp -R /home/wordpress/* /var/www/html/
chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html/
Copy cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php, edit with nano /var/www/html/wp-config.php: update DB_NAME, DB_USER, DB_PASSWORD, DB_HOST[2][5].
Tip
Generate auth keys from wordpress.org/secret-key/1.1/
7

Complete WordPress Installation in Browser

Visit http://YOUR_IP or domain. Click Let’s go!, enter DB details, submit, run installation, set site title/admin credentials. Login at /wp-admin[5]. In CyberPanel: Websites > WordPress > Install with site details[1].
8

Point Domain and Install SSL

Update domain A record to VPS IP. In CyberPanel/CloudPanel: Issue free SSL via panel. Manually: Use Certbot apt install certbot python3-certbot-apache then certbot --apache[1][4].
Tip
Wait for DNS propagation (up to 48h).
9

Set Permissions and Test

Ensure chown -R www-data:www-data /var/www/html and chmod -R 755 /var/www/html. Test site, dashboard access, and plugins/themes[2].
Tip
Monitor resources with htop (install if needed).

Troubleshooting

SSH login failure
Verify IP/port/password from dashboard; try right-click paste in PuTTY; check firewall with ufw status.
Permission denied on files
Run chown -R www-data:www-data /var/www/html and chmod -R 755 /var/www/html.
Apt update/upgrade errors
Run apt update && apt upgrade -y again; check internet with ping google.com.
WordPress DB connection error
Confirm DB credentials in wp-config.php match MariaDB user; test login mysql -u wordpress_user -p.
Site not loading after install
Check Apache status systemctl status apache2; restart systemctl restart apache2; verify domain DNS.

Related Guides

More Contabo Tutorials

Other Tool Tutorials

Ready to get started with Contabo?

Put this tutorial into practice. Visit Contabo and follow the steps above.

Visit Contabo