Резервная копия сайта на домашнем сервере (OpenServer 6+): пошаговый гайд
Резервная копия сайта на локальном сервере позволяет безопасно работать с кодом, тестировать темы и плагины, а также быстро восстанавливать проект после сбоев на хостинге. В этой инструкции обновлён старый подход (Денвер) под OpenServer 6+ с использованием FileZilla или загрузчика редактора PhpStorm. После изменений вы легко загрузите обновлённые файлы обратно через FTP/SSH.
Зачем делать локальную резервную копию
- Безопасная «песочница»: тестирование тем, плагинов, обновлений WordPress, PHP без рисков для продакшена.
- Быстрая диагностика ошибок и оптимизация базы данных.
- Работа офлайн и высокая скорость локальной сборки.
- Мгновенное восстановление в случае взлома или сбоя хостинга.
Что понадобится
- OpenServer 6+ (Windows; Apache/NGINX + PHP + MySQL/MariaDB).
- Доступ к продакшен-хостингу: FTP/SFTP и phpMyAdmin (или SSH).
- FileZilla или PhpStorm (Deployment) для передачи файлов.
- Данные базы данных вашего сайта (из
wp-config.php
).
Шаг 1. Устанавливаем и запускаем OpenServer 6+
- Установите OpenServer, например в
C:\OSPanel\
. - Запустите Open Server → в трее выберите нужные модули (PHP, Apache/NGINX, MySQL/MariaDB) → Запустить.
- Убедитесь, что работает
http://localhost/
и доступен phpMyAdmin. (в новой версии 6 phpMyAdmin нужно ставить отдельно)
Шаг 2. Создаём локальный домен
В OpenServer все сайты хранятся в OSPanel\home\
. Создайте папку вашего проекта, например OSPanel\home\mysite.loc\
. Главная страница – это index.php
в этой папке.
- Внутри каталога домена создайте ещё один с названием .osp, в нём текстовый файл с расширением (.ini) project.ini, содержимое такое:
[mysite.loc
]php_engine = PHP-8.2
Или скопируйте из папки примера example.local - После этого нужно включить нужные модули. ПКМ по значку OpenServer в трее → раздел Модули-PHP и Модули-MariaDB (я использую такие базы) → включить нужные.
- После перезагрузите сервер. Полная инструкция по OpenServer здесь.
Шаг 3. Копируем файлы сайта с хостинга
Задача – скачать все файлы продакшен-сайта в OSPanel\home\mysite.loc\
. Удобно делать это через FileZilla или PhpStorm → Deployment.
Вариант A: FileZilla
- Откройте Site Manager → создайте подключение (хост, порт, логин, протокол FTP/SFTP).
- Включите Directory Comparison/Synchronized browsing, чтобы проще обновлять изменения.
- Скачайте корень сайта (включая
wp-content
,wp-includes
,wp-admin
и скрытые файлы типа.htaccess
).
Полная инструкция как работать с FileZilla
Вариант B: PhpStorm (Deployment)
- Settings → Build, Execution, Deployment → Deployment → добавьте SFTP/FTP, укажите корень сайта.
- Настройте Mappings, чтобы локальная папка указывала на
OSPanel\domains\mysite.loc\
. - Синхронизируйте файлы через Download from….
Совет. Обычно нет необходимости скачивать кэши (wp-content/cache
, uploads/cache
). Это сэкономит время.
Шаг 4. Экспортируем базу данных с хостинга
- Зайдите в phpMyAdmin на хостинге → выберите базу сайта (название смотрите в
wp-config.php
). - Экспорт → формат
SQL
(опционально: сжатие gzip).
Замена домена при переносе:
- В WordPress есть сериализованные данные, поэтому массовый поиск/замена в текстовом редакторе может поломать структуру. Подойдёт Notepad++.
- После скачивания откройте SQL файл в любом редакторе кода, например Notepad++:
- Альтернатива без замены в БД – плагин переноса Duplicator
Шаг 5. Импортируем базу в OpenServer
- Откройте phpMyAdmin локально (через
http://localhost/
) → создайте новую БД, напримерmysite_local
(COLLATION:utf8mb4_unicode_ci
). - Перейдите в Import → загрузите SQL (или
.sql.gz
).
Если файл большой, поднимите лимиты в php.ini
выбранной версии PHP OpenServer:
; пример: OSPanel\modules\php\PHP_8.2\php.ini
upload_max_filesize = 256M
post_max_size = 256M
max_execution_time = 300
memory_limit = 1024M
После изменений перезапустите OpenServer. Для очень больших дампов используйте импорт из консоли MySQL/MariaDB или утилиты Sypex Dumper/BigDump.
Шаг 6. Подключаем сайт к локальной БД (wp-config.php)
- Откройте
OSPanel\domains\mysite.loc\wp-config.php
и внесите параметры локальной базы:
define( ‘DB_NAME’, ‘mysite_local’ );
define( ‘DB_USER’, ‘root’ );
define( ‘DB_PASSWORD’, » ); // стандарт для OpenServer
define( ‘DB_HOST’, ‘localhost’ );
Чтобы сайт сразу открывался на локальном домене без глобальной замены в БД, можно временно задать URL:
define( ‘WP_HOME’, ‘http://mysite.loc’ );
define( ‘WP_SITEURL’, ‘http://mysite.loc’ );
Для отладки:
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true ); // лог в wp-content/debug.log
define( ‘WP_DEBUG_DISPLAY’, false );
Шаг 7. Проверка и типичные ошибки
- Зайдите в Настройки → Постоянные ссылки и сохраните заново (перегенерируются правила
.htaccess
). - Отключите/очистите кеш-плагины (WP Super Cache, W3TC, LSCACHE и т.п.).
- Проверьте Медиафайлы (путь
wp-content/uploads
) и права доступа. - Если отсутствуют виджеты/меню – вручную пересохраните в Внешний вид → Меню/Виджеты.
Рекомендованные практики для ежедневной работы
- Git для кода: делайте коммиты маленькими частями; добавьте
.gitignore
:
# WordPress
wp-content/cache/
wp-content/uploads/
wp-config.php
node_modules/
vendor/
[/box> - Плагины резервного копирования (продакшен): UpdraftPlus, WPvivid, Duplicator. Настройте инкрементальные бэкапы в облако.
- Деплой: после изменений с локалки загружайте через FileZilla или PhpStorm Deployment (только изменённые файлы).
Быстрая шпаргалка
Шаг | Действие | Инструмент | Примечание |
---|---|---|---|
1 | Установить OpenServer 6+ | OpenServer | Запустить модули PHP/Apache/MySQL |
2 | Создать домен mysite.loc |
OSPanel\domains | Папка сайта = домен |
3 | Скачать файлы с хостинга | FileZilla/PhpStorm | Захватить .htaccess и скрытые файлы |
4 | Экспортировать БД | phpMyAdmin (хостинг) | Формат SQL (можно .gz) |
5 | Импортировать БД локально | phpMyAdmin (локально) | Поднять лимиты в php.ini при необходимости |
6 | Обновить wp-config.php | Редактор кода | DB_NAME/USER/PASS/URL для локалки |
7 | Проверить сайт | Браузер | Пересохранить Permalinks, очистить кеш |
Заключение
Локальная резервная копия сайта на OpenServer 6+ — это удобный и безопасный способ разрабатывать, тестировать и обновлять проект. Работайте с изменениями локально, а в продакшен отправляйте уже проверенный код через FTP или загрузчик PhpStorm.
Будьте на связи: подписывайтесь на наш Telegram-канал с полезными заметками и апдейтами — t.me/AshifinStudio.
FAQ
Вопрос | Ответ |
---|---|
Обязательно ли менять домен в базе? | Не обязательно: можно временно задать WP_HOME/WP_SITEURL в wp-config.php. Но для стабильной работы лучше сделать замену через Notepad++ или плагин. |
Что делать, если база слишком большая? | Поднимите лимиты в php.ini, используйте сжатый .sql.gz или импорт через консоль/Sypex Dumper. |
Почему не работают ссылки после переноса? | Пересохраните Permalinks в админке WordPress, проверьте .htaccess и модуль Rewrite. |
Как быстро заливать изменения на продакшен? | Используйте FileZilla или PhpStorm Deployment и загружайте только изменённые файлы. |
Можно ли настроить автоматический бэкап? | Да. Используйте плагины UpdraftPlus, WPvivid или Duplicator для инкрементальных копий в облако. |
Спасибо, Федор!
Отличная подробная инструкция.
В свое время я долго «тыкался» пытаясь решить эту же задачу. Справился, конечно. Но времени и сил затратил немерено.
Спасибо за оценку!
Иметь резервную копию сайта должен иметь каждый блоггер, это очень важно.
Если используется свой сервер/vps, либо хостер предоставляет возможность скопировать непосредственно файлы/каталоги базы данных, то перенести проще именно так.
На никсах базы могут находиться по пути /var/lib/mysql
Для своего сервера можно выполнить такую составную команду:
/etc/init.d/mysql stop && cd /var/lib && rm /home/allMySQL.tar.gz && tar cfz /home/allMySQL.tar.gz mysql && /etc/init.d/mysql start
1. остановить демона mysql
2. сменить директорию на /var/lib
3. удалить предыдущий файл-архив (если есть)
4. упаковать все БД в один архив
5. запустить демона mysql
Слышал от некоторых администраторов, что возможны проблемы. Но у меня их не возникало, испробовал в разных вариация
Windows ↔ Linux Gentoo ↔ Linux Debian
Базы замечательно подхватываются после рестарта, а главное, не нужно долго ожидать, пока утилиты будут неторопливо пихать запросы, проверяется уникальность ключей и т. п.
У себя содержимое распаковать в \\usr\local\mysql-XX\
Каждая база — это отдельный каталог.
Спасибо! Это конечно больше для продвинутых пользователей.
Тут весь смысл создания копии сайта, чтоб можно было с ней работать, проводить эксперименты. настраивать темы и шаблоны.
Пытался сделать копию сайта, как вы советуете и это думаю правильно и удобно. Но не получилось, че-то не пошло, а времени разбираться не было. Но знаю, что копию делать нужно обязательно, чтобы потом не плакать. Решил вопрос так: зашел в админку-консоль-инструменты-экспорт и скачал файл. Пока не пробовал восстанавливать такой файл, но надеюсь через какой-то плагин получиться ))
Застряла на переносе БД. Она у меня 30Мб. Изменила настройки в файле php.ini. Сначала процесс пошел, а потом выдало ошибку 1054 — неизвестная колонка. Перерыла интернет, так и не нашла, что тут делать. Федор, что вы можете подсказать?
.
Я встречался с таким когда переносил сайт с хостинга Хостенко, там какие то особенности создания дампа.
Решил проблему скриптом Sypex Dumper https://ashifin.com/luchshie-video-uroki/bystryj-perenos-bazy-dannyx-s-pomoshhyu-sypex-dumper.html
Благодарю, Федор. Все прошло замечательно. Воспользовалась вашей версией скрипта. Вы очень хорошо разложили все по полочкам. Работает прекрасно. Тоже не вижу необходимо использовать нечто более навороченное.
Конечно же проверила, открывает ли скрипт БД, что создает хостинг — не открывает. Наверное, действительно, есть разные способы сжатия.
Вот теперь я могу приступать к дальнейшим шагам по сайту. Хотя с переносом провозилась долго, но не жалею — приобрела кучу знаний и опыта.
теперь после переноса возникла другая проблема. Не пускает в админ панель. Выдает, что пароль неверный. Федор, вы встречались с такой ситуацией? Что можно сделать?
Нужно сбросить пароль через базу данных Если на Денвере то адрес //localhost/Tools/phpMyAdmin/ находите таблицу wp_users

