# Перенос PrestaShop на другой хостинг: пошаговый план

> Перенос PrestaShop на другой хостинг: экспорт базы данных, перенос файлов и настройка parameters.php после переезда.

PrestaShop хранит параметры подключения к базе данных в файле `app/config/parameters.php` и жёстко проверяет соответствие домена в таблице `ps_shop_url`. Забытая правка любого из этих двух мест — самая частая причина белого экрана после переноса магазина.

## Что учесть перед переносом PrestaShop

Перед стартом определите версию PrestaShop командой `php bin/console prestashop:version` или посмотрите файл `app/AppKernel.php` в старых версиях 1.6. Требования к серверу отличаются в зависимости от ветки:

| Компонент | PrestaShop 1.6 | PrestaShop 8 |
| --- | --- | --- |
| PHP | 7.1–7.4 | 8.1–8.3 |
| MySQL | 5.6–5.7 | 8.0 |
| Расширение intl | обязательно | обязательно |
| Composer | не требуется | 2.x |

Уточните версию PHP заранее — PrestaShop 1.6 не запустится на PHP 8.3, а PrestaShop 8 требует минимум PHP 8.1.

## Перенос файлов магазина

Каталог `img/p` с изображениями товаров и `modules` с установленными платными модулями переносите вместе с ядром через rsync:

```
rsync -avz --progress /var/www/prestashop/ user@newserver:/var/www/prestashop/
```

Общий разбор rsync, SCP и FTP есть в статье [перенос файлов сайта](https://www.zevshost.net/ru/kb/migratsia-failov-rsync-scp/). После копирования проверьте права на каталог `var/cache` — он должен быть доступен на запись пользователю веб-сервера, иначе админка выдаст ошибку доступа при первом открытии.

## Экспорт и импорт базы данных

Экспортируйте базу через панель «Расширенные настройки → База данных → Резервное копирование» или из консоли:

```
mysqldump -u ps_user -p --single-transaction ps_db > ps_backup.sql
```

На новом сервере создайте базу с тем же именем или новым и импортируйте дамп:

```
mysql -u ps_user -p ps_db < ps_backup.sql
```

Общий алгоритм переноса MySQL описан в статье [перенос базы данных MySQL](https://www.zevshost.net/ru/kb/perenesti-bazu-dannykh/). Обратите внимание на префикс таблиц — по умолчанию `ps_`, но на старых магазинах он может быть изменён при установке.

## Настройка parameters.php и таблицы shop\_url

В файле `app/config/parameters.php` обновите значения `database_host`, `database_name`, `database_user` и `database_password` на данные нового сервера. Затем откройте таблицу `ps_shop_url` и проверьте поля `domain` и `domain_ssl` — если они указывают на старый адрес, магазин перенаправит все запросы обратно на прежний хостинг.

```
UPDATE ps_shop_url SET domain = 'newshop.example', domain_ssl = 'newshop.example';
```

После правки очистите кеш Symfony, иначе PrestaShop продолжит использовать старые скомпилированные настройки:

```
rm -rf var/cache/prod/*
rm -rf var/cache/dev/*
```

## Проверка витрины и админки

Откройте магазин на новом сервере по IP с подменой хоста в локальном файле `/etc/hosts`. Проверьте вход в админку по адресу `/admin123` (папка админки переименована из соображений безопасности), оформление тестового заказа и загрузку изображений товаров.

Когда тест пройден, снизьте TTL A-записи домена до 300 секунд за сутки до переключения и после смены DNS проверьте распространение командой `dig +short newshop.example` с разных серверов. Подробная схема переключения без простоя — в статье [смена хостинга без простоя](https://www.zevshost.net/ru/kb/migratsia-dns-bez-prostoya/).

## Чек-лист миграции PrestaShop

- Версия PHP на новом сервере соответствует версии PrestaShop.
- Каталоги img и modules перенесены полностью.
- Дамп базы импортирован, префикс таблиц проверен.
- parameters.php и таблица ps\_shop\_url обновлены.
- Кеш var/cache очищен после правки конфигурации.
- Оформление заказа и вход в админку проверены по IP.

Финальную проверку после переключения домена сверьте с общим чек-листом из статьи [чеклист проверки сайта после миграции](https://www.zevshost.net/ru/kb/migratsia-proverka-posle/).

---

Источник: https://www.zevshost.net/ru/kb/migratsia-prestashop/
