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.

Det här inlägget postades i Uncategorized. Bokmärk permalänken.
  • http://thirdopinion.nu/ P.O. Arnäs

    Tack för en bra guide!

    Jag har min ”multisajt” uppe nu. Hur gör man enklast för att importera/migrera sina gamla bloggar (egna domäner) in så att jag kan köra samma kodbas? Är det bara att kopiera wp-content till blogs.dir?

    • Jonathan

      Logga in i /wp-admin på den gamla bloggen och exportera under Verktyg > Exportera. Logga därefter in på den nya bloggen och importera under Verktyg > Importera.

      När det gäller bilagor, såsom uppladdade bilder, så lagras de här:

      /wp-content/blogs.dir/$ID/files/$YEAR/$MONTH

      Variabeln $ID hittar du i /wp-admin under Superadmin > Webbplatser. Om mapparna /$ID/files inte existerar kan du skapa dem själv. Sen är det bara att kopiera över materialet från den gamla bloggens /wp-content till de nya mapparna.

  • http://jgabor.se Jonathan Gabor

    Bra skit, Jonathan!

    Posta den gärna som ett inlägg på wp-support.se’s forum. Det finns nog en del där som blir glada över en sån här guide. :)

  • http://www.marcuswestberg.se Marcus Westberg

    Bra bloggat Jonathan!

    Det här kommer säkerligen väl till användning för ett flertal wp-meckare.

  • http://thirdopinion.nu/ P.O. Arnäs

    Ursäkta ytterligare en dum fråga som jag hoppas någon kan svara på.

    Nu har jag lagt upp en kopia av min standalone-sajt under MU-sajten. Allt verkar funka fint. Hur pekar jag om all trafik till nya WP-installationen?

    Idag ligger varje domän i en egen katalog på webbhotellet (Binero):

    domain1.se
    domain2.nu
    domain3.se

    Jag har lagt nya WP-installationen direkt under domain1.com/public_html. Gamla sajten (kör WP3 där också) ligger under domain2.nu

    Jag vill ju att min gamla domän ska vara den som syns (domain2.nu).

    domain3.se innehåller en WP2.9-blogg. Jag tänkte helt enkelt exportera/importera denna när jag har fått det andra att funka.

    Tack på förhand!

    • Jonathan

      Det finns inga dumma frågor, bara dumma svar. :)
      Jag skulle tro att du först behöver ta bort din gamla sajt/domän (som du har exporterat/importerat), för att på så sätt få ta bort konfigurationen för den domänen (inklusive pekningen till en egen mapp) hos ditt webbhotell.

      Därefter borde du kunna lägga till domänen som ett alias till din WP3-sajt (så att den pekar på samma mapp). Då kommer WP3 att sköta pekningen på egen hand.

      Det kan givetvis vara en bra idé att fråga ditt webbhotell om detta också, eftersom det är en fråga som beror väldigt mycket på hur deras system fungerar.

  • Pingback: Från WP-Hive till Multi-Site | Jonathan Sulo

    • http://noink.se Magnus Jahrl

      Hej

      Fick tyvärr lite fel… Har ändrat och lagt in de rader som WP vill. Sen ska jag logga in igen men blir omdirigerad till en felsida. I Chorme blir felet ”Fel 310 (net::ERR_TOO_MANY_REDIRECTS): Det fanns för många omdirigeringar.”

      Någon som kan vet vad felet är? Ligger på Loopia om det spelar roll

      Soliga hälsningar
      .mange

      • Jonathan

        Testa första att tömma din cache/ta bort dina cookies. Om det inte hjälper, kolla hur domänerna pekar till din webbserver. Om du t ex har satt upp en pekning av http://www.mindomän.se till mindomän.se samtidigt som du har angett http://www.mindomän.se som URL i WordPress, då kan sådana loopar uppstå.

        • http://noink.se Magnus Jahrl

          Hej

          Tack för snabbt svar!

          Glömde o skriva att jag redan tömt cachen och tagit bort kakorna :)
          Har http://domän.se i WP och i alla config filer.

          När jag tittar på databasen så har inga nya tabeller skapats… Ser även att jag inte har *.domän.se pekad någonstans, spelar det roll?

          Soligare hälsningar ;)
          .mange

          • Jonathan

            Har du skapat din nya webbplats (under Superadmin > Webbplatser)? Det låter inte så om du inte har några wp_$ID_ tabeller.

            Om du vill lägga upp dina webbplatser under subdomäner så behöver du ha ett wildcard (*.mindomän.se) uppsatt. Det behövs dock inte om du lägger upp dina webbplatser under mappar (mindomän.se/annanwebbplats).

        • http://noink.se Magnus Jahrl

          Lite kul med min kommentar om Loopia när man sen googla dig lite ;)

          • http://noink.se Magnus Jahrl

            kommer inte så långt så att jag kan lägga upp webbplatser. Och inga wp_$ID_ tabeller har då skapats…

            WP säger att jag bara kan lägga upp sudomäner iom att installationen redan finns. Jag lägger upp * i DNS hanteraren och testar igen.

            Tackar för din hjälp.
            .m

          • Andre

            Läste att någon fått multisite att fungera på Binero. Är det något särskilt man måste göra där? Jag lyckas installera WP 3 och nätverk men när jag eller en användare skapar en ny webplats så händer ingenting. Jag får iofs inget felmeddelande, och webplatsen syns i listan, men när man går in på nydomän.mindomän.se så står det bara ”Apache is working normaly” (tror jag det var).

            Vad har jag missat?

          • Jonathan

            P.O. Arnäs fick igång WP3 med Multi-site hos Binero. Jag vet inte exakt hur det gick till, men jag skulle tippa på att man behöver ange ytterligare domäner (som man lägger upp som extra webbplatser) som alias till den huvudsakliga domänen.

          • http://thirdopinion.nu/ P.O. Arnäs

            Precis. Jag ringde och gjorde mina ändringar med Binero support i luren… Om jag kommer ihåg rätt:
            1. Skapade en klonad blogg i WP3 under ny domän (den kommer att innehålla admin för flera bloggar).
            2. Jag hade problem med inbäddade objekt (Youtube etc.). WP3 strippade alla -taggar om jag körde export-importfunktionen. Lösningen var att manuellt exportera WP_posts-tabellen från gamla databasen.
            3. Gå in via FTP och flytta på din ”gamla” domänkatalog. Det spelar inte någon roll exakt var du lägger den, detta är istället för att radera den.
            4. Gå in i domänhanteraren och ta bort den gamla webplatsen.
            5. Skapa en ny, men enbart en alias. Se till att den dirigerar om till din nya admin-webplats.

            Som sagt, ring Binero och säkerställ att du gör rätt först.

  • Pingback: Aktivera Multi-Site i WP3 med ett tillägg | Jonathan Sulo

  • Torbjörn

    Tips gällande Binero och preview adresser.

    Hej
    Jag kör Binero och har en installation där jag inte pekat om min domän från ett annat webbhotell till Binero ännu. Då kan man installera WP och köra på en tillfällig preview-adress under tiden.
    ex. dindomän.se.preview.binero.se

    Jag fick inte multisite att fungera och hittade lösningen tillslut. Tänkte dela med mig här:

    Om man installerar wp på en ”preview-domän” så måste man ju ändra siteurl och homeurl. Detta har jag gjort i wp-config.php istället för i databasen.
    MEN
    När man installerar en multisite så tar inte installationen hänsyn till wp-config utan går på databasvärdet! När jag ändrade databasvärdet via PHPmyadmin så funkade allt. Dock inte subdomains utan bara subfolders.

    Det går alltså inte att göra så här i en multisite installation.
    /* Torbjörn tillfällig ändring pga preview */
    define(‘WP_SITEURL’, ‘http://dindoman.se.preview.binero.se‘);
    define(‘WP_HOME’, ‘http://dindoman.se.preview.binero.se‘);

  • Pingback: Så sätter du upp en blixtsnabb WordPress-server | Jonathan Sulo

  • Pingback: Google Analytics för WordPress Multi-Site | Jonathan Sulo

  • Pingback: Uppdatera flera WordPress-sidor enkelt | Jonathan Sulo

  • Filip

    Hej,
    jättebra och lättförståelig guide, tack!

    Men: när jag nu skapar en ny webbplats så funkar det, webbplatsen syns under ”webbplatser”, men när jag ska gå in i panelen för den nya webbplatsen kommer jag bara till en 404 (files not found).

    Någon lösning?

    mvh

    • http://sulo.se Jonathan

      Har du pekat domänen för den nya webbplatsen till IP-adressen för din server?

  • Erik Forsberg

    Är det någon som vet om man kan begränsa nya sidor automatiskt?
    Alltså, jag vill ha en WP-MU där nya användare själva kan registrera nya undersidor. Jag får den funktionen att fungera men jag lyckas inte göra så mycket inställningar på de nya sidorna i förväg. T.ex. så vill jag ta bort själva bloggdelen så att det bara finns statiska sidor. Finns det någon möjlighet att styra detta?

  • LS

    Kanske en dum fråga, men hur sätter man upp wild-cards mot webbservern?

    Precis som för Magnus Jahrl får jag meddelande om att jag bara kan lägga upp sudomäner iom att installationen redan finns (och då krävs det tydligen ett wild-card).

    • http://sulo.se Jonathan

      Wildcards sätter man först upp på DNS-nivå och därefter i webbservern. Exakt hur du ska gå tillväga, det beror på din DNS-leverantör. Här finns lite mer information om wildcard DNS: http://en.wikipedia.org/wiki/Wildcard_DNS_record

  • LS

    Hmm… Jag antar att jag måste få till det här med wildcards för att komma vidare med domain mapping. Jag kan iaf. inte skapa några domänkopplingar som det är nu :(
    Finns det inget enklare sätt att hantera flera konton, webbplatser och domäner i WordPress, där man samtidigt har full kontroll över sin miljö (utan att själv drifta webbserver och DNS)?

    • http://sulo.se Jonathan

      Ja, du måste få till det här med wildcards. Och det är faktiskt rätt så enkelt, åtminstone hos de flesta leverantörer. Prata med din domänleverantör. De bör kunna hjälpa dig inom 5 minuter.

      Det finns givetvis fler sätt att lösa detta. Du kan fixa ett konto hos WordPress.com med flera webbplatser. Det är enkelt, men rätt så begränsat. Du kan fixa flera olika WordPress-installationer, hos ett webbhotell. Det är lite svårare och inte lika smidigt när det gäller administrationen.

  • LS

    Okej, om jag har förstått det här rätt så skapas (i mitt fall) alla nya webbplatser som subdomäner till den default site som jag angav när jag aktiverade multi site. Om jag bara får ordning på detta wildcard ska det sedan gå bra att koppla vilka domäner som helst till mina subdomäner, förutsatt att jag är ägare till dem? Måste jag i så fall även peka in dem (via webbhotellet, FS Data) till WordPress-katalogen eller kommer det fungera ”out-of-the-box”?

    • http://sulo.se Jonathan

      Det ska räcka med att de pekar rätt (till din IP-adress) på DNS-nivå. Multi-Site och ovanstående tillägg styr kopplingen rätt i WordPress.

      • LS

        Hej,

        Jag har fått ordning på problemen med wildcards etc. nu. Dock funkar inte inpekningen så som det beskrivs här ovan. Enl. mitt webbhotell måste jag även peka om domänen från ursprungsplatsen till WP-katalogen (vilket görs i deras kontrollpanel).

  • LS

    Jag är antagligen korkad… Får bara inte till det här. Det finns tre fält att fylla i under ”Domains”. Vad ska det stå i dem?

    Domain (search domain)
    Site ID
    Domain

    Det här borde ju inte vara så svårt att lista ut, men det framår inte i ovanstående instruktioner vilken domän som ska in var. Något Site ID lyckas jag fö. inte hitta alls :(
    /Ps. Wildcards ska iaf. vara ordnat av webbhotellet nu.

    • http://sulo.se Jonathan

      Site ID hittar du om du för muspekaren över webbplatserna under Superadmin (tror det heter Nätverksadmin numera) > Webbplatser. Det är numret som framgår där som är Site ID.

      När det gäller domänerna så minns jag inte på rak arm och har ingen Multi-site installation som jag kan kolla detta på just nu. Förslagsvis att du testar dig fram där.

  • LS

    Ursäkta att jag ältar här, men hos mig dyker det inte upp något ID nummer när jag håller muspekaren över vald Site. Jag kör engelsk version av WP och Mac/Safari, men det ska väl inte ha någon betydelse?

    Det blir lite svårt att testa sig fram när man inte vet vad man ska testa :-p

  • LS

    Allright… Ett steg närmare (efter att ha aktiverat statusfältet uppenbarade sig ID:t)

    Dessvärre fastnar jag igen, kommer inte fram till Dashboard för den nya subdomänen. Får följande felmeddelande:

    500 (Internal Server Error) – Programfel
    Ett programfel inträffade när sidan skulle visas.

    An internal server error occured while processing your request.

    • http://sulo.se Jonathan

      Fel 500 är ett generellt felmeddelande. För att se exakt vad som är fel, kontrollera din logg eller be din leverantör om hjälp med detta.

  • Ulf

    Vill ha multi site i sv wordpress 3.1.4.

    En svensk sida som huvudsida http://www.minsida.se (startsida) och en engelsk sida på http://www.minsida.se/english

    Mao kommer den första sidan jag installerar i Multi site att bli startsida på huvuddomänen?
    Har bara reggat en domän.
    Tacksam för svar
    UF

    • http://sulo.se Jonathan

      Ja, det är helt rätt tänkt. Om än att du givetvis bör uppgradera till WordPress 3.2 snarast möjligt.

  • http://gravatar.com/nyhetssiten lyxbloggen.se

    Hur lång tid tar det att sätta upp WP med Multisite?
    Fungerar WP med Multisite bra på Apache server?
    Var var länken till hur .htacess ska se ut?
    Var laddar jag ner WP Multisite?

    • http://sulo.se Jonathan

      Det tar max 10-15 minuter att aktivera Multi-Site. Apache fungerar alldeles utmärkt. .htaccess-filen skapas automagiskt av WordPress när du aktiverar Multi-Site. Du behöver inte ladda ner något, det är bara att följa min guide. Lycka till!

  • Cemedio

    Är det möjligt att med multisite-funktioner komma åt gemensam information, exempelvis en viss kategori i en av bloggarna/sajterna. Exempelvis om jag vill göra ett nätverk av sajter som alla skall ha en kategori med samma innehåll, och detta innehåll skall komma från en grundsajt. EX:

    domän-nr-1.com – har allt innehåll.
    domän-nr-2.com – har allt innehåll i EN enda kategori och dess underkategorier från ”domän-nr-1.com”
    domän-nr-3.com – har allt innehåll i EN annan kategori och dess underkategorier från ”domän-nr-1.com”

    ett nätverk av sajter som har olika innehåll (eget innehåll) men även har innehåll som kommer från en del av den första sajten…

    Multisite funktioner i all ära men då är det ju fortfarande konstant multi-uppdatering och manuell import av innehåll som gäller…

    Tackar för all hjälp som är tillgänglig…

    • http://sulo.se Jonathan

      Med Multi-Site får man först och främst en gemensam användar/tillägg/temahantering. Rent tekniskt sett är det fullt möjligt att lösa det du är ute efter, då samtliga webbplatser delar på samma databas, om än att du behöver ordna en speciallösning för detta eller hitta ett lämpligt tillägg för det.

      Kanske att Multi-Press + BuddyPress kan vara en lämplig lösning för dig? Spana in det här: http://buddypress.org/

  • Eric Marcus Westberg

    Hej Jonathan! 

    jag har följt din guide och den verkar fungera. Dock så har jag ett problem med att WP inte vill skriva filer i blogs.dir. Har en Glesys VPS. Vet du hur man ändrar så att WP kan skapa filer och mappar. Som det är nu så är enda sättet att ladda upp manuellt och då fungerar inte wpmu alls. 

    • Anonym

      Det låter som ett rättighetsproblem. Står användare som kör PHP-processen som ägare/grupp för blogs.dir? Om inte, testa att sätta det med ”chown username:username blogs.dir”

  • http://www.plucera.se Andreas Wedberg

    Bra genomgång, men vad ser du för för-/nackdelar med Multisite kontra WP-Hive? Bör även nämnas att Domain Mapping inte verkar fungera så bra om man vill ha www framför domännamnet (om man inte moddar lite själv i pluggen).

  • Jonathan

    WP-Hive är enklare att sätta upp (med WP 2.9.x), men fungerar inte ordentligt med WP3 (man kan inte lägga till/ta bort webbplatser). Om man vill köra flera webbplatser med WP3 är Multi-Site + Domain Mapping rätt väg att gå.

    Sen har utvecklaren av WP-Hive agerat lite skumt, med en ny premiumversion av WP-Hive och ett motstånd till Multi-Site i WP3 (kolla forumet för WP-Hive). Utvecklaren av Domain Mapping är desto mer seriös och har tidigare utvecklat tillägg som bl a WP Super Cache.