wpbackup.ru wordpress WPBackup.ru

Как использовать WP Backup для безопасности WordPress Multisite

WordPress Multisite — это мощная функция, позволяющая создавать сеть сайтов на одной установке WordPress. Однако резервное копирование такой сети требует особого подхода, чтобы обеспечить безопасность и целостность всех сайтов. В этой статье рассмотрим, как правильно организовать резервное копирование Multisite с помощью плагинов и собственного кода, а также разберём распространённые ошибки и методы их исправления.

Особенности резервного копирования WordPress Multisite

В отличие от обычного WordPress, где база данных и файлы принадлежат одному сайту, в Multisite одна база данных содержит таблицы для всех сайтов сети, а также общие файлы и файлы каждого отдельного сайта. Это накладывает следующие требования на резервное копирование:

  • Нужно сохранять всю базу данных целиком, чтобы не потерять связи между сайтами.
  • Файлы wp-content/uploads разделены по папкам для каждого сайта (например, sites/2/files), нужно их резервировать аккуратно.
  • Резервные копии должны поддерживать возможность восстановления как всей сети, так и отдельных сайтов.

Если вы используете WP Backup, обязательно убедитесь, что плагин корректно работает с мультисайтовой структурой, иначе рискуете получить неполные или повреждённые бэкапы.

Выбор плагина для резервного копирования Multisite

Многие популярные плагины поддерживают Multisite, однако не все работают одинаково. Рассмотрим три проверенных решения с поддержкой Multisite:

1. UpdraftPlus

Один из самых популярных плагинов. Поддерживает Multisite начиная с версии Premium. Позволяет делать резервные копии всей сети или отдельных сайтов. Позволяет сохранять бэкапы в облаках (Google Drive, Dropbox и др.)
Для настройки Multisite-резервного копирования в UpdraftPlus:

  • Установите и активируйте плагин на Network Admin.
  • Перейдите в настройки и выберите режим резервного копирования — «Сеть» или «Отдельный сайт».
  • Настройте расписание и место хранения.

Подробнее на официальном сайте: UpdraftPlus с поддержкой Multisite.

2. BlogVault

Платное решение с поддержкой Multisite. Позволяет выполнять инкрементальные резервные копии и обеспечивает возможность точечного восстановления отдельных сайтов.

3. WPvivid Backup

Бесплатный и удобный плагин, который корректно работает с Multisite. Позволяет сохранять полные бэкапы и восстанавливать сеть целиком.

Пример кода: автоматизация резервного копирования Multisite с помощью WP-Cron

Если вы хотите настроить автоматическое резервное копирование Multisite без плагинов, можно использовать WP-CLI и WP-Cron. Вот пример функции, которая запускает резервное копирование базы данных и файлов всей сети:

function wpbackup_ru_multisite_backup() {
    if (!is_multisite()) return;
    $sites = get_sites();
    foreach ($sites as $site) {
        switch_to_blog($site->blog_id);
        // Сохраняем базу данных сайта
        $db_file = WP_CONTENT_DIR . "/backups/site_{$site->blog_id}_" . date('Ymd_His') . ".sql";
        $command = "mysqldump --user=DB_USER --password=DB_PASSWORD --host=DB_HOST DB_NAME > $db_file";
        shell_exec($command);
        // Копируем папку uploads
        $uploads_dir = wp_upload_dir();
        $backup_dir = WP_CONTENT_DIR . "/backups/uploads/site_{$site->blog_id}_" . date('Ymd_His');
        mkdir($backup_dir, 0755, true);
        shell_exec("cp -r " . escapeshellarg($uploads_dir['basedir']) . " " . escapeshellarg($backup_dir));
        restore_current_blog();
    }
}
add_action('wpbackup_ru_cron_multisite_backup', 'wpbackup_ru_multisite_backup');

// Запускаем раз в сутки
if (!wp_next_scheduled('wpbackup_ru_cron_multisite_backup')) {
    wp_schedule_event(time(), 'daily', 'wpbackup_ru_cron_multisite_backup');
}

Этот код создаёт SQL дампы и копирует папки uploads для каждого сайта в отдельную папку. Для работы нужно заменить DB_USER, DB_PASSWORD, DB_HOST и DB_NAME на реальные данные вашей базы.

Как восстановить отдельный сайт из резервной копии Multisite

Восстановление в Multisite сложнее, чем в односайтовом WordPress, потому что таблицы базы данных объединены. Чтобы восстановить один сайт:

  1. Восстановите базу данных целиком или только таблицы, связанные с нужным сайтом (обычно они имеют суффикс с ID сайта, например, wp_3_posts, wp_3_options).
  2. Восстановите файлы uploads для этого сайта (обычно в wp-content/uploads/sites/ID).
  3. Проверьте, что в таблице wp_blogs есть запись об этом сайте.

Если нужно восстановить только один сайт, примените запросы с фильтрами и используйте инструменты для выборочного импорта, например, WP-CLI с параметром --url.

Распространённые ошибки и их решения

Неполные копии файлов uploads

Иногда резервное копирование не включает все папки uploads для сайтов Multisite, особенно если используются нестандартные пути. Проверяйте путь через функцию wp_upload_dir() для каждого сайта перед копированием.

Повреждение базы данных при восстановлении

Проблемы возникают, если восстанавливается не вся база, а только часть таблиц, или если ID сайтов в базе не совпадают с файлами. Рекомендуется делать полное резервное копирование всей базы и внимательно восстанавливать структуру.

Отсутствие автоматизации или планировщика

Без настроенного WP-Cron или внешнего cron-задачи резервное копирование может не запускаться. Рекомендуется проверять расписание задач и журнал ошибок.

Заключительные рекомендации по безопасности Multisite Backup

Для безопасного резервного копирования Multisite:

  • Используйте проверенные плагины с поддержкой Multisite.
  • Храните бэкапы в защищённых местах с ограниченным доступом.
  • Настраивайте автоматическое удаление старых копий, чтобы не перегружать сервер.
  • Периодически тестируйте восстановление, чтобы убедиться в работоспособности бэкапов.

Для удобной работы с резервными копиями рекомендуем обратить внимание на сервисы и инструменты на wpshop.ru, где представлены решения для автоматизации и мониторинга резервного копирования WordPress.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее