N1 Nex1on

Копии и перенос сайта на Nex1on: как не потерять данные и переехать без потерь

Копия базы, возврат, копия на сторону, переезд на другой хостинг и на другой адрес, перенос содержимого с сайта на сайт: по шагам и со страховками движка.

Сайт держится на трёх вещах: базе данных, загруженных файлах и самом движке. Движок всегда можно взять из архива заново, а вот записи, пользователи и настройки живут только в базе, картинки и документы — только в папке загрузок. Ниже — как сделать копию, как вернуть сайт, если что-то пошло не так, как переехать на другой хостинг или на другой адрес и как перенести содержимое с сайта на сайт.

Что где хранится #

  • База данных: записи, страницы, товары, пользователи, настройки. Её сохраняет «Копия базы». Файлов сайта в копии нет.
  • Папка uploads: загруженные картинки, видео, документы. В копию базы она не входит, её переносят по FTP.
  • Движок: файлы из архива. Ключ сайта и доступ к базе лежат в папке config.
Копия на том же сервере, что и сайт, страхует от своей ошибки, а не от потери сервера: если пропадёт хостинг, пропадёт и она. Поэтому ниже есть и копия на сторону.

Шаг 1. Сделайте копию базы #

Откройте «Система → Копии и перенос → Копии базы» и нажмите «Сделать копию». Файл появится в списке «Готовые копии»; его можно скачать и удалить. Лежит он вне публичной папки, скачать копию может только тот, кто вошёл в панель.
Страница «Копии базы»: готовая копия, скачать и удалить
Страница «Копии базы»: готовая копия, скачать и удалить

Не ждите беды, чтобы делать копии. Раскройте блок «Как часто делать копии и сколько хранить»: там можно задать, чтобы копия делалась сама раз в несколько дней (ноль — не делать), и включить сжатие gzip: файл станет в несколько раз меньше, а возврат прочитает его как обычно.

Шаг 2. Верните базу из копии #

Внизу той же страницы — блок «Вернуть базу из копии». Выберите копию, наберите её имя руками для подтверждения и нажмите «Вернуть базу».
Блок «Вернуть базу из копии»: выбор копии и подтверждение именем файла
Блок «Вернуть базу из копии»: выбор копии и подтверждение именем файла

Возврат заменяет всё, что есть сейчас, на то, что было в копии: записи, заказы и настройки, появившиеся после неё, исчезнут. Но терять их не придётся без запасного пути:

  • перед возвратом движок сам снимает копию текущей базы и называет её файл;
  • если возврат оборвался, вверху страницы появляется «Возврат базы начат и не завершён» и кнопка «Вернуть состояние до попытки»;
  • копия, в которой нет части таблиц, помечена в списке красным «неполная»: возврат из неё придётся подтвердить отдельной отметкой, потому что таблицы, которых в копии нет, останутся как были, и часть данных будет новой, а часть старой.

Копию можно и загрузить с компьютера, в блоке «Загрузить копию с компьютера»: это может делать только владелец и после повторного пароля. Принимается только файл .sql или .sql.gz, снятый этим движком; любой другой SQL отклоняется. Загруженная копия попадает в список, а вернуть из неё базу — отдельное действие с подтверждением.

Шаг 3. Копия на сторону #

Откройте «Копии и перенос → Копии в другом месте». Копия шифруется на сайте и уходит за пределы сервера: на S3-совместимое хранилище, по WebDAV или SFTP. По умолчанию выключено.
Страница «Копии в другом месте»: состояние и ключ шифрования
Страница «Копии в другом месте»: состояние и ключ шифрования

Контрольная сумма файла расшифровки на снимке — пример для версии, с которой снят снимок: сверяйте её со значением в выпуске вашей версии движка.

  1. Создайте ключ шифрования. Он показывается один раз и нигде не хранится: ни здесь, ни на сервере. Без него копию не откроет никто, так что сохраните его в менеджере паролей или распечатайте и храните отдельно от сайта.
  2. Скачайте один раз файл nx-decrypt.php, сверьте его контрольную сумму SHA-256 со значением в выпуске движка на nex1on.com и храните вместе с ключом. Копии открывают у себя на компьютере, без сайта, одной командой.
  3. Заполните параметры хранилища. Выдайте ключу хранилища право только на запись, без удаления и без перечисления: ключ лежит на этом сайте, и если сайт взломают, ключ с правом удаления сотрёт и внешние копии. Поэтому старые копии лучше не поручать чистить движку (для опции «оставлять последние» нужен ключ с правом удаления), а задать срок хранения на стороне хранилища: жизненный цикл объектов.
  4. Нажмите «Проверить связь»: она кладёт один маленький файл и пробует убрать только его (ключ только на запись удалить не даст, тогда файл просто останется: это не ошибка). Для SFTP сверьте отпечаток ключа сервера с тем, что сообщает ваш хостинг: копия пойдёт только на сервер с точно таким ключом.
  5. Когда придёт первая копия, откройте её у себя и поставьте отметку «Я открыл копию у себя, ключ рабочий»: так вы узнаете, что ключ рабочий, до того, как он понадобится.

Отправку можно включить только после того, как вы подтвердили, что сохранили ключ; включение и смена хранилища спрашивают пароль и уведомляют письмом каждого владельца.

Переезд на другой хостинг #

Понадобятся три вещи: свежая копия базы, папка uploads и архив движка той же версии (или новее), что у копии.
  1. Сделайте копию базы и скачайте её. Скачайте папку uploads по FTP.
  2. На новом хостинге создайте пустую базу и распакуйте архив движка (подробно — в статье про установку без SSH).
  3. Положите файл копии (.sql, .sql.gz или зашифрованный .sql.gz.enc) в папку storage/import.
  4. Откройте сайт и на первом экране нажмите «У меня уже есть сайт на Nex1on — развернуть из копии». Пройдите язык, страну и базу: вместо следующего шага мастер предложит «Развернуть из копии».
Мастер установки: «Развернуть из копии»
Мастер установки: «Развернуть из копии»

Мастер проверит копию и ничего не запишет, пока она не окажется целой. Приставка таблиц в базе должна быть той же, что в копии, а если копию снял более новый движок, сначала поставьте такой же.

Намеренно не переносится то, что не должно жить на новом сайте без вашего ведома: сеансы и «запомнить меня», ссылки сброса пароля и приглашений, ключи API и входы приложений, очереди писем, а также настройки, привязанные к старому месту: источник обновлений, копии на сторону, доверенные прокси, ключи ИИ и соцсетей. Отправка почты переключается на «в файл», а двухшаговый вход выключается у всех.

В конце мастер просит владельца назвать свою учётную запись и подтвердить её старым паролем или задать новый: пока этого не сделано, никто не войдёт под администраторской учётной записью, а остальные администраторы и модераторы остаются закрытыми, пока вы их не откроете в «Пользователях».

Переезд на другой адрес #

Когда сайт уже стоит на новом домене, а в записях и меню остался старый, откройте «Система → Диагностика → Перенос на другой адрес». Это может делать только владелец.
«Перенос сайта на другой адрес»: шаг 1, адреса
«Перенос сайта на другой адрес»: шаг 1, адреса

Мастер идёт по шагам, и пока вы не нажмёте «Применить», ничего не записывается:

  1. Впишите старый и новый адрес и нажмите «Пробный прогон»: вы увидите, сколько записей и ссылок изменится, по разделам.
  2. Движок проверит, что по новому адресу отвечает именно этот сайт, чтобы ссылки сброса пароля не ушли чужому. Если новый адрес ещё не готов (DNS переезжает), кнопка выключена: поправьте DNS и повторите пробный прогон.
  3. Если у вас есть ключ лицензии, он привязан к домену: движок скажет, есть ли в нём новый адрес. Без него сайт перейдёт в бесплатный режим, пока ключ не перенесён.
  4. Для подтверждения наберите имя нового домена. Дальше движок спросит пароль, сам сделает копию базы, запишет это в журнал, отправит письмо владельцам и заменит адрес.

Не меняются учётные записи, токены и ключи входа, журналы, очередь, статистика, заказы и платежи, зашифрованные значения. После замены мастер показывает чек-лист того, что движок сделать за вас не может: вход через соцсети (адрес возврата у провайдера), домен печенья сеанса, адрес «От кого» и SPF, DKIM, DMARC для почты, поисковые консоли, платёжные системы и вебхуки, сертификат и CDN для нового имени. Пока старое имя указывает на этот сайт, движок сам отвечает на него перенаправлением 301 на тот же путь нового адреса.

Перенос содержимого с сайта на сайт #

Если нужны не вся база, а страницы, новости, метки и файлы, откройте «Копии и перенос → Экспорт и импорт». Отметьте, что положить в архив, и скачайте его. Личное и секретное не едет: ни учётных записей, ни заказов, ни писем, ни ключей, ни паролей. Импорт сначала только проверяет архив: вы увидите, что будет создано, обновлено и пропущено, и ничего не записывается, пока вы не подтвердите. Тот же экран принимает экспорт WordPress (.xml) и таблицу (.csv).

Что проверить #

  • Есть свежая копия базы, и вы знаете, где она лежит.
  • Копия на сторону включена, ключ шифрования сохранён отдельно от сайта, а первая копия открыта у вас на компьютере.
  • Папка uploads скопирована отдельно, вместе с копией базы.
  • Вы хотя бы раз проверили возврат на пустой базе или на копии сайта, а не в день аварии.
  • После переезда: почта настроена, двухшаговый вход включён, пароли и ключи введены заново, старый файл копии удалён.

Если что-то пошло не так #

  • «Копию сделать не удалось». Чаще всего у сайта нет права записи в папку storage/backups: проверьте права.
  • Возврат оборвался. Не делайте ничего, пока не нажали «Вернуть состояние до попытки»: это вернёт базу в состояние до возврата.
  • Мастер пишет, что копии нужны обновления, которых нет в этом движке. Копию снял более новый движок или издание с другими модулями: поставьте такое же издание и повторите.
  • Мастер пишет про другую приставку таблиц. Вернитесь на шаг «База» и укажите приставку, которая в копии.
  • На новом адресе нет входа. При смене адреса все выходят из аккаунтов: войдите заново. Если вход не держится, проверьте домен печенья сеанса в настройках.

Что дальше #

Копия, которую вы ни разу не открывали, остаётся предположением. Выберите день и проверьте возврат на пробной базе. Это занимает полчаса, и этот день вам не придётся пережить заново.
Поделиться: Telegram WhatsApp

Читайте также

Обсуждение

Комментарии

Обсуждение ещё не началось

Пока никто не высказался. Будьте первым.

Пожаловаться на запись