Från WP-Hive till Multi-Site

Efter mitt inlägg igår, om hur man installerar WordPress 3.0 med Multi-Site och Domain Mapping, så har jag fått en hel del frågor om hur man migrerar från WordPress 2.9.x med WP-Hive. Jag har därför skrivit ihop en liten guide även för detta. Håll till godo! 🙂

Så här migrerar du från WordPress 2.9.x + WP-Hive till WordPress 3.0 + Multi-Site:

1. Uppdatera till WordPress 3.0

Kör en vanlig uppdatering genom /wp-admin. Webbplatserna som du har i WP-Hive kommer att fortsätta fungera och du kan logga in och administrera dem (skriva inlägg osv). Du kommer däremot inte kunna lägga till/ta bort några webbplatser i WP-Hive.

2. Exportera inlägg och länkar

Använd WordPress export-funktion, som du hittar i /wp-admin under Verktyg > Exportera. Logga bara in på den gamla sidan och kör en export av alla inlägg, som du sedan sparar ner på din dator.

För att exportera dina länkar, besök http://mindomän.se/wp-links-opml.php och spara ner sidan i din webbläsare (Arkiv > Spara sida som…).

3. Exportera övriga inställningar

Nu blir det lite klurigt. Det finns nämligen ingen funktion för att exportera övriga inställningar, såsom anpassning av teman, tillägg, widgets osv (om du använder Thesis kan du testa Thesis Import/Export). Man behöver istället mecka lite med databasen.

Praktiskt taget alla inställningar finns i tabellen $PRE_options ($PRE = valfritt prefix). Exportera därför alla relevanta inlägg från denna tabell som en SQL-fråga med valfritt verktyg (jag kan rekommendera Sequel Pro). Spara SQL-frågorna på din dator.

Vissa tillägg skapar separata tabeller som du även kan behöva exportera.

Oroa dig inte för att göra fel och t ex exportera för få eller fel inställningar. Du kommer nämligen kunna gå tillbaka och exportera så mycket du vill senare.

4. Installera Multi-Site/Domain Mapping och skapa nya webbplatser

Följ guiden jag skrev igår och installera Multi-Site och Domain Mapping (valfritt). Skapa sedan dina nya webbplatser i WordPress 3.0. Notera även vilket ID respektive webbplats får (det ser du under Superadmin > Webbplatser).

5. Importera inlägg och länkar

Logga in i panelen för respektive ny webbplats i WordPress 3.0 och importera inläggen under Verktyg > Importera. Bocka i alternativet för att hämta/ladda ner alla bilder. Även om det inte fungerar så blir länkningen ändå rätt.

Under Verktyg > Importera importerar du även dina länkar, med alternativet Blogroll.

6. Importera övriga inställningar

Öppna dina sparade SQL-frågor med valfri textredigerare och ersätt $PRE_options med tabellprefixet för din nya webbplats. Prefixet är wp_$ID_options, där $ID är webbplatsens ID (som du noterade tidigare). Sök och ersätt allt.

Exempel: test_options -> wp_2_options

Sedan loggar du in på databasservern igen och kör (de redigerade) SQL-frågorna där. Om du har gjort rätt så kommer dina gamla inställningar att dyka upp i rätt tabell för din nya webbplats i WordPress 3.0.

7. Fixa alla bilder

Vi har sparat det roligaste till sist. WP-Hive sparar nämligen bilderna för samtliga extra webbplatser i samma mapp som din huvudsakliga webbplats. Det finns lite olika sätt att lösa detta:

  • Ändra sökväg till bilderna
    Det här är lite småfuskigt och passar bäst om dina nya webbplatser enbart hanteras av dig. Gå in under Superadmin > Webbplatser och välj Redigera för webbplatsen. Ändra fältet Upload Path till wp-content/uploads.
  • Kopiera över alla bilder
    Om det inte rör sig om så många bilder så kan du kopiera samtliga mappar och bilder från /wp-content/uploads till /wp-content/blogs.dir/$ID/files (nya webbplatsens ID här igen).
  • Kopiera över rätt bilder
    Samma som ovan, fast du bara kopierar över rätt bilder. Du kan ta reda på vilka bilder som är rätt genom att kolla dessa mot fältet guid i tabellen wp_$ID_posts (nya webbplatsens ID). Klart klurigare, men du slipper en massa dubletter.

Svårare än så här är det inte! 🙂

Till detta kan det givetvis tillkomma saker som att ta bort konfigurationen för den gamla webbplatsen, t ex om den är kopplad till en separat mapp, och koppla in den som ett alias till WordPress 3.0-installationen.

Har du några frågor eller funderingar om denna migrering? Lämna gärna en kommentar här nedan. Jag arbetar även som WordPress-konsult och kan givetvis hjälpa dig/ditt företag med detta (och mycket mer).

WordPress 3.0 med Multi-Site & Domain Mapping

