Gendan website fra backup med cPanel (del 2)

I den foregående artikel viste vi en simpel procedure for gendannelse af en WordPress eller Drupal hjemmeside fra backup. Denne gang gennemgår vi hvordan hvordan man kan gendanne hjemmesidens filer ved hjælp af cPanels filmanager, og hvordan man kan nulstille databasen inden den gendannes, hvis man f.eks. gerne vil af med ekstra tabeller der er blevet oprettet i forbindelse med opdatering af et modul eller plugin.

Den simple backup/restore procedure som vi tidligere har vist er let at arbejde med, men den har et par ulemper:

  • En home directory backup via cPanel medtager mere end blot de filer der hører til en WordPress eller Drupal hjemmeside. Når man gendanner sådan en backup risikerer man derfor at overskrive nyere filer som man gerne vil bevare
  • Der bliver nogle gange oprettet nye tabeller i databasen i forbindelse med en opdatering af WordPress / Drupal og plugins / moduler. Når man gendanner en database backup via cPanels backup manager, så efterlades disse tabeller i databasen hvilket nogle gange kan give problemer.

Nedenfor viser vi hvordan du først kan slette eksisterende filer og databaser inden sikkerhedskopien gendannes. Vi antager at du allerede har downloaded en backup af databasen og en GZippet kopi af hjemmesidens filer (fremgangsmåden er beskrevet her). Bemærk at sletning af filer og databaser er destruktive operationer - der er ikke nogen "undo" mulighed, så du skal kun slette filer og databaser hvis du er helt sikker på at du har en backup.

Start med at logge ind i cPanel og åbn filmanageren - vælg "Web Root" og sæt hak i "Show Hidden Files (dotfiles)":

File manager

Den kopi af filsystemet som vi tidligere har downloaded indeholder en kopi af "wordpress" mappen og .htaccess filen. Inden vi uploader vores kopi sletter vi disse filer fra serveren så vi kan være helt sikre på at filerne på serveren ender med at være identiske med kopien.  Bemærk at dit filsystem typisk ser anderledes ud, så du bør dobbelttjekke at du kun sletter filer fra serveren som er indeholdt i den kopi som du har downloaded.

Når du er sikker på at du ved hvilke filer der skal slettes, så vælg de ønskede filer og mapper med musen og klik på "Delete"

Delete files

Klik herefter på "Upload" (to ikoner til venstre for "Delete") og dernæst på "Vælg fil" for at vælge den gzippede fil som du tidligere har downloaded til din egen computer (permissions behøver ikke blive ændret i dette tilfælde).

Upload

Upload starter automatisk når filen er valgt. Klik på "back to" linket når overførslen er afsluttet for at vende tilbage til filmanageren:

Efter upload

Hvis du ikke ser den uploadede fil - wordpress.tar.gz i dette eksempel - så klik på "Reload" lige over fillisten for at genopfriske billedet i browseren. Vælg nu den uploadede fil med musen og klik på "Extract":

Extract

Filmanageren skal have at vide hvor de udpakkede filer skal placeres. I vores tilfælde skal de ligge i webhotellets rod (/public_html), og da den uploadede wordpress.tar.gz allerede ligger her har filmanageren valgt den rigtige placering for os. Klik på Extract File(s) for at forstsætte:

Extract location

Herefter går filmanageren i gang med at udpakke den gzippede fil. Det kan tage et stykke tid hvis der er mange filer - når udpakningen er afsluttet vises et skærmbillede svarende til dette:

Extraction complete

Herefter er gendannelsen af filerne afsluttet. Den uploadede gzippede fil skal ikke bruges længere, så det er en god ide at slette den så den ikke længere tager plads op på serveren (men gem den kopi der ligger på din egen computer, i hvert tilfælde indtil du har tjekket at alt fungerer som det skal).

Dernæst skal databasen gendannes. Ligesom vi gjorde med filerne, så sletter vi først den eksisterende database inden vi uploader sikkerhedskopien. Slet kun databasen hvis du  har sikret dig en backup først.

Fra cPanel klikkes på "MySQL Databases" ikonet:

cPanel MySQL Databases

Find derefter den ønskede database under "Current Databases":'

cPanel Current Databases

I vores tilfælde er der kun den ene database, "h2g2wp01" - hvis der er flere er det selvfølgelig vigtigt at man ikke sletter den forkerte (kig  i WordPress' "wp-config.php" eller Drupals "settings.php" hvis du er i tvivl). Noter hvilke database-brugere (kolonnen "Users") der er knyttet til databasen - i vores tilfælde er der kun en enkelt bruger med samme navn som databasen, "h2g2wp01". Klik dernæst på "Delete Database" linket for at slette databasen.

Derefter gendannes databasen på samme måde som allerede beskrevet i den foregående artikel. Når databasen er gendannet åbnes "MySQL Databases" igen fra cPanel:

Database User Missing

Det fremgår at databasen er gendannet, men databasebrugeren "h2g2_wp01" er ikke længere knyttet til databasen - hvis man forsøger at åbne hjemmesiden nu vil man få en "Fejl ved etablering af databaseforbindelse" besked. Scroll ned til "Add User To Database" og tilføj de manglende databasebrugere ved at klikke på "Add" knappen:

Tilføj databasebruger

cPanel skal have at vide hvilke privilegier den pågældende bruger skal have på databasen (dvs. hvad denne databasebruger må gøre med databasen). I de fleste tilfælde skal brugeren have alle privilegier, så sæt hak i "ALL PRIVILEGES" og klik på "Make Changes":

Database privileges

Herefter er gendannelsen af databasen er afsluttet, og WordPress / Drupal er rullet tilbage til den tilstand hjemmesiden var i da sikkerhedskopierne af filer og database blev downloaded.