Jeg er efterhånden stødt på mange forskellige spørgsmål angående hvordan man laver backup og restore af sin Wordpress installation – Navnligt når man f.eks. udvikler et website lokalt eller på en test-server. Jeg er stor tilhænger af, at man ikke læner sig op af alt for automatisk løsninger, da det er godt, at vide hvad der foregår inde i selve Wordpress.
Lidt baggrund
Når du laver en installation af Wordpress så oprettes der en række værdier i wp_options tabellen, der oprettes guids i wp_posts tabellen og mange widget settings er typisk knyttet på det websites URL, som du oprettede sitet på. For slet ikke, at tale om, at alle links, img-tags, etc. er knyttet til det mediebibliotek som du oprindeligt lavede din Wordpress installation på. Disse opbevares alle sammen i databasen.
Det er egentlig ganske smart – Men også ret problematisk når nu man ønsker, at flytte sin installation. Egentlig ville man kunne køre et SQL statement som dette:
Det er er bare ikke muligt med Wordpress, pga. wp_options og måden widgets fungerer og gemmer data på. Widgets gemmer deres data i et serialiseret format, der tager højde for længden på strings som er gemt, det betyder, at hvis man f.eks. erstatter http://domain-name.com med http://domain-name-2.com vil Wordpress Widgets ikke acceptere den nye værdi, da længden på den pågældende string nu vil være 2 karakterer længere.
Men hvad gør man så?
Der findes masser af betalings løsninger og plugins som kan gøre dette for en, men nogle af dem kræver specifikke server indstillinger – Og virker ikke uden disse. Der er dog en metode, som virker på “alle” servere og databasen (Jeg har endnu ikke stødt på et sted hvor det ikke virker).
- Lav en backup af dit websites filer (Du kan enten downloade det manuelt via FTP eller med f.eks. BackWPup, UpdraftPlus, eller andre lignende løsninger, der er gratis)
- Lav et SQL-dump af din database fra dit phpMyAdmin interface (eller lad et af de førnævnte plugins klare det).
- Hent dette PHP script: http://interconnectit.com/products/search-and-replace-for-wordpress-databases/
- Upload dit websites filer til den nye server
- Importer dit SQL-dump i den nye servers phpMyAdmin interface.
- Upload searchreplacedb2.php til den nye server i samme directory som din wp-config.php ligger.
- Gå http://mit-nye-domæne-navn.com/searchreplacedb2.php
- Følg guiden og sørg for, at vælge de korrekte tabeller i tilfælde af der ligger flere Wordpress installationer på databasen.
- HUSK at slette searchreplacedb2.php fra serveren efter du har kørt det, så der ikke er andre som kan gøre det samme som du lige har gjort.
- Log ind i http://mit-nye-domæne-navn.com/wp-admin og opdatér dine permalink indstillinger.
Sådan, du har nu flyttet din Wordpress installation til et nyt domæne – Og husk naturligvis at slette installationen fra dit gamle domæne.