En av de stora nyheterna i WordPress 3.0 är möjligheten att köra flera webbplatser under samma installation. Det är i princip funktionaliteten från WPMU (WordPress Multi-User), med vissa mindre skillnader (benämningar/tabellnamn osv). Att komma igång med detta kan vara lite klurigt, därför kommer här en liten guide.

Aktivera Multi-Site

Multi-Site innebär att man får möjlighet att lägga upp flera olika webbplatser i en och samma WordPress-installation. Webbplatserna skapas som separata subdomäner/undermappar och kan enkelt hanteras genom en central administration.

Börja med att lägga till:

define('WP_ALLOW_MULTISITE', true);

i wp-config.php, ovanför raden som säger ”/* That’s all, stop editing! Happy blogging. */”.

I /wp-admin går du sedan in under under Verktyg > Nätverk och skapar ett nätverk med valfria inställningar. Om du vill använda subdomäner så måste du ha ett wild-card (*.mindomän.se) uppsatt mot din webbserver. Vad du väljer här spelar dock ingen roll för Domain Mapping.

Följ sedan instruktionerna på nästa sida, dvs skapa en mapp som heter blogs.dir under /wp-content samt kopiera in texterna från fälten i wp-config (lägg det på samma ställe som texten vi la in där tidigare). Om du använder Apache som webbserver så behöver du även fixa din .htaccess enligt det tredje fältet på denna sida.

Använder du däremot nginx som webbserver (vilket du bör göra) så kan du lägga till följande regler i nginx.conf:

rewrite ^.*/files/(.*) /wp-includes/ms-files.php?file=$1;

if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*.php)$ $1 last;
rewrite ^ /index.php last;
}

Därefter är Multi-Site installerat i WordPress 3.0.

Installera Domain Mapping

Subdomäner och undermappar i all ära, det är ändå med egna domännamn som ett upplägg som detta fungerar bäst. För att koppla domäner till dina subdomäner/mappar i Multi-Site så behöver du installera Domain Mapping.

Börja med att ladda ner utvecklingsversionen av Domain Mapping-tillägget. Den vanliga versionen har (i skrivande stund) inte stöd för WordPress 3.0. Ladda upp sunrise.php till /wp-content samt domain_mapping.php till /wp-content/mu-plugins (du kan behöva skapa denna mapp).

Därefter lägger du till:

define( 'SUNRISE', 'on' );

i wp-config.php, på samma ställe som tidigare.

Om du laddar om /wp-admin nu så ser du att du har fått två nya menyalternativ under Superadmin. Börja med att ange IP-adressen/värdnamnet för din webbserver under sidan Domain Mapping. Övriga alternativ här är valfria, jag har t ex bockat i alternativ 1, 3 & 4.

Nu har du installerat Domain Mapping i WordPress 3.0.

Skapa nya webbplatser

Du skapar därefter dina webbplatser under Superadmin > Webbplatser. Sedan kopplar du domänerna till webbplatserna under Superadmin > Domains. Bocka även i alternativet ”primary” för domänerna där.

Dags att spräcka denna bubbla

Tycker du att det har varit rätt så tyst här de senaste månaderna? Det har du helt rätt i.

Jag har i princip arbetat oavbrutet sedan jag gick ut 9:an. Under varje lov och ledighet arbetade jag och efter gymnasiet så har jag aldrig varit utan arbete mer än ett par, tre veckor. Detsamma gäller mina semestrar, som egenföretagare har de aldrig varit långvariga.

Det blev därför en chock för mig att bli pappaledig. Nog för att det inte är så mycket ledighet med det, tvärtom, men mitt ”vanliga arbete” avtog mer eller mindre helt. Det uppstod en bubbla, där min dotter fick all min fokus och kraft. Allt annat fick vänta.

Jag är nog inte ensam om det här. För ett år sedan var jag ute och fiskade med en bekant. Han var vid det tillfället pappaledig och uttryckte en lättnad över att få komma bort från ungarna, att få vuxet sällskap. Jag förstod honom inte då, men jag gör det nu.

Detsamma gäller nog lattemorsorna. Nu är jag ingen jättesocial människa, men deras eskapader lär ju vara en motsvarighet till den arbetssaknad som jag har. Det är inte deras fel att de tar upp allt utrymme, väsnas och skitar ner på caféer runt om i landet.

Eller jo. Men ändå, du förstår poängen.

Det har snart gått 3 månader sedan jag blev pappaledig. En hel evighet. Men det är först de senaste dagarna som jag har börjat inse allt detta. Och återfått hungern efter mitt ”vanliga arbete”.

Så, nu sitter jag åter framför datorn hela kvällarna (och om dagarna, när tillfälle ges). Jag har hur mycket som helst att styra upp och komma ikapp, men det känns ändå bra. Det är skoj att vara tillbaka. Nu ska här hända saker… 🙂