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:
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-numeroa3).Ota tuore varmuuskopio multisite-verkosta:
wp-backup
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_*.
Vie vain kyseisen alasivuston taulut SQL-tiedostoon:
wp db export alasivusto_dump.sql --tables=$(wp db tables 'wp_3_*' --format=csv)
Muuta taulujen ja asetusten etuliitteet:
Tiedostosta on korvattava etuliite
wp_3_muotoonwp_. Tämä korjaa samalla myös asetustaulussa (options) olevan käyttäjäroolien avaimenwp_3_user_rolesmuotoonwp_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 avaimellawp_3_capabilities, joka on muutettava erillissivustolla muotoonwp_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/.
Siirrä mediatiedostot uuden sivuston uploads-juureen:
Kopioi tiedostot multisite-palvelimen hakemistosta
.../uploads/sites/3/uuden sivuston hakemistoon/data/wordpress/htdocs/wp-content/uploads/(esimerkiksirsync- taiscp-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:
Tuo muokattu tietokanta uuteen asennukseen:
wp db import alasivusto_dump.sql
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
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
Tyhjennä välimuisti:
wp-purge-cache
Vaihe 6: Testaus ja vanhan alasivuston poisto
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.
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.
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ä vanhawp_3_user_roles). Tarkista myös, että käyttäjälläsi onwp_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=administratorKuvat 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-tablesuudelleen ja tyhjennä välimuisti komennollawp-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].
