Како направити резервну копију Друпал сајта на Линук-у

Upravljanje sadržajem pomoću Drupal platforme predstavlja izvanredan način za optimalno korišćenje mogućnosti web stranice. Posebno jer nudi veliki broj alata, dodataka i funkcija. Međutim, uprkos svim sjajnim karakteristikama koje Drupal poseduje, izrada rezervne kopije nije jedna od njih. To predstavlja pravi izazov za ovaj inače odličan CMS softver. S obzirom da ne postoji jednostavan alat za kreiranje rezervne kopije Drupal sajta na Linux-u, taj proces se mora obaviti ručno.

Kreiranje foldera za rezervnu kopiju

Za izradu rezervne kopije Drupal sajta na Linux operativnom sistemu, neophodno je prvo kreirati folder u koji će se skladištiti izvezene datoteke. U terminalu koristite komandu „mkdir“ za kreiranje ovog foldera.

Prvo se prijavite kao root korisnik koristeći „su -„.

su -

Alternativno, koristite „sudo -s“ da dobijete root pristup ako ne znate sistemsku lozinku.

sudo -s

Zatim, kreirajte folder za rezervne kopije u korenu sistema, odnosno „/“.

mkdir -p drupal-backups

Izvoz SQL datoteka

Sledeći korak je izvoz svih datoteka SQL baze podataka. Ovi SQL fajlovi moraju se obrađivati pod root nalogom. Ne pokušavajte kreirati rezervnu kopiju sa regularnim korisničkim nalogom.

U okviru foldera „drupal-backups“, kreirajte poddirektorijum „sql“ i poddirektorijum za instalacione datoteke.

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

Koristite „mysqldump“ komandu da izvezete vaše Drupal datoteke baze podataka iz SQL instalacije na serveru u folder za rezervne kopije.

Napomena: pre pokretanja naredbe ispod, zamenite „username“ i „databasename“ sa vašim SQL korisničkim imenom i nazivom baze podataka koju Drupal koristi. U većini instalacija, podrazumevano ime SQL baze podataka je „drupal“.

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

Izrada rezervne kopije instalacionih datoteka

Nakon kreiranja rezervne kopije osnovnih datoteka baze podataka, sledeći korak je izrada rezervne kopije same Drupal instalacije. Da biste to uradili, prvo je potrebno napraviti kompletnu kopiju svega što se nalazi u „/var/www/html/“. Ukoliko ste pratili naš vodič za instalaciju Drupal-a, osnovni fajlovi vaše Drupal web lokacije na Linuxu nalaze se direktno unutar „/var/www/html“, bez podfoldera. Koristeći komandu „cp“, napravite kompletnu kopiju „html“ foldera i smestite je u „/drupal-backups/files“.

Napomena: ako je vaša instalacija smeštena u „/var/www/html/drupal“, ili slično, promenite „cp“ komandu da odgovara vašim potrebama.

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

Izrada rezervne kopije Drupal instalacije je ključna. U tim datotekama nalaze se bitne konfiguracije sajta, teme, itd. Ipak, to nisu jedine datoteke za koje je potrebno napraviti rezervnu kopiju. Druga ključna datoteka je konfiguracija Apache2 servera. Ova konfiguraciona datoteka govori Apache web serveru gde se nalazi vaša Drupal instalacija i kako da je učita. Bez ove datoteke, rezervna kopija nije upotrebljiva.

Da biste napravili rezervnu kopiju konfiguracione datoteke Apache2 servera, pokrenite sledeću komandu:

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

Kompresovanje datoteka rezervne kopije

Sada, kada su sve neophodne datoteke Drupal servera kopirane i spremne za rezervnu kopiju, vreme je za kreiranje „tar“ arhive. Kompresija će značajno olakšati premeštanje datoteka rezervne kopije. Za kreiranje „tar“ arhive vaših Drupal rezervnih kopija, izvršite sledeću komandu:

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

Kompresovanje rezervnih kopija je korisno, ali nije bezbedno. Ako nameravate da svoju Drupal web lokaciju sačuvate na javnoj lokaciji za skladištenje u oblaku, otpremanje „tar“ arhive bez enkripcije znači da svako može pristupiti i izmeniti vrednosti unutar SQL datoteka baze podataka, fajlova sajta, ili još gore.

Preporučljivo je šifrovati arhivu pre bilo kakvog daljeg delovanja. Da biste izvršili enkripciju, proverite da li je GnuPG instaliran. Ako ga nemate, pronađite „gpg“ u menadžeru paketa vašeg Linux servera i instalirajte ga. Nakon instalacije, pokrenite sledeću komandu da biste u potpunosti šifrovali vašu Drupal arhivu rezervne kopije.

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

Pokretanje „gpg -c“ će reći GnuPG-u da želite šifrirati „tar“ arhivu i zatražiće lozinku za kreiranje nove GPG šifrovane datoteke. Unesite sigurnu lozinku i sačekajte da se šifrovanje završi. Kada GPG završi, možete kopirati „drupal-website-backup.tar.gz.gpg“ i otpremiti je na mesto gde planirate da čuvate rezervnu kopiju.

Vraćanje rezervne kopije

Preuzmite Drupal GPG datoteku rezervne kopije na server gde želite da vratite rezervnu kopiju. Nakon toga, uradite sledeće:

su -

ili

sudo -s

Napravite direktorijum za skladištenje rezervne kopije.

mkdir -p /drupal-restore/

Premestite GPG datoteku u novi direktorijum za rezervne kopije.

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

Dešifrujte rezervnu kopiju koristeći GPG.

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

Ekstrahujte rezervnu kopiju.

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

Uđite u ekstrahovani direktorijum rezervne kopije.

cd drupal-restore/drupal-backups

Sada je vreme za početak restauracije. Započnite sa uvozom Drupal SQL datoteka u MySQL.

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

Pošto je baza podataka instalirana na sistemu, vratite preostale datoteke.

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/

Premještanje datoteka na odgovarajuća mesta je poslednji ključni korak u procesu restauracije.

Kada sve izgleda ispravno, ponovo pokrenite vaš Linux server. Iako bi ponovno pokretanje moglo biti neprijatno, to je dobra ideja. Ponovno pokretanje će osigurati da se sve usluge neophodne za pravilno funkcionisanje Drupal-a ponovo aktiviraju. Nakon što se server ponovo pokrene, sve bi trebalo da bude kao što je bilo pre.