РазделПереезд
ДокументацияРуководство

Переезд

Аккаунт переезжает целиком: unix-пользователь с прежним паролем, сайты, базы с прежними паролями, cron, сертификаты, а между двумя MonoPanel — ещё почта, app-сервисы (выключенными) и настройки экземпляров Valkey. Перенос запускается на новом сервере, источник только читается — там не меняется ни один файл, и старый сервер остаётся запасным, пока DNS не переключён. plan ничего не создаёт и показывает, что приедет и что мешает: занятый логин (--as <логин>), домен или база, которые здесь уже есть, ветка PHP, которой нет (mp php install 8.2), нехватка места.

С другого сервера с MonoPanel. На старом сервере выдаётся токен — на один аккаунт, только на чтение, со сроком жизни:

mp migrate grant user:alex                                             # на старом сервере
mp migrate plan --source https://old:8443 --token … --scope user:alex   # на новом: разбор
mp migrate run  --source https://old:8443 --token … --scope user:alex   # на новом: перенос

С BitrixVM / bitrix-env 7–9. Нужен ssh на старый сервер под root: ключом (--key, по умолчанию ~/.ssh/id_ed25519 того, кто запускает mp) или паролем (--password-stdin). Основной сайт BitrixVM живёт под server_name _, имя ему даёт --domain; дополнительные сайты из /home/bitrix/ext_www приезжают под своими именами. Аккаунт один — bitrix, здесь его можно принять под другим логином (--as).

mp migrate plan --from bitrixvm --source root@old.example.com --domain shop.example.com
mp migrate run  --from bitrixvm --source root@old.example.com --domain shop.example.com

Реквизиты базы берутся из bitrix/.settings.php (или dbconn.php), аккаунт MySQL заводится с тем же паролем; пути /home/bitrix переписываются в dbconn.php, .settings*.php, командах cron и симлинках link-сайтов. Кеш Битрикса, push-сервер, memcached и msmtp окружения не едут (mp stack install memcached, если нужен). Работает и с bitrix-env 7 на CentOS 7: дамп MySQL 5.7 по пути приводится к MySQL 8.

С FASTPANEL 2. Тот же ssh под root. Без --scope разбор перечислит аккаунты панели:

mp migrate plan --from fastpanel --source root@old.example.com                 # кто есть на источнике
mp migrate run  --from fastpanel --source root@old.example.com --scope user:shop [--as shop2]

Приезжают сайты с их версией PHP и режимом (php-fpm или Apache), docroot, алиасами и allow-списками, базы с прежними хешами паролей, сертификаты (загруженные и Let's Encrypt), cron. Почта FASTPANEL не переносится — разбор скажет, сколько ящиков заводить заново.

После переноса (любой источник):

  1. Проверить сайт по адресу нового сервера, не трогая DNS: curl --resolve shop.example.com:80:<новый IP> http://shop.example.com/.
  2. Аккаунту с чужой панели задать пароль веб-панели: mp user set <логин> --generate (unix-пароль для SFTP уже прежний).
  3. Переключить DNS. Перевезённые сертификаты работают сразу, дальше их продлевает панель; сайту без сертификата — mp ssl issue <домен>.

Если у старого сервера сломан DNS (мёртвый nameserver в resolv.conf), каждая ssh-команда разбора занимает секунды — почините resolv.conf там. Что именно переносится и что нет: docs/07-migration.md.

Исходник страницы на GitHub