Cum se face backup unui site Drupal pe Linux

Utilizarea platformei Drupal pentru gestionarea conținutului web reprezintă o soluție excelentă, datorită multitudinii de instrumente, extensii și funcționalități pe care le pune la dispoziție. Cu toate acestea, în ciuda performanțelor sale, sistemul de backup nu se numără printre punctele forte ale acestei platforme CMS. Din acest motiv, pentru a realiza o copie de rezervă a unui site Drupal pe Linux, este necesară o abordare manuală, deoarece nu există un instrument dedicat.

Crearea directorului pentru backup

Pentru a începe procesul de backup al unui site Drupal pe un sistem Linux, primul pas constă în crearea unui director în care vor fi stocate fișierele exportate. Acest lucru se realizează folosind comanda `mkdir` în terminal.

În primul rând, este necesară conectarea la sistem ca utilizator root, folosind comanda `su -`.

su -

Alternativ, se poate utiliza `sudo -s` pentru a obține acces root, în cazul în care parola de sistem nu este cunoscută.

sudo -s

Următorul pas este crearea directorului de backup în locația `/`:

mkdir -p drupal-backups

Exportul fișierelor SQL

Pasul următor implică exportul tuturor fișierelor bazei de date SQL, operațiune care trebuie realizată cu privilegii de root. Se recomandă să nu se încerce această operațiune cu un utilizator obișnuit.

În cadrul directorului `drupal-backups`, se vor crea subdirectoarele `sql` și `installation-files`, precum și `apache2-conf`:

mkdir -p /drupal-backups/sql

mkdir -p /drupal-backups/installation-files

mkdir -p /drupal-backups/apache2-conf

Utilizați comanda `mysqldump` pentru a exporta fișierele bazei de date Drupal din serverul SQL în directorul de rezervă.

Atenție: Înainte de a executa comanda de mai jos, înlocuiți „nume utilizator” și „nume bază de date” cu numele de utilizator SQL și numele bazei de date pe care Drupal le utilizează. În majoritatea instalărilor, numele implicit al bazei de date SQL este „drupal”.

cd drupal-backups/sql

mysqldump -u username -p databasename > db.drupal_backup-1.sql

Backup-ul fișierelor de instalare

După realizarea copiei de rezervă a fișierelor bazei de date, următorul pas constă în realizarea unei copii a instalării efective a Drupal. Pentru aceasta, este necesară o copie completă a conținutului din `/var/www/html/`. În cazul în care s-a urmat un ghid de instalare standard, nucleul site-ului Drupal se află direct în acest director, fără subdirectoare. Utilizând comanda `cp`, se va realiza o copie a directorului html în `/drupal-backups/installation-files/`.

Notă: Dacă instalarea se află într-un subdirector precum `/var/www/html/drupal`, comanda `cp` trebuie adaptată corespunzător.

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

Este foarte important să se realizeze backup-ul instalării Drupal, deoarece aceste fișiere conțin configurații esențiale ale site-ului, teme și alte elemente. Pe lângă acestea, un alt fișier crucial este cel de configurare Apache2. Acest fișier instruiește serverul web Apache cu privire la locația instalării Drupal și modul în care acesta trebuie încărcat. Fără acesta, o copie de rezervă nu ar fi completă.

Pentru a realiza backup-ul fișierului de configurare Apache2, se va executa următoarea comandă:

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

Comprimarea fișierelor de backup

După ce toate fișierele necesare au fost copiate și pregătite pentru backup, se va crea o arhivă Tar. Comprimarea fișierelor va simplifica mutarea lor ulterioară. Pentru a crea arhiva Tar, se va utiliza următoarea comandă:

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

Deși comprimarea fișierelor este utilă, nu oferă siguranță. În cazul în care se dorește stocarea backup-ului într-un serviciu de cloud public, încărcarea unei arhive Tar necriptate implică riscul ca oricine să poată accesa conținutul sensibil din fișierele bazei de date, fișierele site-ului, etc.

Pentru a asigura o protecție sporită a datelor, se recomandă criptarea arhivei înainte de orice altă acțiune. Pentru criptare, trebuie verificat dacă GnuPG este instalat. În caz contrar, trebuie instalat folosind managerul de pachete al serverului. După instalare, se execută următoarea comandă pentru a cripta arhiva de backup Drupal:

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

Comanda `gpg -c` va iniția procesul de criptare, cerând setarea unei parole pentru noul fișier GPG. După ce parola este setată și criptarea s-a finalizat, fișierul `drupal-website-backup.tar.gz.gpg` poate fi copiat în locația dorită pentru stocarea backup-ului.

Restaurarea backup-ului

Pentru a restaura backup-ul, fișierul GPG trebuie descărcat pe serverul pe care se dorește restaurarea, după care se vor urma pașii de mai jos:

su -

sau

sudo -s

Se va crea un director pentru a stoca backup-ul:

mkdir -p /drupal-restore/

Fișierul GPG se va muta în directorul nou creat:

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

Copia de rezervă va fi decriptată folosind GPG:

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

Arhiva va fi extrasă:

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

Se va accesa directorul de backup extras:

cd drupal-restore/drupal-backups

Începe procesul de restaurare. Se vor importa fișierele SQL în MySQL:

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

După instalarea bazei de date, se va trece la restaurarea restului fișierelor:

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/

Mutarea fișierelor la locul lor este ultima etapă importantă a procesului de restaurare.

Odată ce toate fișierele au fost restaurate, se va reporni serverul Linux. Deși este posibil să fie incomodă o repornire, acest pas este important pentru a se asigura că toate serviciile necesare funcționării corecte a Drupal revin online. După repornirea serverului, site-ul ar trebui să funcționeze ca înainte.