WordPress tarjoaa mahdollisuuden rakentaa saman domainin ympärille eräänlaisen sivustofarmin. Kyse on yhdestä wordpressin perusasennuksesta, mutta vain teknisesti. Käyttäjille ne näkyvät myös hallinnassa erillisinä wordpress-sivustoina, jotka ovat toiminnallisuuksiltaan hieman tavallista asennusta rajatumpia, Syitä miksi Multisite (monisivusto? Noinkohan käännöstä edes on olemassa) tehdään, on useita. Halutaan tarjota rekisteröityneille mahdollisuus tehdä oma sivusto. Tai halutaan oman sivuston eri osille oma hallintansa.
Ei takerruta syihin sen enempää. Jos olet päättänyt rakentaa multisiten, niin sinulla lienee jo perusteet olemassa. Kannattaa kuitenkin muistaa multisiten muutama sudenkuoppa ja rajoite.
Ensimmäinen ja ehkä tärkein on samojen resurssien käyttö. Teknisesti kyse on samasta asennuksesta, joka käyttää samaa tietokantaa ja wordpressin ydintiedostoja. Farmin muun sivustot näkyvät kahdessa paikassa wordpress-asennuksessa: mediatiedostoissa ja tietokannassa. Tietokanta paisuu, koska ”alisivustot” ovat sisällöltään samassa tietokannassa. Tuo lisää tietokantaserverin kuormaa ja saattaa ruveta jossain vaiheessa kiristämään. Tosin se kiusaa vain kolmessa tilanteessa.
- Jos kaikki sivustot multisitessä ovat erittäin suuria,
- jos kaikissa sivustoissa on paljon kävijöitä
- jos käytetty web-hotelli on lähellä rajojaan jo yhdelläkin asennuksella
Kahdessa ensimmäisessä lähtöoletus on, että webmaster tietää muutenkin mitä on tekemässä. Viimeinen vaatii vain rahaa: ostetaan isompi tai siirrytään kokonaan pois web-hotelleista. Minä tein viimeisen ja siirryin DigitalOceanin asiakkaaksi.
Samojen resurssien käyttö tarkoittaa myös sitä, että jos ympäristö kaatuu vaikka konerikon takia, niin jokainen farmin saitti kaatuu. Tosin, tuo riski on olemassa periaatteessa web-hotelleissakin vaikka käyttäisi jokaiselle saitille omaa wordpress-asennusta ja tietokantaa.
Kaikki pluginit eivät toimi multisite-ympäristössä. Suurin osa kylläkin, ja jopa osaa jakaa itseään hyödyllisesti omassa sivustoverkostossaan, mutta osa ei. Kannattaa googletella tilannetta niiden käyttämiensä pluginien kohdalla, jotka ovat kriittisiä.
Jos ajattelit hyödyntää maksullisen pluginin lisenssiä useammalla sivustolla multisiten avulla, niin se ei pääsääntöisesti onnistu. Jos käytät jotain testisaittiympäristöä (stage) ja plugin ei toimi siellä, niin ei se taatusti toimi multisitessäkään.
Muutoin suurin päätettävä asia on, että haluaako alidoimaineina (example.com
, 1.example.com
, 2.example.com
…) vai hakemistoina (example.com
, example.com/1
, example.com/2
..) multisitensä. Tuohon ei ole olemassa oikeaa ratkaisua.
Oma mielipiteeni on, että
- jos sivustot ovat selkeästi oma kokonaisuutensa, niin käytetään alidomaineja
- jos sivustoja käytetään kategorioiden tapaan (kielivalinnat jne), niin hakemistoina
Muista kuitenkin, että se on joko tai. Et voi siis laittaa osaa hakemistoon ja osaa alidomainiksi. Sen muuttaminen jälkikäteen on myös riskialtista.
Tuo valinta kuitenkin koskee vain täysin neitseellisiä asennuksia. Asennetaan ihka uusi WordPress, jossa ei ole vielä sisältöä. Jos kyseessä on vanha sivusto, jossa on jo sisältöä, kuten minulla, niin annetaan vain yksi pakotettu mahdollisuus: alidomain.
Tuo ylivarovaisuus perustuu WordPressin osoitemuotoihin. Jos valittaisiin hakemistomalli, ja sellainen osoite jo löytyykin, niin sivusto menisi rikki. Eli jos haluat www.example.com/sivusto
mutta sinulla on postaus, tagi tai kategoria, joka on nimellä sivusto, niin senkin osoite voisi olla www.example.com/sivusto
– wordpress ei tietäisi mitä tehdä. Koska oletusarvoisesti käyttäjä on tyhmä eikä mieti mitä tekee, niin käyttäjän ei anneta tehdä. Ja vanhoissa asennuksissa sitten pitäisi mennä vain alidomaineilla.
Tuon voi ohittaa, ja helposti. Koska esimerkkini tehdään nimenomaan jo olevalle sivustolle ja ehdottomasti haluan hakemistomallisen osoitteen, niin näytän miten se tehdään. Mutta muista: jos teet olemassaolevaan wordpress-sivustoon multisiten, jossa käytetään hakemistomuotoa, niin sivustojen nimet eivät saa olla jo käytössä! Sinua on varoitettu.
Multisiten asennus
Multisite ei ole plugin, vaan WordPressissä oleva ominaisuus. Sitä ei siis varsinaisesti asenneta, vaan se otetaan käyttöön. Ilmeisesti koska kyseessä on niin vahvasti perusrakenteeseen vaikuttava muutos, niin pelkkä rasti ruutuun ja ok ei riitä. Joudutaan muokkaamaan hiukan wp-config.php
-tiedostoa. Myös .htaccess -tiedostoa joudutaan säätämään. Käyttöönotto tosin kertoo mitä täytyy tehdä ja järjestelmä saattaa osata/osaa tehdä muokkaukset itse, jolloin sinulle jää vain tarkastamisen työläys.
Minulla on sivustolla katiska.info multisiteasennus. Aloin tekemään sinne selkokielistä versiota ja toteutin sen multisitenä. Osoite www.katiska.info/selko ei siis ole ”perussivuston” kategoria, vaan multisitessa oleva toinen wordpress. Jos olisin selkokieli-osiossa käyttänyt samaa teemaa, niin käyttäjä ei olisi suoraan huomannut vaihtaneensa sivustoa. Valikoiden sisöltö olisi jossain määrin vaihtunut, mutta niin tapahtuu usein muutenkin. Käytännön ero olisi ollut sisäänkirjautumisessa. Aidostihan sivusto vaihtuu, niin selko-osiossa käyttäjä ei tietenkään olisi loggautuneena. Käyttäjien synkkaaminen sivustolta toiselle ei sitten ole ihan triviaalia, edes multisitessä.
Teen samanlaisen ratkaisun sivustolle eksis.fi ja käytän sitä esimerkkinä. Joten vaihda sopiviin paikkoihin sinun tarvitsemasi tiedot.
Oletuksena on:
- SSH-yhteys eli komentorivikehoite (esim. PuTTY win-maailmassa)
- virtual host DigitalOceanilla
Homman voi toki hoitaa FTP:llä. Kunhan pääset tiedostoihin käsiksi ja pystyt muokkaamaan.
Nimipalvelin
Periaatteessa nimipalvelintietoihin (DNS) täytyy koskea vain jos toteutat multisiten alidomaineina. Yleensä lähtökohta on, että ”pääsivusto” on ilman www-alkuliitettä, mutta se voi olla sillä. Ja minusta kannattaakin, mutta tuo hieman makukysymys.
Silloin on sallittava ns. tähti-domain. Jos olet web-hotellissa, niin etsi oikea paikka. Lisättävä tieto saattaa jo ollakin, mutta se on vamistettava. Etsi kuvan kaltainen paikka ja tee vastaava muutos (jos ei jo ole):
Jos sinulla näkyy DNS-tiedoissa jo kohta, jossa on A-tietueena pelkästään example.com ja IP-osoite, niin homma on kunnossa. Sinulla lienee jo määritelty www A-tietueessa, mikäli pystyt käyttämään www-alkuista osoitetta.
Multisiten käyttöönotto
Multisite otetaan käyttöön muokkaamalla tiedostoa wp-config.php
. Siirry WordPressin hakemistoon.
$ cd /var/www/eksis.fi/public_html
Avaa wp-config.php
$ nano wp-config.php
Lisää tämä viimeiseksi ennen riviä /* Siinä kaikki. Älä jatka pidemmälle */
/* Multisite */ define( 'WP_ALLOW_MULTISITE', true );
Tallenna ja palaa WordPressin hallintaan. Lataa sivu uudestaan, jos se on jo auki.
Ota ensin jokainen lisäosa pois päältä. Älä poista niitä, sammuta ne ainostaan. Jos unohdat tehdä sen, niin saat verkon käyttöönotossa kehoitteen tehdä sen.
Mene seuraavaksi valikossa kohtaan Työkalut > Verkon asennus
Saat verkon asennussivun. Se on melkoisen itseään selittävä. Itse en muuttanut urlia olemaan ilman www-osoitetta. Osaksi sen takia, että en tiennyt mitä se tekisi asentamalleni CDN:lle ja osaksi kun en vaan halunnut. Päätä itse.
Mutta koska teen asennusta jo olevalle sivustolle, niin minulle kerrotaan, että vain alidomainit ovat mahdollisia. Säädetään tuo myöhemmin. Tarkista asetukset. Verkon nimen voit muuttaa, jos haluat. Kysymys on lähinnä informatiivisuudesta.
Pääkäyttäjä ei tarkoita ”juurisivuston” pääkäyttäjää, vaan verkon super-adminia. Jos teet multisiteä itsellesi, niin se kannattaa ehkä olla sama kuin alkuperäisen sivuton pääkäyttäjä.
Klikkaa Asenna.
Sinulle aukeaa sivu, jossa neuvotaan tiedostojen wp-config-php ja .htaccess muutokset. Minulla järjestelmä osasi muuttaa ne itse, mutta se riippuu esimerkiksi tiedostojen omistajuuksista ja kirjoitusoikeuksista. Tarkista muutokset.
Mutta nyt korjataan asennus käyttämään hakemistoja alidomainien sijaan.
Alidomaineilla wp-config.php -tiedostosta pitäisi löytyä tämä:
define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', 'www.eksis.fi'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);
Muuta SUBDOMAIN_INSTALL
rivi arvoon false
.
define('SUBDOMAIN_INSTALL', false);
Tallenna.
Muutetaan tietoa .htaccess
, sillä ehdotetussa muodossa se muuttaa urlit alidmaineille. Ja sitä ei nyt haluta.
Poista (tai kommentoi #-merkillä) vanhat säännöt ja kopioi tämä. Liitä se <IfModule ..>
ja </IfModule>
väliin, jos sinulla sellaiset on.
RewriteEngine On RewriteBase / #RewriteRule ^index\.php$ - [L] #RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d #RewriteRule . /index.php [L] RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L]
Kirjaudu uudestaan WordPressiin.
Sinulle pitäisi avautua tämänkaltainen sivu.
Se tarkoittaa, että sinulla on multisite asennettuna hakemisto-muotoon (tai alidomaineina, jos sen teit) ja verkkosi on valmis. Toki asetukset kannattaa laittaa kohdalleen ja sitten tarvitaan enää ne lisättävät sivustot.
Multisiten asetukset
Omat tarpeesi määrittävät mitä sinun kannattaa laittaa. Minulle lähtökohta on, että ”alasivusto” toimii osana varsinaista sivustoa. Mutta muutama asetus on sellaisia, jotka on laitettava paikalleen eräällä tavalla riippumatta miten multisiteä käytät – arvot sitten riippuvat sinun tarpeistasi.
Valitse Asetukset > Verkon asetukset.
Kiinnitä huomiota käyttäjätilien rekisteröinteihin, sallitaanko vai ei. Samaten saavatko käyttäjät avata omia blogejaan. Minä sallin rekisteröitymiset, mutta en omia sivustoja. Samaten sallin ylläpitäjän lisätä käyttäjiä.
Rullaa aivan alas asetuksissa, sillä siellä piilee erittäin tärkeä asetus: Siirrettävien tiedostojen maksimikoko.
Aivan riippumatta mitä olet säätänyt WordPressissä, .htaccesissa tai PHP:ssä sivustokohtaiseksi maksimiksi, niin nyt kaikissa verkon sivustoissa maksimi on 1500 kilotavua. Ja jostain oudosta syystä WordPress pyöristää sen alaspäin kymmenlukuina. Tarkoittaa sitä, että oletuksena saa siirtää vain yhden megan tiedostoja. Joten muuta se sopivampaan. Ylärajan määrää serverin sivustokohtainen max-upload.
Kuten sanottua, niin se on kilotavuina. 1000 kt = 1 Mt, joten jos haluat sallia 100 megan tiedostot, niin laita siihen 100000.
On käsittämätöntä miksi se on oletuksen noin pieni.
Jos asennat verkkoa itsellesi, niin kannattaa sallia elämän helppouden nimissä Lisäosien hallinta – eli täppä ruutuun.
Muutoin asetuksissa ei ole sen kummallisempaa. Tallenna kun olet tyytyväinen.
Sivustot
Yksi multisiten eduista/haitoista/ominaisuuksista (valitse haluamasi) on, että oleellisimpia asioita hallitaan Verkon hallinnasta. Sieltä päivitetään WordPress, ei sivuistoilta. Sama koskee lisäosien päivitystä. Pystyt myös päättämään mitkä ovat jokaisella sivustolla pakollisia lisäosia ja mitkä plugarit saa laittaa päälle per sivusto. Mutta jokainen verkossa sallittu lisäosa näkyy kaikilla sivustoilla. Sama pätee tyyleissä.
Lisäosat
Avaa Asennetut lisäosat. Valitse kaikki ne lisäosat, joiden on pakko olla päällä kaikilla verkon sivustoilla. Klikkaa Verkkoaktioi.
Minulla sellaisia lisäosia ovat mm.
- Jetpack ja Akismet
- Uudelleenohjaus
- All-In-SEO
- UpdraftPlus
- Code Snippets
- EWWW Image Optimizer
- Loco Translate
- WP Media Offload, jne
Woocommercen kaltaiset sivustokohtaiset pluginit annetaan olla. Ne käydään laittamassa päälle sivustokohtaisesti.
Teemat
Sama pätee teemoissa. Avaa Asennetut teemat. Valitse ne teemat, jotka on oltava valittavissa sivustoilla. Et pysty sallimaan per sivusto. Joten jos sinulla on sama teema käytössä jokaisella sivustolla, niin valitse se ja varmuuden vuoksi virhetilanteita varten esimerkiksi 2019 ja Salli käyttö kaikilla sivustoilla. Se teema, joka oli käytössä alkuperäisellä sivustolla, on jo sallittuna.
Minä käytän eri teemoja sivustoilla eksis.fi
ja eksis.fi/selko
joten minun on sallittava molemmat teemat.
Verkon sivustoilla ei pysty asentamaan uusia teemoja. Se tehdään täällä ja sallitaan kaikille.
Sivuston lisääminen
SIvuston lisääminen on hyvinkin triviaalia. Valitse Sivustot > Lisää uusi ja anna tiedot. Se oli siinä.
Löydät kaikki verkon sivustot oikean yläkulman Minun sivustoni alta. Mene uudelle sivustollesi ja ala laittamaan paikkoja kuntoon.
Näppärä apuohjelma
Jos haluat pari valintaa lisää ja hieman informaatiota, niin asenna tämä ja pakota se koko verkolle:
https://fi.wordpress.org/plugins/multisite-enhancements/
Verkon poistaminen
Jos tulit katumapäälle tai homma ei toimi, niin multisiten poistaminen on perustasolla aivan yhtä helppoa kuin käyttöönotto.
Avaa wp-config.php
Vaihda rivin WP_ALLOW_MULTISITE
arvoksi false
define( 'WP_ALLOW_MULTISITE', false);
Voit lisäksi kommentoida #-merkillä muut multisiteen liittyvät rivit, selvyyden vuoksi, mutta pelkkä false
riittää.
Mutta kuten aina WordPressissä, niin roskaa jää. Tietokannassasi on edelleen tekemiesi sivustojen tiedot. Voit poistaa ne, jos haluat. Ne ovat tunnistettuna numerolla. Mutta varsinaisessa tietokannan tauluissa on edelleen tiedot verkkoon tehdyistä ”alisivustoista” ja joskus kuitenkin otat uudestaan multisiten käyttöön, niin ne tulevat näkyviin – tosin rikkinäisinä, koska olet poistanut niiden tiedot toetokannasta, mutta niistä pääsee eroon verkon hallinnasta.