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.

47 svar på ”WordPress 3.0 med Multi-Site & Domain Mapping”

  1. 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?

    • 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.

  2. 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. 🙂

  3. Bra bloggat Jonathan!

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

  4. 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!

    • 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.

  5. 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’);

  6. 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

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

  7. Ä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?

  8. 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).

  9. 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)?

    • 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.

  10. 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”?

    • 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.

      • 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).

  11. 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.

    • 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.

  12. 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

  13. 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.

    • 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.

  14. 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

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

  15. 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?

    • 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!

  16. Ä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…

    • 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/

  17. 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. 

    • 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”

Kommentarer är stängda.