Siirry pääsisältöön

Alasivuston irrottaminen WordPress Multisite -verkosta omaksi erillissivustokseen

Kuinka WordPress Multisite -verkon alasivusto siirretään itsenäiseksi, erilliseksi WordPress-asennukseksi? Katso Seravon tekninen ohje tietokannan, mediatiedostojen ja käyttäjien siirtoon.

Alasivuston irrottaminen multisite-verkosta omaksi itsenäiseksi WordPress-asennuksekseen tulee ajankohtaiseksi esimerkiksi silloin, kun sivusto myydään, se kasvaa ulos jaetun verkon resursseista tai se vaatii omia palvelin- tai lisäosamäärityksiä.

Koska monisivusto jakaa yhteisen tietokannan ja tiedostojärjestelmän, alasivuston irrottaminen vaatii sen omien tietokantataulujen eristämistä, etuliitteiden muuttamista sekä mediatiedostojen polkujen oikaisemista.

Valmistelut ennen siirtoa

Varmista ennen toimenpiteitä seuraavat asiat:

  1. Selvitä alasivuston ID-numero:

    Ota SSH-yhteys multisite-palvelimelle ja listaa verkon sivustot:

    wp site list

    Tarkista tulosteesta siirrettävän sivuston blog_id (tässä ohjeessa käytämme esimerkkinä ID-numeroa 3).

  2. Ota tuore varmuuskopio multisite-verkosta:

    wp-backup
  3. Valmistele uusi erillissivusto:

    Varmista, että sinulla on valmiina uusi, tyhjä Seravo-palvelinympäristö (esim. WP Pro tai WP Business), johon sivusto siirretään. Mikäli et ole vielä hankkinut uutta sivustotilaa, voit tilata sen suoraan Seravon tilauslomakkeella. Siirto tehdään aluksi uuden tilan kehitysosoitteeseen (esim. uudensivustonnimi.fi-c.seravo.com).

Vaihtoehtoinen tapa: All-in-One WP Migration (Maksullinen)

Jos et halua tehdä siirtoa komentoriviltä, operaation voi suorittaa myös WordPressin hallinnasta All-in-One WP Migration -lisäosalla ja sen maksullisella Multisite Extension -laajennuksella. Laajennus mahdollistaa yksittäisen alasivuston paketoimisen suoraan .wpress-tiedostoksi, jonka voi purkaa uudelle erillissivustolle tavallisella ilmaisversiolla.

Huomioithan, että erittäin suurilla sivustoilla (useita gigatavuja) komentorivisiirto on lisäosia huomattavasti nopeampi ja toimintavarmempi vaihtoehto ilman PHP:n muisti- tai aikarajoja.

Vaihe 1: Alasivuston tietokantataulujen vienti ja etuliitteen muuttaminen

Alasivuston sisältö (artikkelit, sivut, asetukset) sijaitsee tauluissa, joissa on sivuston ID-etuliite (esim. wp_3_*). Erillisessä WordPress-asennuksessa oletusetuliite on puolestaan wp_*.

  1. Vie vain kyseisen alasivuston taulut SQL-tiedostoon:

    wp db export alasivusto_dump.sql --tables=$(wp db tables 'wp_3_*' --format=csv)
  2. Muuta taulujen ja asetusten etuliitteet:

    Tiedostosta on korvattava etuliite wp_3_ muotoon wp_. Tämä korjaa samalla myös asetustaulussa (options) olevan käyttäjäroolien avaimen wp_3_user_roles muotoon wp_user_roles:

    sed -i 's/wp_3_/wp_/g' alasivusto_dump.sql

Vaihe 2: Käyttäjätietojen käsittely

Multisitessa käyttäjätilit sijaitsevat koko verkon yhteisessä wp_users- ja wp_usermeta -tauluissa. Käyttäjien siirtoon on kaksi toimintatapaa:

  • Sivustolla on vain muutama ylläpitäjä (Suositus):

    Luo uudelle erillissivustolle tarvittavat ylläpitäjätunnukset käsin WordPressin hallinnasta tai WP-CLI:llä (wp user create). Mikäli haluat säilyttää vanhat artikkelien kirjoittajatiedot, varmista että käyttäjien ID-numerot täsmäävät tai kohdista artikkelit uudelleen siirron jälkeen.

  • Sivustolla on suuri käyttäjäkanta (esim. WooCommerce-asiakkaat):

    Vie yhteiset käyttäjätaulut ja suodata mukaan vain kyseiseen alasivustoon kuuluvat käyttäjät. Huomioi, että wp_usermeta-taulussa alasivuston käyttöoikeudet on tallennettu avaimella wp_3_capabilities, joka on muutettava erillissivustolla muotoon wp_capabilities.

Vaihe 3: Mediatiedostojen siirto

