Резервное копирование — одна из важнейших процедур для любого сайта на WordPress. Не важно, ведёте ли вы блог, интернет-магазин или корпоративный сайт — потеря данных из-за сбоя, взлома или ошибки администратора может привести к серьёзным проблемам. В этой статье подробно разберём, как настроить автоматический бэкап WordPress с помощью проверенных плагинов и собственного кода. Это поможет защитить ваш ресурс и быстро восстановиться в случае непредвиденных ситуаций.
Почему важно настроить автоматический бэкап WordPress
Ручное копирование базы данных и файлов — крайне ненадёжный и неудобный способ защиты сайта. Многие забывают делать бэкапы или делают их нерегулярно, а это увеличивает риск потери данных.
Автоматический бэкап позволяет:
- Регулярно сохранять актуальные копии сайта без участия человека;
- Хранить резервные версии в облаке, на внешних серверах или на том же хостинге;
- Быстро восстановить сайт после сбоев, ошибок обновлений или взлома;
- Обеспечить аудит изменений и соблюдать требования безопасности.
В идеале стоит сохранять копии и файлов сайта, и базы данных, так как без базы сайт работать не будет, а без файлов — не загрузится дизайн и функционал.
Лучшие плагины для автоматического резервного копирования WordPress
Существует множество плагинов, которые позволяют гибко настраивать бэкапы. Рассмотрим три популярных и надёжных варианта.
1. UpdraftPlus — универсальный и понятный
UpdraftPlus — один из самых популярных плагинов для резервного копирования с миллионами активных установок. Он позволяет создавать полные бэкапы, сохранять их на популярных облачных хранилищах (Google Drive, Dropbox, Amazon S3 и др.) и восстанавливать одним кликом.
Основные возможности:
- Планирование автоматических бэкапов по расписанию;
- Выбор компонентов для резервного копирования (файлы, база данных, плагины, темы);
- Возможность восстановления из панели администрирования;
- Поддержка мультисайтов;
- Шифрование и защита бэкапов.
Для установки достаточно зайти в Плагины - Добавить новый, найти UpdraftPlus, установить и активировать. Затем в настройках задать расписание и подключить облачное хранилище.
2. BackWPup — мощный и бесплатный
BackWPup предлагает широкий функционал для создания резервных копий и их хранения на внешних сервисах. В бесплатной версии можно настроить планировщик, создавать архивы в ZIP, TAR.GZ и TAR.BZ2, а также отправлять бэкапы на FTP, Dropbox, S3 и др.
Особенность BackWPup — возможность тестирования архива прямо из админки, что удобно для проверки целостности.
3. WP Time Capsule — инкрементные бэкапы
WP Time Capsule отличается тем, что делает инкрементные бэкапы — копирует только изменённые файлы и записи, что экономит место и ресурсы сервера. Поддерживает интеграцию с Google Drive, Dropbox и Amazon S3.
Это особенно удобно для сайтов с большим объёмом данных и частыми обновлениями.
Пример: как создать простой автоматический бэкап WordPress с кастомным кодом
Если вы хотите сделать резервное копирование без плагинов, можно написать свою функцию, которая будет сохранять базу данных и архивировать папку с файлами сайта. Ниже приведён пример, который выполняет экспорт базы и создаёт ZIP с корневыми файлами WordPress.
function wplink_backup_database() {
global $wpdb;
$tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
$sql_dump = "";
foreach ( $tables as $table ) {
$table_name = $table[0];
$create_table = $wpdb->get_row("SHOW CREATE TABLE {$table_name}", ARRAY_N);
$sql_dump .= $create_table[1] . ";\n\n";
$rows = $wpdb->get_results("SELECT * FROM {$table_name}", ARRAY_A);
foreach ( $rows as $row ) {
$values = array_map('esc_sql', array_values($row));
$values = array_map(function($val) { return "'" . addslashes($val) . "'"; }, $values);
$sql_dump .= "INSERT INTO {$table_name} VALUES(" . implode(',', $values) . ");\n";
}
$sql_dump .= "\n\n";
}
$backup_dir = WP_CONTENT_DIR . '/wplink-backups';
if ( ! file_exists($backup_dir) ) {
mkdir($backup_dir, 0755, true);
}
$db_file = $backup_dir . '/db-backup-' . date('Y-m-d-H-i-s') . '.sql';
file_put_contents($db_file, $sql_dump);
// Создание архива сайта
$zip = new ZipArchive();
$zip_name = $backup_dir . '/site-backup-' . date('Y-m-d-H-i-s') . '.zip';
if ( $zip->open($zip_name, ZipArchive::CREATE) === TRUE ) {
$root = ABSPATH;
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($root), RecursiveIteratorIterator::LEAVES_ONLY);
foreach ( $files as $name => $file ) {
if ( ! $file->isDir() ) {
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($root));
// Исключаем папку бэкапов
if ( strpos($relativePath, 'wplink-backups') === false ) {
$zip->addFile($filePath, $relativePath);
}
}
}
$zip->close();
}
return ['db' => $db_file, 'zip' => $zip_name];
}
// Хук для запуска резервного копирования по расписанию
function wplink_schedule_backup() {
if ( ! wp_next_scheduled( 'wplink_daily_backup' ) ) {
wp_schedule_event( time(), 'daily', 'wplink_daily_backup' );
}
}
add_action('wp', 'wplink_schedule_backup');
add_action('wplink_daily_backup', function() {
wplink_backup_database();
});Этот код создаёт резервную копию базы данных и архивацию файлов сайта раз в сутки. Копии сохраняются в папку wp-content/wplink-backups. В реальных проектах стоит добавить отправку этих архивов на внешний сервер или облако для дополнительной безопасности.
Как интегрировать резервное копирование с облачными хранилищами
Хранение резервных копий локально на сервере удобно, но рискованно — если хостинг упадёт или случится аппаратный сбой, бэкапы могут пропасть вместе с сайтом.
Поэтому рекомендуется выгружать копии в облачные сервисы, например:
- Google Drive — удобен и бесплатен до 15 ГБ;
- Dropbox — интеграция с большинством плагинов и API;
- Amazon S3 — платформа для масштабируемого хранения с высокой надёжностью.
Плагины UpdraftPlus и BackWPup имеют встроенные настройки для подключения к этим сервисам. Для кастомных решений можно использовать API каждого сервиса. Например, для Google Drive существует официальная PHP-библиотека, которая позволяет загружать файлы программно.
Рекомендации по безопасности и хранению бэкапов
При настройке резервного копирования важно соблюдать несколько правил:
- Храните копии вне корневой папки сайта, чтобы исключить доступ злоумышленников через веб;
- Шифруйте резервные копии, особенно если в них содержится чувствительная информация;
- Проверяйте целостность архивов и тестируйте восстановление на тестовом сервере;
- Настраивайте уведомления о выполнении бэкапа и ошибках процесса;
- Регулярно очищайте старые копии, чтобы не забивать место на сервере.
Соблюдение этих рекомендаций поможет сохранить данные в безопасности и быстро реагировать на проблемы.