Резервное копирование сайта — одна из важных задач для любого администратора WordPress. Регулярные копии помогают быстро восстановиться после сбоев, взломов или ошибок при обновлениях. В этой статье мы подробно рассмотрим, как автоматизировать создание резервных копий WordPress с помощью PHP-скриптов и надежных плагинов, а также дадим рекомендации по хранению бэкапов.
Почему важна автоматизация резервного копирования в WordPress
Создание резервных копий вручную — процесс трудоемкий и подвержен человеческой ошибке. Автоматизация позволяет задать четкий график, минимизировать риск пропуска бэкапа и обеспечить сохранность данных.
Кроме того, при автоматическом создании копий можно интегрировать уведомления, хранение архивов на удаленных серверах и даже моментальное восстановление.
Рассмотрим, как настроить автоматическое резервное копирование с помощью кода и популярных плагинов.
Автоматизация резервного копирования с помощью PHP и WPBoot функции
Для более продвинутых разработчиков можно написать собственный скрипт, который будет создавать копии файлов и базы данных, а затем запускать его через cron.
Основные этапы скрипта резервного копирования
- Архивирование файлов темы, плагинов и загрузок;
- Экспорт базы данных в SQL файл;
- Сохранение архивов в отдельную папку или на удаленный сервер;
- Очистка старых бэкапов для экономии места.
Пример базового PHP-скрипта для резервного копирования WordPress
<?php
// Функция WPBoot_create_backup создаёт архив файлов и экспортирует базу данных
function WPBoot_create_backup() {
$upload_dir = wp_upload_dir();
$backup_dir = $upload_dir['basedir'] . '/wpboot_backups';
if (!file_exists($backup_dir)) {
mkdir($backup_dir, 0755, true);
}
// Архивируем wp-content/uploads
$zip = new ZipArchive();
$zip_name = $backup_dir . '/uploads_backup_' . date('Y_m_d_H_i_s') . '.zip';
if ($zip->open($zip_name, ZipArchive::CREATE) !== TRUE) {
error_log('Не удалось создать архив');
return false;
}
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($upload_dir['basedir']));
foreach ($files as $file) {
if (!$file->isDir()) {
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($upload_dir['basedir']) + 1);
$zip->addFile($filePath, $relativePath);
}
}
$zip->close();
// Экспорт базы данных
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 .= "\nDROP TABLE IF EXISTS `{$table_name}`;\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(array($wpdb, 'escape'), array_values($row));
$values = array_map(function($value) { return "'" . str_replace("'", "''", $value) . "'"; }, $values);
$sql_dump .= "INSERT INTO `{$table_name}` VALUES(" . implode(',', $values) . ");\n";
}
}
$sql_file = $backup_dir . '/db_backup_' . date('Y_m_d_H_i_s') . '.sql';
file_put_contents($sql_file, $sql_dump);
return true;
}
// Запуск функции
WPBoot_create_backup();
?>
Этот пример создаст архив с файлами uploads и экспортирует базу данных. Его можно запускать через планировщик cron, например, с помощью wp-cli или системного cron.
Использование популярных плагинов для автоматического резервного копирования
Для удобства многие выбирают готовые решения. Рассмотрим несколько популярных и надежных плагинов.
1. UpdraftPlus
Один из самых популярных плагинов для резервного копирования с возможностью автоматического создания бэкапов и выгрузки на облачные хранилища (Google Drive, Dropbox и др.).
- Настройка расписания резервного копирования;
- Восстановление сайта в один клик;
- Поддержка шифрования и инкрементальных бэкапов.
Скачать и настроить можно по ссылке: UpdraftPlus на WPShop.ru.
2. BackWPup
Плагин ориентирован на автоматическое создание полных резервных копий и отправку их на FTP, Dropbox, S3 и другие сервисы.
- Гибкие настройки заданий и планировщика;
- Поддержка базы данных и файлов;
- Подробные логи и уведомления.
Доступен для загрузки и настройки: BackWPup на WPShop.ru.
3. WPBoot Backup (пример кастомного плагина)
Если хочется сделать свой плагин, можно расширить функцию из предыдущего примера, добавив интерфейс для управления бэкапами и настройки расписания через WP-Cron.
Пример добавления задачи в WP-Cron:
function wpboot_schedule_backup() {
if (!wp_next_scheduled('wpboot_cron_create_backup')) {
wp_schedule_event(time(), 'daily', 'wpboot_cron_create_backup');
}
}
add_action('wp', 'wpboot_schedule_backup');
add_action('wpboot_cron_create_backup', 'WPBoot_create_backup');
Так вы сможете запускать резервное копирование раз в день без участия пользователя.
Где хранить резервные копии и как управлять ими
Хранить бэкапы лучше не на основном сервере, чтобы избежать потери данных при сбоях хостинга.
Рекомендуемые места хранения:
- Облачные сервисы (Google Drive, Dropbox, Amazon S3);
- Удаленный FTP-сервер;
- Локальный компьютер с периодической загрузкой.
Для автоматической выгрузки на облако большинство плагинов имеют встроенные интеграции. При собственных скриптах можно настроить передачу файлов через FTP или API сервисов.
Рекомендации по безопасности и производительности
При автоматическом резервном копировании учитывайте:
- Не нагружайте сервер одновременно с пиковым трафиком — лучше планировать на ночь или часы минимальной активности;
- Шифруйте бэкапы, если они содержат конфиденциальные данные;
- Регулярно проверяйте работоспособность созданных копий;
- Ограничьте количество хранимых копий, чтобы не переполнять дисковое пространство.
Использование WPBoot функций и плагинов позволит решить эти задачи гибко и надежно.
Выводы и практические советы
Автоматизация резервного копирования — обязательный элемент поддержки WordPress сайта. Выбирайте метод, который подходит под ваш уровень навыков и инфраструктуру:
- Для новичков — плагин UpdraftPlus или BackWPup с готовой настройкой;
- Для разработчиков — кастомные PHP-скрипты с использованием WP-Cron и расширенной логикой;
- Обязательно храните копии вне сервера сайта;
- Тестируйте восстановление и регулярно обновляйте методы.
Для более удобного управления резервными копиями и другими задачами рекомендуем ознакомиться с Clearfy Pro — плагином для оптимизации и автоматизации WordPress.