Multisitessa kunkin alasivuston kuvat ja liitteet tallennetaan alihakemistoon /wp-content/uploads/sites/<ID>/. Tavallisessa WordPressissä ne sijaitsevat suoraan kansiossa /wp-content/uploads/.

  1. Siirrä mediatiedostot uuden sivuston uploads-juureen:

    Kopioi tiedostot multisite-palvelimen hakemistosta .../uploads/sites/3/ uuden sivuston hakemistoon /data/wordpress/htdocs/wp-content/uploads/ (esimerkiksi rsync- tai scp-komennolla):

    rsync -avz /data/wordpress/htdocs/wp-content/uploads/sites/3/ [email protected]:/data/wordpress/htdocs/wp-content/uploads/

Vaihe 4: Teemojen ja lisäosien siirtäminen

Tarkista, mitkä teemat ja lisäosat olivat käytössä kyseisellä alasivustolla:

# Tarkista aktiivinen teema
wp theme list --url=https://esimerkki.fi/alasivusto --status=active

# Tarkista aktiiviset lisäosat
wp plugin list --url=https://esimerkki.fi/alasivusto --status=active

Asenna ja aktivoi vastaavat teemat ja lisäosat uudelle erillissivustolle joko WP-CLI:llä tai kopioimalla räätälöidyt teema- ja lisäosakansiot palvelimelta toiselle hakemistoihin wp-content/themes/ ja wp-content/plugins/.

Vaihe 5: Tietokannan tuonti ja osoitteiden korjaus uudella sivustolla

Kirjaudu uudelle sivustolle SSH-yhteyden avulla:

  1. Tuo muokattu tietokanta uuteen asennukseen:

    wp db import alasivusto_dump.sql
  2. Korjaa mediatiedostojen polut tietokannasta:

    Koska mediatiedostot siirrettiin pois sites/3/-alikansiosta, tietokannassa olevat kuvapolut on oikaistava:

    wp search-replace '/uploads/sites/3/' '/uploads/' --all-tables
  3. Päivitä sivuston osoite (URL):

    Muuta vanha multisite-osoite uuden sivuston lopulliseen osoitteeseen:

    wp search-replace 'https://esimerkki.fi/alasivusto' 'https://uusisivusto.fi' --all-tables
  4. Tyhjennä välimuisti:

    wp-purge-cache

Vaihe 6: Testaus ja vanhan alasivuston poisto

  1. Tarkista uusi sivusto:

    Kirjaudu uuden sivuston hallintapaneeliin. Varmista, että:

    • Kaikki sivut ja artikkelit löytyvät.

    • Kuvat latautuvat oikein mediakirjastossa ja sisällössä.

    • Lisäosien ja teemojen asetukset ovat säilyneet ennallaan.

  2. DNS-tietueiden kääntäminen:

    Kun sivusto on todettu toimivaksi, muokkaa verkkotunnuksen nimipalvelutietueet (A/AAAA) uuden sivuston IP-osoitteeseen. Varmista myös, että www-alidomain on ohjattu CNAME-tietueella.

  3. Vanhan alasivuston arkistointi tai poisto multisitestä:

    Kun liikenne ohjautuu uudelle erillissivustolle, voit poistaa tai arkistoida vanhan alasivuston multisiten verkon hallinnasta (Verkon hallinta > Sivustot).

Poikkeustilanteet ja vianmääritys

  • "Sinulla ei ole oikeuksia tähän sivuun" kirjautumisen jälkeen:

    Käyttäjäroolit tai oikeudet ovat rikki tietokannassa. Varmista, että wp_options-taulusta löytyy kenttä wp_user_roles (eikä vanha wp_3_user_roles). Tarkista myös, että käyttäjälläsi on wp_usermeta-taulussa oikea roolimääritys kentässä wp_capabilities. Voit luoda puhtaan uuden ylläpitäjän komennolla:

    wp user create uusitunnus [email protected] --role=administrator

  • Kuvat eivät näy sivuilla (Broken images):

    Mediatiedostojen polun etsi-korvaa -ajo on jäänyt tekemättä tai epäonnistunut. Aja kohdan 5 mukainen wp search-replace '/uploads/sites/3/' '/uploads/' --all-tables uudelleen ja tyhjennä välimuisti komennolla wp-purge-cache.

Katso myös

Alasivuston erottaminen itsenäiseksi sivustoksi vaatii kehittäjältä tarkkuutta tietokantataulujen ja tiedostopolkujen kanssa, mutta toimenpide takaa puhtaan ja itsenäisen ympäristön jatkokehitykselle. Mikäli tarvitset apua siirron suunnittelussa tai palvelinympäristön pystytyksessä, Seravon asiantuntijat auttavat mielellään osoitteessa [email protected].

Vastasiko tämä kysymykseesi?