WHBMP

Moving to a new server

Oct 15, 2026

Moving an installation is straightforward if you keep the same .env (APP_KEY) and move the license. This checklist assumes a short downtime.

Before you start

  • Lower the DNS TTL of the domain a day ahead (for example to 300 seconds).
  • Make sure the new server meets the requirements and has the same PHP major version.
  • Note the old server's IP: your license is bound to the domain and the IP.

1. Prepare the new server

  1. Create the site, database and database user. See Installing on cPanel or Installing on CloudPanel and nginx.
  2. Test it under a temporary hostname or with your computer's hosts file. Do not change DNS yet.

2. Freeze the old site

  1. Put the old site in maintenance mode (General Settings > General) so no new orders or payments are written.
  2. Wait a minute for running jobs to finish.

3. Copy everything

  1. Database: dump on the old server and import on the new one.

    mysqldump --single-transaction -u USER -p OLD_DB | gzip > whbmp.sql.gz
    gunzip < whbmp.sql.gz | mysql -u USER -p NEW_DB
    
  2. Files: copy the whole application folder, including .env, storage/app/private (it holds the license data and attachments), public/cms-uploads, public/branding-uploads and any File Storage folders.

  3. Edit .env on the new server: change only DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD and, if the address changes, APP_URL. Keep the same APP_KEY.

  4. Fix ownership and permissions of storage and bootstrap/cache.

  5. Run php artisan optimize:clear.

4. Move the license

  1. On the old installation open System > License and press Deactivate (Move Server).
  2. On the new installation open System > License and activate the key. It now binds to the new IP.

5. Check before switching

  • Sign in at the temporary address and open System > System Health.
  • Count a few tables (clients, invoices) and compare with the old server.

6. Switch

  1. Point the domain's A record at the new IP and wait for DNS to update. Install the SSL certificate.
  2. Add the cron job on the new server only.
  3. Remove the cron job from the old server and leave the old site down (maintenance mode). Two servers running the same scheduler would send everything twice.
  4. Allow the new IP in your registrar, hosting servers' firewalls and payment gateway settings, and update any webhooks that call WHBMP.

7. After the move

  • Press Check Now on the License page and confirm it shows Active.
  • Send a test email and place a test order.
  • Watch the logs for a day.
  • Keep the old server for a week as a fallback, then delete the data on it.

Rollback

If the new server misbehaves, switch the DNS back, run php artisan up on the old server, and activate the license there again.

Powered by WHBMP