Docs / Migration Guides / How to Migrate a WordPress Site to Your Breeze

How to Migrate a WordPress Site to Your Breeze

By Admin · Mar 2, 2026 · Updated Apr 23, 2026 · 30 views · 3 min read

How to Migrate a WordPress Site to Your Breeze

Moving a WordPress site to your Breeze instance gives you full control over performance, security, and configuration. This guide walks you through a complete WordPress migration including files, database, and DNS cutover.

Prerequisites

  • A Breeze instance with a LAMP or LEMP stack installed (PHP 8.x, MySQL/MariaDB, Apache or Nginx)
  • SSH and SFTP access to both the old host and the new Breeze
  • Your WordPress database credentials from wp-config.php
  • Access to your domain's DNS settings

Step 1: Back Up WordPress Files

On the source server, create a compressed archive of the entire WordPress directory:

cd /var/www
tar czf wordpress-backup.tar.gz html/

This captures all themes, plugins, uploads, and core files. Transfer the archive to your Breeze:

scp wordpress-backup.tar.gz user@breeze-ip:/tmp/

Step 2: Export the WordPress Database

Use mysqldump to export the WordPress database from the source:

mysqldump -u wp_user -p --single-transaction wp_database > wp_database.sql
scp wp_database.sql user@breeze-ip:/tmp/

Step 3: Set Up the Web Server on Your Breeze

Install the required packages on your Breeze if not already present:

sudo apt update
sudo apt install -y nginx php8.2-fpm php8.2-mysql php8.2-xml php8.2-curl php8.2-mbstring php8.2-zip php8.2-gd php8.2-intl mariadb-server

Step 4: Restore Files and Database

Extract the WordPress files to the web root:

cd /var/www
sudo tar xzf /tmp/wordpress-backup.tar.gz
sudo chown -R www-data:www-data html/

Create and import the database on the Breeze:

sudo mysql -u root -p -e "CREATE DATABASE wp_database;"
sudo mysql -u root -p -e "CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'secure_password';"
sudo mysql -u root -p -e "GRANT ALL ON wp_database.* TO 'wp_user'@'localhost';"
sudo mysql -u root -p wp_database < /tmp/wp_database.sql

Step 5: Update wp-config.php

Edit /var/www/html/wp-config.php and update the database connection details to match your new Breeze server:

define('DB_NAME', 'wp_database');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'secure_password');
define('DB_HOST', 'localhost');

Step 6: Search and Replace URLs

If your site URL is changing, use WP-CLI to update all references in the database:

wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables --skip-columns=guid

This updates serialized data correctly, which a simple SQL find-and-replace would break.

Step 7: Fix Permissions and Test

Ensure correct file permissions:

sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;

Test the site by editing your local /etc/hosts file to point the domain to your Breeze IP before updating DNS. Verify pages load, the admin dashboard works, and media files display correctly.

Step 8: Update DNS

Once everything checks out, update your domain's A record to point to your Breeze's IP address. WordPress should now be fully running on your new Breeze instance with improved performance and full root access.

Was this article helpful?