Використання Drupal для управління контентом – це ефективний спосіб отримати максимум від вашого веб-ресурсу, оскільки платформа пропонує безліч інструментів, розширень та можливостей. Однак, попри всі переваги, резервне копіювання не входить до списку сильних сторін Drupal. Це є певним недоліком для такої потужної CMS. Оскільки відсутній вбудований інструмент для створення резервних копій сайту Drupal на Linux, вам доведеться виконувати цю процедуру вручну.
Створення каталогу для резервних копій
Для створення резервної копії вашого сайту Drupal в операційній системі Linux, спочатку необхідно створити спеціальну папку для зберігання експортованих файлів. Для цього скористайтеся командою mkdir у терміналі.
Спочатку авторизуйтесь як root користувач, використовуючи команду su:
su -
Або ж, якщо ви не знаєте пароль root, можете отримати відповідні права за допомогою команди sudo -s:
sudo -s
Далі, у кореневому каталозі “/”, створіть папку для резервних копій:
mkdir -p drupal-backups
Експорт файлів SQL
Наступним кроком є експортування всіх файлів бази даних SQL. Зверніть увагу, що операції з файлами SQL повинні виконуватися з-під облікового запису root. Не намагайтеся виконувати ці дії звичайним користувачем.
У папці “drupal-backups” створіть підкаталоги “sql” для файлів бази даних, “installation-files” для файлів інсталяції та “apache2-conf” для конфігураційних файлів Apache2:
mkdir -p /drupal-backups/sql mkdir -p /drupal-backups/installation-files mkdir -p /drupal-backups/apache2-conf
Використовуйте утиліту mysqldump для експорту файлів бази даних Drupal з вашої SQL інсталяції на сервері в папку резервного копіювання.
Примітка: перед використанням наведеної нижче команди, замініть “ім’я користувача” та “ім’я бази даних” на ваші реальні ім’я користувача SQL і ім’я бази даних Drupal. У багатьох інсталяціях ім’я бази даних SQL за замовчуванням – “drupal”.
cd drupal-backups/sql mysqldump -u username -p databasename > db.drupal_backup-1.sql
Резервне копіювання файлів інсталяції
Після того, як основні файли бази даних скопійовані, наступним кроком буде створення резервної копії фактичної інсталяції Drupal. Для цього, перш за все, необхідно зробити повну копію вмісту каталогу /var/www/html/. Якщо ви слідували нашим рекомендаціям по встановленню Drupal, ядро вашого сайту Drupal в Linux розміщується безпосередньо в каталозі /var/www/html/, без підпапок. За допомогою команди cp створіть повну копію каталогу html та помістіть її в /drupal-backups/files.
Примітка: якщо ваша інсталяція знаходиться в каталозі /var/www/html/drupal або подібному, адаптуйте команду cp до вашої конфігурації.
cp -rp /var/www/html/* /drupal-backups/installation-files/
Важливо створити резервну копію інсталяції Drupal, оскільки ці файли містять важливі налаштування сайту, теми оформлення та інше. Однак, це не єдині файли, для яких необхідно створити резервну копію. Іншим важливим файлом є конфігураційний файл Apache2. Цей файл інформує веб-сервер Apache про місцезнаходження вашої інсталяції Drupal і спосіб її завантаження. Без цього файлу ваша резервна копія буде неповною.
Для створення резервної копії файлу конфігурації Apache2, виконайте таку команду:
cp /etc/apache2/sites-available/drupal.conf /drupal-backups/apache2-conf/
Стиснення файлів резервної копії
Тепер, коли всі необхідні файли сервера Drupal скопійовані та підготовлені до резервного копіювання, час створити Tar-архів. Стиснення значно спростить переміщення файлів резервної копії. Щоб створити Tar-архів ваших файлів резервної копії Drupal, виконайте команду:
tar -zcvpf drupal-website-backup.tar.gz /drupal-backups
Стиснення резервних копій є корисним, але небезпечним. Якщо ви плануєте зберігати свій веб-сайт Drupal у загальнодоступному хмарному сховищі, то завантаження архіву Tar без шифрування означає, що будь-хто може отримати доступ до даних у файлах бази даних SQL, файлах сайту та інших.
Найкращим рішенням буде зашифрувати архів перед його завантаженням. Для шифрування переконайтесь, що GnuPG встановлено на вашому сервері. Якщо ні, знайдіть у менеджері пакетів вашої Linux-системи пакет “gpg” та встановіть його. Після встановлення виконайте наступну команду, щоб повністю зашифрувати ваш архів резервних копій Drupal:
gpg -c drupal-website-backup.tar.gz
Запуск gpg -c спонукає GnuPG зашифрувати архів Tar та запросить пароль для встановлення нового зашифрованого файлу GPG. Введіть надійний пароль та зачекайте завершення процесу шифрування. Коли GPG закінчить роботу, скопіюйте файл drupal-website-backup.tar.gz.gpg та завантажте його у обране місце для зберігання резервних копій.
Відновлення з резервної копії
Завантажте файл резервної копії Drupal GPG на сервер, де ви хочете відновити сайт. Потім виконайте наступні дії:
su -
або
sudo -s
Створіть каталог для розміщення резервної копії.
mkdir -p /drupal-restore/
Перемістіть файл GPG в новостворену папку.
mv /folder/where/drupal-website-backup/is/drupal-website-backup.tar.gz.gpg /drupal-restore/
Розшифруйте резервну копію за допомогою GPG.
gpg drupal-website-backup.tar.gz.gpg
Розпакуйте резервну копію.
tar -xvpf drupal-website-backup.tar.gz
Перейдіть до папки розпакованої резервної копії.
cd drupal-restore/drupal-backups
Настав час почати відновлення. Спочатку імпортуйте файли Drupal SQL в MySQL.
cd sql
mysqldump -u username -p drupal < db.drupal_backup-1.sql
Тепер, коли база даних відновлена, відновіть решту файлів.
cp /drupal-restore/drupal-backups/apache2-conf/drupal.conf /etc/apache2/sites-available/
sudo ln -s /etc/apache2/sites-available/drupal.conf /etc/apache2/sites-enabled/drupal.conf cp -rp /drupal-restore/drupal-backups/installation-files/* /var/www/html/
Переміщення файлів на потрібні місця є останнім важливим кроком у процесі відновлення.
Після успішного виконання всіх дій перезапустіть сервер Linux. Хоча перезавантаження може здатися зайвим, це корисна міра. Перезапуск гарантує, що всі необхідні для коректної роботи Drupal служби перезапустяться. Після відновлення роботи сервера все має працювати як до відновлення.