Как перенести сайт на WordPress на новый VPS
Перенос сайта на WordPress — это перенос трёх вещей: файлов (прежде всего папки wp-content), базы данных и DNS-записи вашего домена. Проще всего воспользоваться плагином для миграции. Вручную вы копируете файлы, экспортируете базу данных, загружаете её на новом сервере и исправляете адреса, если они изменились.
Каким бы способом вы ни шли, порядок один: бэкап, проверка на новом сервере, а DNS в самом конце. Не отключайте старый сервер, пока новый сайт не заработает.
Прежде чем начать
- Сделайте полный бэкап. Сохраните копию файлов и базы данных на своём компьютере. Официальное руководство WordPress по переносу тоже советует делать бэкап перед любым изменением базы данных.
- Узнайте размер. Сколько МБ занимают папка
wp-contentи база данных? От этого зависит, какой способ вам подойдёт. - Сравните версии. Работает ли версия PHP на новом сервере с вашими старыми плагинами? Несовместимый плагин обновите до переноса.
- Снизьте TTL. За день-два до переключения задайте для DNS-записей домена TTL 300 секунд. Тогда старый адрес не задержится в кэшах надолго.
- Проверьте, где живёт ваша почта. Смена A-записи не затрагивает записи MX. Если почта работает на сервере сайта, её нужно переносить отдельно.
Способ 1: перенос с помощью плагина
Плагины для миграции собирают файлы и базу данных в один пакет и распаковывают его на новом сайте, а большинство из них заодно исправляют адреса. Есть три распространённых подхода:
- Загрузка пакета через браузер. Вы создаёте пакет на старом сайте, ставите тот же плагин на новый WordPress и загружаете пакет (так работает, например, All-in-One WP Migration). Здесь вы упрётесь в ограничение сервера на размер загрузки.
- Размещение пакета по SFTP. Плагины вроде Duplicator предлагают скопировать архив и файл
installer.phpв пустую папку на новом сервере, а затем открытьinstaller.phpв браузере. Базу данных и пользователя для неё нужно создать заранее. Когда закончите, удалитеinstaller.phpи архив, потому что любой, кто знает адрес, мог бы запустить установщик снова. - Восстановление из удалённого хранилища. С плагином для бэкапов вроде UpdraftPlus вы подключаете то же облачное хранилище на новом сайте и находите бэкап по ссылке «Rescan remote storage». Большой файл через браузер вы не загружаете вообще.
Лимит 64 МБ на готовом сервере WordPress
На готовом сервере WordPress в Seturack за один раз можно загрузить не больше 64 МБ. Плагины, которые принимают пакет через браузер, упираются в этот лимит. Если пакет больше, восстановите из удалённого хранилища или перенесите сайт вручную. Поскольку готовое приложение работает в Docker, файлы лежат не там, где при классической установке. Для крупного сайта, который вы будете переносить вручную, предсказуемее чистый сервер Ubuntu с установленным Apache или Nginx.
Способ 2: перенос вручную
Эти шаги — для классической установки, где файлы лежат в /var/www/html. Если вы запускаете WP-CLI от root, добавляйте к его командам --allow-root. На старом сервере, в папке WordPress:
- Экспортируйте базу данных за пределы веб-папки, потому что дамп, оставленный в ней, может скачать любой, кто знает адрес:
wp db export ~/site.sql. Без WP-CLI используйтеmysqldump -u USER -p DATABASE > ~/site.sql. - Заархивируйте файлы командой
tar -czf ~/files.tar.gz . - Скопируйте оба файла на новый сервер командой
scp ~/site.sql ~/files.tar.gz user@NEW_IP:~/
На новом сервере:
- Создайте пустую базу данных и пользователя для неё.
- Распакуйте файлы в веб-папку командой
tar -xzf ~/files.tar.gz -C /var/www/html - Обновите в
wp-config.phpимя базы данных, пользователя и пароль на новые значения. Передайте владение пользователю веб-сервера (www-dataв Debian и Ubuntu). - Импортируйте базу данных командой
wp db import ~/site.sql. Команда берёт настройки изwp-config.phpи базу данных сама не создаёт.
Если домен остался прежним, исправлять адрес не нужно. Если он меняется, замените старый адрес на новый. Сначала попробуйте с --dry-run и не трогайте столбец guid:
wp search-replace 'https://old.com' 'https://new.com' --skip-columns=guid --dry-run
Если вывод выглядит правильно, запустите команду снова без --dry-run. Не делайте в базе данных обычный поиск с заменой, потому что сериализованные данные могут сломаться. WP-CLI обрабатывает такие данные корректно.
Проверьте на новом сервере до переключения DNS
Добавьте IP-адрес нового сервера и свой домен в файл hosts на своём компьютере. В Windows файл лежит по адресу C:\Windows\System32\drivers\etc\hosts, в macOS и Linux — /etc/hosts:
203.0.113.10 example.com www.example.com
С этого момента на новый сервер попадает только ваш браузер, а все остальные по-прежнему видят старый. Проверьте вход, страницы, изображения и формы, а затем удалите строку. Сертификат HTTPS обычно выдаётся, когда DNS указывает на новый сервер.
Переключение DNS
- Если на сайт постоянно что-то записывается (магазин, подписки, комментарии), переведите старый сайт в режим обслуживания, снимите базу данных в последний раз и перенесите её. Иначе заказы, оформленные во время переключения, потеряются.
- В DNS-панели направьте A-запись на новый IP-адрес и сделайте то же для www. Шаги показаны в статье о подключении собственного домена.
- При низком TTL изменение распространяется быстро. Некоторые сети могут держать старую запись дольше.
- Убедитесь, что HTTPS работает на новом сервере.
- Когда всё в порядке, верните прежнее значение TTL. Держите старый сервер ещё несколько дней, затем выключите.
Памятка после переноса
- Откройте Settings > Permalinks и нажмите «Сохранить», чтобы обновить правила перезаписи.
- Откройте главную страницу, запись, изображение и форму обратной связи.
- Поищите предупреждения о смешанном содержимом. Исправление адресов решает большинство из них.
- Проверьте отправку почты и настройки своего SMTP-плагина.
- Очистите кэш плагина кэширования.
- Удалите
~/site.sqlи~/files.tar.gzна обоих серверах. В обоих файлах конфиденциальные данные. - В разделе Settings > Reading убедитесь, что флажок, отпугивающий поисковые системы, не стоит.
Если вы переносите сайт плагином, проще начать с чистого WordPress. Сервер с предустановленным WordPress готов примерно за 3,5–4 минуты. Загляните на страницу сервера WordPress.
Комментарии0
Комментариев пока нет
Поделитесь своим мнением первым.
Пожалуйста, войдите или зарегистрируйтесь, чтобы оставить комментарий.