Резервное копирование сайта на WordPress — одна из главных задач для любого администратора. Важность регулярного создания бэкапов сложно переоценить: это гарантия того, что в случае сбоев, взлома или ошибок обновлений вы сможете быстро восстановить сайт без потери данных и времени.
Почему важно автоматизировать резервное копирование WordPress
Ручное создание резервных копий — процесс трудоемкий и забываемый. Автоматизация позволяет настроить регулярное создание копий базы данных и файлов сайта без вашего постоянного участия. Это снижает риски потери данных и экономит время.
Кроме того, автоматические бэкапы позволяют:
- Настраивать расписание по дням и часам;
- Хранить несколько версий копий;
- Сохранять резервные копии в облаке, на FTP или удаленных хранилищах;
- Получать уведомления о статусе создания копий.
В этой статье рассмотрим популярные плагины для автоматического бэкапа, а также покажем пример своего простого решения с помощью кода.
Лучшие плагины для автоматического резервного копирования WordPress
1. UpdraftPlus — универсальное решение для автоматического бэкапа
UpdraftPlus — один из самых популярных и надежных плагинов для резервного копирования. Он позволяет создавать копии базы данных, файлов, плагинов и тем. Поддерживает автоматическое расписание и хранение копий в популярных облаках (Google Drive, Dropbox, Amazon S3 и др.).
Преимущества:
- Простой интерфейс;
- Гибкие настройки расписания;
- Возможность восстановления прямо из админки;
- Поддержка шифрования копий и мультисайтов;
- Бесплатная версия покрывает большинство задач.
Вы можете установить и настроить UpdraftPlus через админ-панель WordPress, перейдя в Плагины > Добавить новый и найдя плагин по названию. Для настройки расписания и хранения копий используйте вкладку «Настройки» плагина.
2. BackWPup — бесплатный и функциональный плагин
BackWPup позволяет создавать резервные копии базы данных, файлов и даже экспортировать их в архивные форматы. Имеет встроенную поддержку отправки копий на FTP, Dropbox, S3, Microsoft Azure и другие сервисы. Позволяет запускать задачи по расписанию и отправлять логи по e-mail.
Особенности:
- Поддержка различных форматов архивов (zip, tar, tar.gz);
- Гибкие настройки задач и фильтров;
- Возможность восстановления через админку;
- Подробные логи и уведомления.
Для установки аналогично используйте поиск по имени в каталоге плагинов WordPress.
Пример автоматического резервного копирования базы данных с помощью собственного кода
Если вы хотите реализовать простое автоматическое резервное копирование базы данных без сторонних плагинов, можно использовать WP Cron и собственный PHP-скрипт. Ниже пример функции wpqa_backup_database, которая создает дамп базы данных и сохраняет его в папку wp-content/backups.
function wpqa_backup_database() {
global $wpdb;
$upload_dir = wp_upload_dir();
$backup_dir = WP_CONTENT_DIR . '/backups';
if ( ! file_exists( $backup_dir ) ) {
wp_mkdir_p( $backup_dir );
}
$filename = 'db-backup-' . date('Y-m-d-H-i-s') . '.sql';
$filepath = $backup_dir . '/' . $filename;
$tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
if ( ! $tables ) return;
$sql_dump = '';
foreach ( $tables as $table ) {
$table_name = $table[0];
// Получаем структуру таблицы
$create_table = $wpdb->get_row("SHOW CREATE TABLE $table_name", ARRAY_N);
$sql_dump .= "DROP TABLE IF EXISTS `$table_name`;
" . $create_table[1] . ";
";
// Получаем данные таблицы
$rows = $wpdb->get_results("SELECT * FROM $table_name", ARRAY_A);
foreach ($rows as $row) {
$values = array_map( function($value) use ($wpdb) {
return isset($value) ? '"' . esc_sql( $value ) . '"' : 'NULL';
}, array_values($row) );
$sql_dump .= "INSERT INTO `$table_name` VALUES(" . implode(',', $values) . ");
";
}
$sql_dump .= "
";
}
file_put_contents($filepath, $sql_dump);
}
// Запускаем функцию раз в 24 часа
if ( ! wp_next_scheduled( 'wpqa_daily_backup' ) ) {
wp_schedule_event( time(), 'daily', 'wpqa_daily_backup' );
}
add_action( 'wpqa_daily_backup', 'wpqa_backup_database' );Этот скрипт создает дамп всей базы данных и сохраняет файл с датой и временем в папке wp-content/backups. Расписание срабатывает раз в сутки. Для использования убедитесь, что папка backups доступна для записи.
Как интегрировать автоматический бэкап с облачными хранилищами
Чаще всего веб-мастера хотят хранить резервные копии не на сервере, а в облаке. Это защитит данные при сбоях хостинга. Многие плагины (например, UpdraftPlus) поддерживают интеграцию с Google Drive, Dropbox, Amazon S3 и другими сервисами.
Если вы хотите сделать это самостоятельно, можно использовать PHP SDK соответствующих сервисов. Например, для Google Drive потребуется OAuth-авторизация и отправка файла через API. Это достаточно объемная тема, но в целом последовательность такая:
- Настроить OAuth-ключи в Google API Console;
- Получить токен доступа;
- Использовать Google Drive API для загрузки файлов из папки бэкапов;
- Настроить cron-задачу для запуска загрузки после создания копии.
Для упрощения можно использовать готовые библиотеки, например Google API PHP Client.
Рекомендации по безопасности при работе с резервными копиями
При создании и хранении резервных копий важно соблюдать меры безопасности:
- Храните бэкапы вне папок с публичным доступом (не в корне сайта);
- Используйте шифрование для копий, особенно если они содержат пользовательские данные;
- Ограничьте доступ к папкам с бэкапами по IP или паролем;
- Регулярно удаляйте старые копии, чтобы не переполнять диск;
- Проверяйте корректность восстановления из бэкапов.
Для шифрования можно использовать встроенные функции PHP, например openssl_encrypt, или возможности плагинов.
Полезные плагины WPSHOP для управления бэкапами и оптимизации
Если вы используете продукты из экосистемы WPSHOP, обратите внимание на Clearfy Pro. Помимо оптимизации, он позволяет упростить работу с системой безопасности и резервным копированием.
Также плагин WPRemark может использоваться для автоматизации отчетов о состоянии сайта, включая информацию о бэкапах.