MediaWiki on ilmainen, palvelinpohjainen wiki-ohjelmisto, joka pyörittää kaikkia Wikimedia-projekteja. MediaWiki julkaistiin vuonna 2003 ja se on lisensoitu GNU General Public License (GPL) -lisenssillä. Tämä tarkoittaa, että ohjelmiston lähdekoodi on vapaata eli avointa lähdekoodia — kuka tahansa voi tarkastella, muokata ja jakaa sitä GPL:n ehtojen mukaisesti. Ohjelmisto on usein asennettu web-palvelimelle ja sitä kehitetään aktiivisesti sekä Wikimedia Foundationin että laajan kansainvälisen yhteisön toimesta.

Tekninen toteutus ja perusominaisuudet

MediaWiki on suunniteltu toimimaan suurissa ympäristöissä, joissa on miljoonia kävijöitä päivässä. Se on skaalautuva ja ominaisuuksiltaan rikas wiki-toteutus, joka käyttää PHP:tä yhdessä tietokannan kanssa tallentaakseen ja näyttääkseen sisältöä. Tyypillinen asennus käyttää MySQL- tai MariaDB-tietokantaa, mutta tuettuna on myös muita tietokantamoottoreita ja välimuistiratkaisuja.

Sivujen sisältö kirjoitetaan MediaWikin oman Wikitext-merkkauksen avulla, mikä mahdollistaa XHTML- tai CSS-taidottomienkin käyttäjien muokkauksen helposti. Wikitext tukee otsikoita, linkkejä, listoja, taulukoita ja muita rakenteita sekä laajennuksia, kuten sivupohjia (templates), jotka mahdollistavat toistuvan sisällön hallinnan.

Versiointi ja muokkaushistoria

Kun käyttäjä tallentaa muokkauksen sivulle, MediaWiki kirjoittaa muutoksen tietokantaan säilyttäen samalla sivun aiemmat versiot. Tämä antaa mahdollisuuden helppoon palautukseen vandalismi- tai virhetilanteissa ja tekee muutosten historiasta läpinäkyvän. Lisäksi järjestelmä tarjoaa:

  • muokkausmuistion ja diff-näkymän muutosten vertailuun,
  • merkintä- ja tarkistusominaisuuksia (esim. "muokattu", "laajennus"),
  • seurantalistat ja henkilökohtaiset ilmoitukset (esim. muutoksista omilla seurantalistoilla).

Tiedostot ja multimedia

MediaWiki voi käsitellä kuva- ja multimediatiedostoja, jotka yleensä tallennetaan palvelimen tiedostojärjestelmään tai integroituna ulkoisiin tallennusratkaisuihin. Se luo pienoiskuvia (thumbnail) ja tukee yleisiä tiedostomuotoja sekä vektorimuotoja (kuten SVG). Suurissa asennuksissa voidaan käyttää erillisiä palveluita tai CDN-ratkaisuja staattisten tiedostojen toimittamiseen.

Skaalautuvuus ja suorituskyky

Suurissa wikeissä, joissa on paljon samanaikaisia käyttäjiä, MediaWiki tukee erilaisia välimuistiratkaisuja ja arkkitehtuurimalleja suorituskyvyn parantamiseksi. Tyypillisiä keinoja ovat:

  • välimuistitallennus (esim. memcached, Redis) välimuistin hallintaan,
  • HTTP-välimuistit ja välityspalvelimet (esim. Squid tai Varnish) staattisen sisällön nopeaan jakeluun,
  • lukureplikaa-tietokannat ja kuorman tasapainottimet,
  • taustaprosessit (job queue) ja erilliset työn suorittajat suurten tehtävien käsittelyyn.

Laajennettavuus ja mukauttaminen

MediaWiki on modulaarinen: sen toimintoja voi laajentaa extensions-laajennuksilla ja ulkoasua voi muuttaa skins-teemoilla. Yleisesti käytettyjä laajennuksia ovat esimerkiksi kirjoitustoimintojen laajennukset, dokumentaatiotyökalut, kaaviot ja Lua-pohjaiset laskentamoottorit (Scribunto). Lisäksi järjestelmään voidaan liittää erilaisia todennus- ja käyttäjähallintaratkaisuja (esim. LDAP, OAuth).

Kansainvälistyminen ja saavutettavuus

MediaWiki on suunniteltu tukemaan monikielisyyttä: käyttöliittymätekstien käännökset ovat helposti hallittavissa ja järjestelmä tukee oikealta vasemmalle -kielten asettelua, paikallisia kirjaimistokoodauksia ja erilaisia kielikohtaisia asetuksia. MediaWikin yhteisö ylläpitää käännöstiedostoja ja lokalisaatioita useille sadoille kielille.

Tietoturva ja hallinta

MediaWikissä on useita työkaluja sivuston suojaamiseen ja hallintaan: käyttäjäoikeudet ja roolit, lukitukset, IP-esto, muutosten hyväksymis- tai suojausasetukset sekä automaattiset suodattimet roskapostin ja haitallisen sisällön torjuntaan. Suuret asennukset hyödyntävät myös yleisiä verkkoturvakäytäntöjä, kuten HTTPS:ää, palomuureja ja sijaintiriippumattomia varmistuksia.

Kehitys, lisenssi ja yhteisö

MediaWikin kehityksestä vastaa pääosin Wikimedia Foundation yhdessä laajan avoimen lähdekoodin kehittäjäyhteisön kanssa. Lähdekoodi on julkisesti saatavilla ja kehitys tapahtuu usein Git-versionhallinnan kautta. Koska ohjelmisto on GPL:n mukainen, kuka tahansa voi osallistua, ehdottaa muutoksia tai luoda omia laajennuksiaan.

Esimerkkinä aiemmasta julkaistusta versiosta, kaikki Wikimedia-projektit käyttivät aikaisemmin MediaWikin versiota 1.35.0-wmf.31 (c33756d). Wikimedia ylläpitää omaa, palvelimille optimoitua haarakettaan ja päivitysaikataulut vaihtelevat palvelun ja projektin mukaan.

Asennus ja ylläpito — yleiskatsaus

Perusasennus vaatii web-palvelimen, tuetun PHP-version ja tietokannan. Uudemmissa versioissa käytetään Composer-riippuvuuksien hallintaa. Ylläpitoon kuuluu varmuuskopiointi, päivitysten testaaminen ja asennus, laajennusten hallinta sekä suorituskyvyn ja tietoturvan seuranta. Tarkemmat asennusohjeet ja järjestelmävaatimukset löytyvät MediaWikin virallisesta dokumentaatiosta sekä yhteisön ylläpitämistä ohjeista.

MediaWiki sopii pieneen organisaatiowikiin yhtä hyvin kuin laajoihin tietopalveluihin ja yhteisöprojekteihin. Sen avoimuus, laajennettavuus ja vahva yhteisötuki tekevät siitä yhden käytetyimmistä wiki-alustoista maailmassa.