Migrating a 1C-Bitrix Site to a New Hosting Provider
The most common mistake during a transfer is copying files, uploading a database dump, and considering the job done. In practice the site fails to start or runs with errors: PHP version mismatch, a different document root path, cache containing old settings, permission issues on directories. Migrating 1C-Bitrix requires a clear checklist.
Pre-Migration Preparation
Before starting, determine the new hosting configuration and compare it with the current one:
- PHP version (Bitrix supports 7.4–8.2; some providers default to an outdated version)
- PHP extensions:
mbstring,gd,zip,curl,opcache,PDO,pdo_mysql— all mandatory - Database type and version: MySQL 5.7+ or MariaDB 10.3+; some providers impose hard limits on
max_allowed_packet,innodb_buffer_pool_size - Availability of
cronand the ability to add jobs - Restrictions on
exec(),shell_exec()— needed for agents and certain modules
Creating a Backup
The standard tool is the backup module in the admin panel (Settings → Tools → Backup). It creates an archive in /bitrix/backup/. However, it has a limitation: on large sites (5–10 GB or more), the process times out.
For large sites, the manual approach is more reliable:
# Database dump
mysqldump -u dbuser -p --single-transaction --routines --triggers dbname > dump.sql
# File archive (excluding cache and backups)
tar -czf site_files.tar.gz \
--exclude='./bitrix/cache' \
--exclude='./bitrix/managed_cache' \
--exclude='./bitrix/backup' \
--exclude='./bitrix/html_pages' \
/var/www/site/
Excluding the cache is mandatory: it takes up significant space and is invalidated on the new server anyway.
Configuring the New Server
After unpacking the files, update the database connection configuration in /bitrix/php_interface/dbconn.php:
$DBType = "mysql";
$DBHost = "localhost";
$DBLogin = "new_db_user";
$DBPassword = "new_password";
$DBName = "new_db_name";
Also update /bitrix/.settings.php — it stores equivalent settings for the core module and cache:
'connections' => [
'value' => [
'default' => [
'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
'host' => 'localhost',
'database' => 'new_db_name',
'login' => 'new_db_user',
'password' => 'new_password',
],
],
],
Directory and File Permissions
This is critical. 1C-Bitrix requires specific permissions:
| Directory | Permissions |
|---|---|
/upload/ |
755 (recursive) |
/bitrix/cache/ |
755 |
/bitrix/managed_cache/ |
755 |
/bitrix/.settings.php |
640 |
/bitrix/php_interface/dbconn.php |
640 |
Hosting providers often run via suexec, and permissions must belong to the site user. If php-fpm runs under a different user, cache write errors are inevitable.
Post-Migration Checklist
After launch, work through the checklist:
-
Core functionality check: open
/bitrix/admin/— it should load without errors -
Email test: contact form, order notifications — PHP
mail()or SMTP settings in the Main module -
Agents and cron: in
/bitrix/admin/agent_list.phpverify that agents execute; configure cron for/bitrix/modules/main/tools/cron_events.php -
HTTPS and certificate: update
SITE_SERVER_NAMEandBX_UTFin site settings, check.htaccessfor redirect rules - Cache: clear managed cache via admin panel (Settings → Performance → Clear Cache)
- License: if the server IP changed — verify license activation in the 1C-Bitrix personal account
Special Case: Domain Change
If the domain is also changing alongside the transfer, additionally:
- Update
SITE_SERVER_NAMEin theb_langtable (or via Settings → Sites) - Update the site address in Main module settings
- Fix absolute paths in iblock content (via SQL update or the search-and-replace component)
- Reconfigure integrations that use webhook URLs (payment systems, CRM integrations)
Typical Timelines
| Site Size | Timeline |
|---|---|
| Business card / landing page (up to 1 GB) | 2–4 hours |
| Corporate site (1–10 GB) | 1 business day |
| Online store with large catalog (10–50 GB) | 1–3 days |
| High-load project with cluster configuration | 1 week or more |
Migration is performed at night or with minimal downtime via temporary DNS switching and database delta synchronization.