отмечаете ее и первая кнопка-обзор находите себя -админа и нажимаете карандаш-правка
там поле user_pass в него вставляете в поле-значение 21232f297a57a5a743894a0e4a801fc3
и сохраняете. Теперь Ваш пароль admin
Затем в админке поменяете
Нашла ошибку.
В поле Функция надо выбрать функцию MD5.
Это я нашла в интернете. Но не понимаю, что такое. Кстати, как я поняла, пароль все-таки можно вводить любой. Но экспериментировать с этим желания нет 🙂
Все прошло прекрасно. Пароль воспринялся, в админку вошла и поменяла уже на свой пароль.
Еще раз благодарю за помощь.
MD5 идет по умалчиванию . Это способ шифрования.
Я никогда не восстанавливал пароль на Денвере, может там и нужно указывать, буду знать.
Большое спасибо за ответ. Замену провела без проблем. Потом обновила Denwer.
В окно ввожу этот же пароль (все время я копируя его с вашего письма).
Но все равно в админку не пускает. Говорит, что пароль не верен.
Может, что еще надо почистить?
И зачем такой длинный пароль вводить в таблицу? Это какой-то умолчаемый параметр? Зависит ли он версии WP?
Сейчас начну изучать. Попутно вопрос — надо ли теперь возвращать Denwer в исходное состояние? Я уже туда скопировала файлы движка. Плюс изменила pho.ini.
Скачала материалы по вашей ссылке. Как вы считаете, нужно ли менять Denwer на предложенную вами версию? Я в начале ставила официальную версию WordPress и создавала пустую БД. Созданный так сайт в локалке открывался.
Если открывался то не обязательно менять.
Проблемы могут быть с новыми шаблонами, которые применяют новые технолигии типа буштрап, они на Денвере могут глючить и давать ошибки.
Вообще если честно то для 4 версии WordPress лучше использовать другой сервер. Денвер стал очень отставать и дает много ошибок.
Я все делаю на тестовом сайте в сети а мой дизайнер предпочитает XAMPP
А XAMPP обновляется? Посмотрела — как-будто тоже давняя разработка. Есть статьи за 2010 год. Но все же я переходе подумаю позже, когда подопрет. Denwer все-таки уже знаю.
Федор, еще такая проблема. После переноса на Denwer не отображаются аватарки в комментариях.
Переустановила все по второму разу и опять получила ту же картину.
Локальный сервер у меня не имеет доступа в интернет. Связано ли это с этим? Или же причина в чем-то ином? В интернете ничего вразумительного не смогла найти.
Конечно ведь аватарки с сервиса -граватор вот статья https://ashifin.com/vse-dlya-wordpress/kak-nastroit-globalnyj-avatar-gravatar.html
Само изображение хранится на этом сервисе
Спасибо. Успокоили. А то я уже начала задумываться, что тему надо менять.
Да это важная тема затронута, я недавно чистил от вирусов комп, так все папки пропали с информацией. Х
А причем здесь локальный сервер? Чтобы не было вирусов на компе, надо иметь хороший антивирус. На эту тему у Федора есть отдельная статья.
Да это важная тема затронута, я недавно чистил от вирусов комп, так все папки пропали с информацией. Хорошо что самые важные я сохранил на почте и на диске. А если с сайтом что то, это вообще проблема. Надо подумать и попробовать себе так сделать.
Информация с сайта сохраняют двумя способами. 1. Хороший хостер регулярно делает копии. 2. Сам автор заботится о своем детище и тоже делает копии. Локальный сервер нужен не для хранения данных, а для работ с сайтом. Лучше пробовать на нем до того, как переносить какие-то изменения на основной сайт.
Статья хорошая и полезная.
У себя применяю плагин WP Database Backup, всегда на почту приходит архив базы данных.
Плюс как дополнение на хостинге всегда можно восстановить резервную копию, есть выбор по дням сохранения. Очень удобно, пользовался много раз. Хостинг beget.
Неужели у вас так часто летела БД? Мне как-то не приходилось пользоваться такой услугой. Единственное мое обращение к хостеру было связано с DOS-атакой. Честно говоря, напугали меня сильно.
Я тоже буквально вчера этот плагин установил и начинаю им пользоваться. Действительно удобно то что на почту приходят архив базы данных
Я не считаю нужным ставить дополнительный плагин. БД всегда можно скачать прямо из своего кабинета на хостинге. Занимает считанные минуты. Так зачем дополнительная нагрузка на сайт?