🔀
Hosting

Moving from cPanel to ISPmanager: Files, Databases, Mail and DNS

14.11.2026
← All articles

cPanel and ISPmanager do the same job, but their folder layout, database naming and PHP settings work differently, so a one-click migration between them is rarely realistic. The good news is that a typical site takes an hour or two to move, and if you follow the steps in order, visitors will not notice anything.

Key differences

In cPanel the site usually lives in /home/user/public_html. ISPmanager gives every domain its own directory, such as /var/www/user/data/www/misol.uz. Hardcoded paths for cache, logs or uploads are the usual place where this difference breaks things. cPanel also prefixes database and user names with the account name, like klinika_wp, while in ISPmanager you choose the name yourself. PHP versions and options are set per domain in ISPmanager rather than in cPanel's MultiPHP INI Editor.

Example: a private clinic in Samarkand

A clinic runs a WordPress site, a small PHP booking script, three mailboxes (info@, qabul@, direktor@) and a nightly cron job that sends SMS reminders, all on misol.uz. Write this inventory down before you start; a forgotten cron job or mailbox causes most post-migration headaches.

Step 1: export from cPanel

The Backup section lets you download a home directory archive and database dumps. With SSH it is faster:

cd ~
tar -czf sayt-fayllar.tar.gz -C public_html .
mysqldump --single-transaction --default-character-set=utf8mb4 \
  -u klinika_wp -p klinika_wp > klinika_wp.sql

--single-transaction gives a consistent InnoDB dump on a live site, and the explicit charset protects Uzbek and Russian text. Also copy every entry from Cron Jobs and the list from Email Accounts. cPanel will not show mailbox passwords, so plan to set new ones and tell staff.

Step 2: prepare ISPmanager

Add misol.uz under WWW domains with the same PHP version as before, create the database and user, and create the mail domain and mailboxes with the same names. sayt.uz customers open ISPmanager directly from the hosting page in their account.

Step 3: upload files and import the database

cd /var/www/foydalanuvchi/data/www/misol.uz
tar -xzf ~/sayt-fayllar.tar.gz
mysql -u klinika -p klinika_db < ~/klinika_wp.sql

Large imports through phpMyAdmin can hit upload size or time limits; import from the terminal or ask support instead.

Step 4: adapt the configuration

Update database credentials in wp-config.php, config.php or .env:

define('DB_NAME', 'klinika_db');
define('DB_USER', 'klinika');
define('DB_PASSWORD', 'yangi-kuchli-parol');
define('DB_HOST', 'localhost');

Then look for old paths:

grep -rn "/home/klinika" --include=*.php .

Check .htaccess too. php_value and php_flag only work when PHP runs as an Apache module; under CGI or FPM they can cause a 500 error, so move those values to the panel's PHP settings. Remove cPanel-specific lines such as AddHandler application/x-httpd-ea-php.

Step 5: cron and mail

Recreate cron jobs in ISPmanager's scheduler with updated paths, otherwise they fail silently. The clinic's reminder script, once at /home/klinika/public_html/cron/remind.php, now needs the path inside the domain directory. To move existing mail, imapsync copies messages between servers over IMAP with folders intact.

Step 6: test, then switch DNS

Test on the new server first by adding a temporary line to your computer's hosts file:

203.0.113.10  misol.uz www.misol.uz

Only your machine sees the new server, everyone else still uses the old one. When everything works, change the DNS records or nameservers in your account. Lower the TTL a day in advance so the change spreads faster. Issue the SSL certificate after DNS points to the new IP, because Let's Encrypt validates that the domain is served from this server.

Keep the old cPanel account for a week or two. Some visitors and mail servers will keep using the old address until DNS updates everywhere, and that is usually when you remember the file you forgot to copy.

Related articles

🛠️ Site Broke After a PHP Upgrade: How to Recover Fast 🐍 Deploying an aiogram Bot to a Server: virtualenv, systemd and Webhooks 🖥️ Panel terminal keeps disconnecting: why, and how to connect over SSH properly 🔍 Finding the large files eating your hosting disk space: commands and tips
🌐 Language
🇺🇿 O'zbek 🇺🇿 Ўзбек 🇷🇺 Русский 🇬🇧 English ✓