MediaWiki er navnet på den software, der driver alle Wikimedia-projekterne. MediaWiki blev første gang udgivet i 2003 og er gratis serverbaseret software licenseret under GNU General Public License (GPL) — se også GPL. Det betyder, at både softwaren og udviklingsmodellen er frit indhold, og at projektet er en del af open source-fællesskabet.

MediaWiki er designet til at køre på store webserverfarme og håndtere hjemmesider med millioner af daglige besøg. Systemet er meget skalerbart og bygger på PHP for logik og skabelonbehandling samt en relationel database (typisk MySQL eller MariaDB) til lagring af indhold og revisionshistorik. Brugerne redigerer sider i MediaWikis Wikitext-format, så man ikke behøver kendskab til XHTML eller CSS for at oprette og redigere indhold.

Når en bruger indsender en redigering, gemmer MediaWiki ændringen i databasen uden at slette tidligere versioner. Denne revisionshistorik gør det let at genskabe tidligere versioner ved vandalisme eller fejl. MediaWiki håndterer også billeder og andre multimediefiler, som normalt gemmes i filsystemet. For store installationer understøtter softwaren caching og kan integreres med eksterne proxy- og cacheløsninger som Squid for at forbedre ydeevnen.

Vigtige funktioner

  • Revisioner og historik: Hver sideændring gemmes, så man kan sammenligne versioner og rulle tilbage.
  • Brugerhåndtering: Rettighedsstyring, brugerroller, blokering og overvågning af ændringer.
  • Navnerum og indholdsstruktur: Skilte mellem artikler, diskussionssider, filer, skabeloner osv.
  • Skabeloner og parserfunktioner: Genbrug af indhold og automatiske infobokse via skabeloner og parserfunktioner.
  • Kategorier, links og fuldtekstsøgning: Indbygget søgning og kategorisystem til at organisere indhold.
  • Udvidelser og skins: Systemet kan udvides med hundreder af extensions (f.eks. til visualisering, forbedret redigering, autorisation) og tilpasses med temaer (skins).
  • API og automatisering: MediaWiki tilbyder en langsom og en RESTful API til integration med andre tjenester, bots og automatiserede arbejdsgange.
  • Skalering og købehandling: Job-queue, baggrundsopgaver og understøttelse af caching-lag for høj belastning.

Krav og drift

  • Servermiljø: Webserver (f.eks. Apache eller nginx), PHP og en kompatibel database (MySQL/MariaDB).
  • Lagring: Plads til uploads og tilstrækkelig I/O-ydeevne ved store genstande og mange læsninger.
  • Ydeevne: Brug af caching (f.eks. memcached, Varnish eller Squid) anbefales til store wikier for at reducere databasebelastning.
  • Sikkerhed og backup: Regelmæssige backups af database og filer samt opdateringer af software for at lukke sikkerhedshuller.

Tilpasning og udvikling

MediaWiki er modulariseret, så man kan tilføje extensions for ekstra funktionalitet (f.eks. VisualEditor, Semantic MediaWiki, ParserFunctions). Skins gør det muligt at ændre udseendet uden at ændre kernen. Systemet er internationaliseret, så grænsefladen kan oversættes til mange sprog, og samfundet bidrager med lokalisering.

Licens, bidrag og fællesskab

Selvom softwaren er fri, afgør indholdets licens på et givet site, hvordan artikler må genbruges. Wikimedia-projekter anvender ofte frie indholdslicenser, og MediaWikis åbne kildekode gør det muligt for udviklere verden over at bidrage med forbedringer, fejlrettelser og nye features.

Bemærk: Wikimedia-projekterne kører på en tilpasset udgave af MediaWiki. Som eksempel kørte alle Wikimedia-projekter tidligere på MediaWiki version 1.35.0-wmf.31 (c33756d); versionen og patches varierer løbende efter behov.