Jak wykonać kopię zapasową witryny Drupal w systemie Linux

Używanie Drupala jako systemu zarządzania treścią to doskonały sposób na pełne wykorzystanie potencjału Twojej strony internetowej. Platforma ta oferuje wiele narzędzi, wtyczek i funkcji, które mogą znacznie ułatwić pracę. Mimo swoich licznych zalet, Drupal nie zawiera wbudowanego narzędzia do tworzenia kopii zapasowych, co może stanowić problem dla użytkowników. Dlatego konieczne jest ręczne wykonanie kopii zapasowej witryny Drupal w systemie Linux.

Tworzenie folderu kopii zapasowych

Aby wykonać kopię zapasową witryny Drupal w systemie Linux, należy najpierw stworzyć folder, w którym będą przechowywane wyeksportowane pliki. W terminalu można to zrobić za pomocą polecenia mkdir.

Na początku zaloguj się jako użytkownik root, korzystając z polecenia:

su -

Alternatywnie, jeśli nie znasz hasła systemowego, możesz użyć:

sudo -s

Następnie utwórz folder kopii zapasowej w katalogu głównym:

mkdir -p drupal-backups

Eksportowanie plików SQL

Kolejnym krokiem jest wyeksportowanie wszystkich plików bazy danych SQL. Operacja ta powinna być wykonywana z konta root, dlatego nie próbuj tego robić jako zwykły użytkownik.

W folderze drupal-backups utwórz podfolder dla plików SQL oraz podfolder dla plików instalacyjnych:

mkdir -p /drupal-backups/sql
mkdir -p /drupal-backups/installation-files
mkdir -p /drupal-backups/apache2-conf

Użyj polecenia mysqldump, aby wyeksportować pliki bazy danych Drupal z instalacji SQL na serwerze do folderu kopii zapasowej.

Pamiętaj, aby przed użyciem poniższego polecenia dostosować „nazwę użytkownika” oraz „nazwę bazy danych” do swoich danych logowania w SQL. Najczęściej domyślną nazwą bazy danych jest „drupal”.

cd drupal-backups/sql
mysqldump -u username -p databasename > db.drupal_backup-1.sql

Tworzenie kopii zapasowej plików instalacyjnych

Teraz przyszedł czas na wykonanie kopii zapasowej właściwej instalacji Drupala. Aby to zrobić, należy skopiować wszystkie pliki z katalogu /var/www/html/. Zakładając, że instalacja Drupala odbyła się zgodnie z naszym przewodnikiem, rdzeń Twojej witryny powinien znajdować się w tym właśnie katalogu, bez dodatkowych podfolderów. Wykonaj pełną kopię folderu html i umieść ją w /drupal-backups/files.

Uwaga: jeśli Twoja instalacja znajduje się w /var/www/html/drupal lub podobnym, dostosuj polecenie cp do swoich potrzeb.

cp -rp /var/www/html/* /drupal-backups/installation-files/

Ważne jest, aby wykonać kopię zapasową instalacji Drupala, ponieważ zawiera ona kluczowe konfiguracje, motywy i inne istotne pliki. Nie zapominaj również o pliku konfiguracyjnym Apache2, który informuje serwer WWW Apache o lokalizacji instalacji Drupala i sposobie jej ładowania. Bez tego pliku kopia zapasowa może być bezużyteczna.

Aby utworzyć kopię zapasową pliku konfiguracyjnego Apache2, użyj następującego polecenia:

cp /etc/apache2/sites-available/drupal.conf /drupal-backups/apache2-conf/

Kompresowanie plików kopii zapasowych

Teraz, gdy wszystkie niezbędne pliki serwera Drupal zostały skopiowane, czas na stworzenie archiwum tar. Kompresja ułatwi przenoszenie plików kopii zapasowych. Aby stworzyć archiwum tar, użyj poniższego polecenia:

tar -zcvpf drupal-website-backup.tar.gz /drupal-backups

Kompresowanie kopii zapasowych to dobra praktyka, ale wiąże się z pewnym ryzykiem. Jeśli zamierzasz przechowywać swoją witrynę Drupal w publicznej chmurze, przesyłanie niezaszyfrowanego archiwum tar może narazić zawartość Twoich plików bazy danych SQL oraz plików witryny na nieautoryzowany dostęp.

Najlepiej zaszyfrować archiwum przed jego przesłaniem. Upewnij się, że GnuPG jest zainstalowany na Twoim systemie. Jeśli go nie masz, znajdź w menedżerze pakietów swojego serwera Linux pakiet „gpg” i zainstaluj go. Po instalacji użyj poniższego polecenia, aby w pełni zaszyfrować archiwum kopii zapasowych Drupala:

gpg -c drupal-website-backup.tar.gz

Wprowadzenie polecenia gpg -c informuje GnuPG, że chcesz zaszyfrować archiwum tar. System poprosi o hasło, które będzie używane do szyfrowania pliku GPG. Wprowadź mocne hasło i poczekaj na zakończenie procesu szyfrowania. Po jego zakończeniu skopiuj plik drupal-website-backup.tar.gz.gpg i przenieś go do miejsca, gdzie zamierzasz przechować kopię zapasową.

Przywracanie kopii zapasowej

Pobierz plik kopii zapasowej GPG na serwer, na którym chcesz przeprowadzić przywracanie. Następnie wykonaj następujące kroki:

su -

lub

sudo -s

Utwórz folder, w którym będzie przechowywana kopia zapasowa:

mkdir -p /drupal-restore/

Przenieś plik GPG do nowego folderu:

mv /folder/where/drupal-website-backup/is/drupal-website-backup.tar.gz.gpg /drupal-restore/

Odszyfruj kopię zapasową za pomocą GPG:

gpg drupal-website-backup.tar.gz.gpg

Wypakuj kopię zapasową:

tar -xvpf drupal-website-backup.tar.gz

Przejdź do folderu, w którym znajdują się wyodrębnione pliki kopii zapasowej:

cd drupal-restore/drupal-backups

Rozpocznij proces przywracania, zaczynając od zaimportowania plików SQL do MySQL:

cd sql
mysqldump -u username -p drupal < db.drupal_backup-1.sql

Po zaimportowaniu bazy danych, przywróć pozostałe pliki:

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/

Przeniesienie plików na miejsce to ostatni kluczowy krok w procesie przywracania.

Kiedy wszystko jest już na swoim miejscu, warto zrestartować serwer Linux. Choć może się to wydawać uciążliwe, to bardzo dobry pomysł, ponieważ zapewnia, że wszystkie usługi potrzebne do prawidłowego działania Drupala są włączone. Gdy serwer ponownie uruchomi się, wszystkie funkcjonalności powinny wrócić do normy.