MediaWiki nativ auf Ubuntu installieren: LAMP-Stack ohne Docker
MediaWiki 1.45 – die Software hinter Wikipedia – nativ auf Ubuntu 24.04 LTS mit Apache, MariaDB und PHP aufsetzen: Schritt-für-Schritt-Anleitung ohne Container, mit voller Kontrolle über Konfiguration, Extensions und Sicherheitseinstellungen.

MediaWiki ist die freie Wiki-Software, die Wikipedia und tausende weitere Wikis weltweit betreibt. Wer sie auf einem eigenen Ubuntu-Server nativ installiert – also ohne Docker oder Container –, behält die volle Kontrolle über PHP-Konfiguration, Extensions, Caching-Backends und Sicherheitseinstellungen. Diese Anleitung führt dich Schritt für Schritt durch eine vollständige LAMP-Installation (Apache 2.4, MariaDB 10.11+, PHP 8.3) auf Ubuntu 24.04 LTS, vom leeren Server bis zu einem laufenden Wiki mit Short-URLs und korrekten Dateirechten. Sie richtet sich an KMU-Admins und ambitionierte Selfhoster, die ein internes Firmen-Wiki, eine Wissensdatenbank oder ein Projekt-Wiki dauerhaft betreiben wollen.
Voraussetzungen
- Ubuntu 24.04 LTS Server (frische Installation empfohlen), Root- bzw. sudo-Zugriff
- Mindestens 512 MB RAM (für Produktion empfohlen: 1 GB+), mindestens 10 GB freier Speicher
- PHP 8.2–8.5; diese Anleitung nutzt PHP 8.3 (Wikimedia-Produktionsstandard)
- MariaDB 10.11 LTS (Wikimedia-Standard; alternativ MySQL 8.0+)
- Apache 2.4 mit
mod_rewriteundmod_alias - Internetverbindung für
apt-Pakete und den MediaWiki-Tarball - Domain oder IP-Adresse; für HTTPS später ein SSL-Zertifikat (z. B. via Let's Encrypt)
| Komponente | Minimum | Empfohlen | Hinweis |
|---|---|---|---|
| PHP | 8.2.0 | 8.3.x | Wikimedia-Produktion nutzt 8.3 |
| MariaDB | 10.11.0 | 10.11 LTS | Wikimedia-Standard; beste Kompatibilität |
| MySQL | 5.7.0 | 8.0+ | Alternative zu MariaDB |
| Apache | 2.4 | 2.4 | mod_rewrite + mod_alias benötigt |
| RAM | 256 MB | 512 MB+ | Pro Wiki-Instanz |
| Speicher | 85 MB | 1 GB+ | Ohne hochgeladene Mediendateien |
| Ubuntu | 22.04 LTS | 24.04 LTS | Pakete via apt verfügbar |
Schritt 1: System aktualisieren
Bevor du Pakete installierst, bringst du das System auf den neuesten Stand:
sudo apt update && sudo apt upgrade -yVerifizieren: Der Befehl beendet sich ohne Fehler; sudo apt list --upgradable zeigt danach keine offenen Updates mehr.
Schritt 2: LAMP-Stack installieren
Ein einziger apt-Aufruf zieht Apache, MariaDB, PHP 8.3 und alle Pflicht-Extensions:
sudo apt-get install -y apache2 mariadb-server php php-intl php-mbstring \
php-apcu php-curl php-mysql php-xml libapache2-mod-php php-cli imagemagickAnschließend aktivierst du die PHP-Extensions und startest Apache neu:
sudo phpenmod mbstring
sudo phpenmod xml
sudo systemctl restart apache2Verifizieren: php -m | grep -E 'intl|mbstring|xml|curl|apcu' listet alle fünf Extensions; systemctl status apache2 zeigt active (running).
Die folgende Tabelle zeigt, welche PHP-Extensions für MediaWiki 1.45 Pflicht sind und welche Paketnamen du auf Ubuntu brauchst:
| Extension | Ubuntu-Paket | Pflicht/Optional | Funktion |
|---|---|---|---|
| intl | php-intl | Pflicht (seit 1.36) | Internationalisierung |
| mbstring | php-mbstring | Pflicht (seit 1.27) | Multibyte-Strings |
| xml / xmlreader | php-xml | Pflicht | XML-Parsing |
| openssl | PHP-Core | Pflicht | HTTPS/Verschlüsselung |
| sodium | PHP-Core | Pflicht | Kryptografie |
| apcu | php-apcu | Empfohlen | Objekt-Caching im RAM |
| curl | php-curl | Empfohlen | HTTP-Anfragen (APIs, Extensions) |
| imagick | imagemagick | Optional | Bild-Thumbnailing |
| pdo_mysql | php-mysql | Pflicht für MariaDB | Datenbanktreiber |
Schritt 3: MariaDB absichern und Datenbank anlegen
Zuerst führst du das Härtungsskript aus, das u. a. das Root-Passwort setzt, anonyme Nutzer entfernt und den Remote-Root-Login sperrt:
sudo mysql_secure_installationDanach legst du Datenbank und Wiki-Benutzer an. Wichtig: Verwende immer utf8mb4 mit der Kollation utf8mb4_unicode_ci, um volle Unicode-Unterstützung inklusive Emojis sicherzustellen. Eine falsch angelegte latin1-Datenbank erzeugt später hartnäckige Zeichenkodierungsprobleme bei Umlauten und Sonderzeichen.
sudo mysql -u root -p
CREATE DATABASE my_wiki CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'sicheres_passwort_hier';
GRANT ALL PRIVILEGES ON my_wiki.* TO 'wikiuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;Verifizieren: sudo mysql -u wikiuser -p my_wiki -e "SHOW TABLES;" stellt eine Verbindung her (leere Ergebnismenge ist korrekt, da noch keine Tabellen existieren).
Schritt 4: MediaWiki herunterladen und einrichten
Du lädst den offiziellen Tarball direkt von releases.wikimedia.org herunter – nicht aus dem Ubuntu-Paketarchiv, das oft eine ältere Version enthält.
cd /tmp
wget https://releases.wikimedia.org/mediawiki/1.45/mediawiki-1.45.3.tar.gz
tar -xzvf mediawiki-1.45.3.tar.gz
sudo mv mediawiki-1.45.3 /var/lib/mediawikiDanach erstellst du einen Symlink, damit Apache über /mediawiki auf die Dateien zugreift, und setzt die Dateirechte:
sudo ln -s /var/lib/mediawiki /var/www/html/mediawiki
sudo chown -R www-data:www-data /var/lib/mediawikiVerifizieren: ls -la /var/www/html/mediawiki zeigt einen Symlink; ls -la /var/lib/mediawiki listet die MediaWiki-Dateien mit www-data als Eigentümer.
Schritt 5: PHP konfigurieren
Die PHP-Standardkonfiguration ist für MediaWiki in zwei Punkten ungeeignet: Der Upload-Limit von 2 MB ist zu klein, und das Speicherlimit ist knapp. Passe die Werte in der richtigen php.ini an – die von Apache genutzte, nicht die CLI-Version:
php -v # PHP-Version prüfen, ggf. Pfad anpassen (8.2, 8.3, …)
sudo nano /etc/php/8.3/apache2/php.iniSetze oder ändere diese drei Zeilen:
upload_max_filesize = 20M
memory_limit = 128M
post_max_size = 25M
sudo systemctl restart apache2Verifizieren: php -r "echo ini_get('upload_max_filesize');" gibt 20M aus (CLI-Wert). Für den Apache-Wert lege kurz eine phpinfo.php an, prüfe dort den Eintrag und lösche die Datei sofort wieder.
Schritt 6: Apache für Short-URLs konfigurieren
MediaWiki braucht mod_rewrite, um Adressen wie /wiki/Artikelname statt /mediawiki/index.php?title=Artikelname zu ermöglichen. Aktiviere das Modul und lege eine dedizierte Apache-Konfigurationsdatei an:
sudo a2enmod rewrite
sudo systemctl restart apache2
sudo tee /etc/apache2/conf-available/mediawiki.conf > /dev/null <<'EOF'
Alias /mediawiki /var/lib/mediawiki
<Directory /var/lib/mediawiki>
Options +FollowSymLinks
AllowOverride All
Require all granted
RewriteEngine On
RewriteBase /mediawiki
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^wiki(/.*)?$ /mediawiki/index.php [L,QSA]
RewriteRule ^/*$ /mediawiki/index.php [L,QSA]
</Directory>
<Directory /var/lib/mediawiki/maintenance>
Require all denied
</Directory>
<Directory /var/lib/mediawiki/serialized>
Require all denied
</Directory>
EOF
sudo a2enconf mediawiki
sudo systemctl reload apache2Zwei Punkte sind hier entscheidend: AllowOverride All erlaubt .htaccess-Dateien, ohne die Rewrite-Regeln nicht greifen. Options +FollowSymLinks ist nötig, weil /var/www/html/mediawiki ein Symlink auf /var/lib/mediawiki ist – fehlt diese Option, liefert Apache eine 404-Seite.
Verifizieren: apachectl configtest gibt Syntax OK aus; im Browser ist http://<server-ip>/mediawiki erreichbar und zeigt die MediaWiki-Seite „Please set up the wiki first."
Schritt 7: Web-Installer ausführen
Rufe http://<server-ip>/mediawiki im Browser auf. MediaWiki erkennt, dass noch keine LocalSettings.php vorhanden ist, und leitet dich automatisch zum Installer weiter. Fülle das Formular vollständig aus:
- Datenbanktyp: MariaDB / MySQL
- Datenbankname:
my_wiki - Datenbankbenutzer:
wikiuser - Datenbankpasswort: das zuvor vergebene Passwort
- Wiki-Name, Admin-Benutzername und Admin-Passwort nach Wunsch
Am Ende des Installers kannst du die generierte LocalSettings.php herunterladen. Diese Datei enthält alle Datenbankzugangsdaten und Wiki-Einstellungen – behandle sie wie ein Geheimnis.
Schritt 8: LocalSettings.php platzieren und absichern
Kopiere die heruntergeladene Datei auf den Server und setze sofort korrekte Rechte. Falsche Berechtigungen sind ein häufiger Fehler: Ist die Datei für alle lesbar, können andere Nutzer auf dem System Datenbankpasswörter auslesen.
sudo cp ~/Downloads/LocalSettings.php /var/lib/mediawiki/LocalSettings.php
sudo chown www-data:www-data /var/lib/mediawiki/LocalSettings.php
sudo chmod 640 /var/lib/mediawiki/LocalSettings.phpÖffne die Datei anschließend und ergänze oder prüfe diese wichtigen Variablen:
$wgSitename = "Mein Wiki";
$wgServer = "https://wiki.example.com"; // nach HTTPS-Einrichtung
$wgScriptPath = "/mediawiki";
$wgArticlePath = "/mediawiki/wiki/$1"; // Short-URLs
$wgUsePathInfo = true;
// Caching mit php-apcu
$wgMainCacheType = CACHE_ACCEL;
// Uploads erlauben
$wgEnableUploads = true;
$wgMaxUploadSize = 1024 * 1024 * 20; // 20 MB
// Nach SSL-Setup aktivieren
// $wgForceHTTPS = true;Verifizieren: Rufe http://<server-ip>/mediawiki erneut auf – statt des Installer-Hinweises erscheint jetzt die Wiki-Hauptseite.
Schritt 9: Installation verifizieren und Datenbankschema prüfen
Führe das Maintenance-Update-Skript aus. Es prüft und aktualisiert das Datenbankschema und muss nach jeder neuen MediaWiki-Version oder jedem Extension-Install erneut ausgeführt werden:
sudo -u www-data php /var/lib/mediawiki/maintenance/run.php update --quickVerifizieren: Das Skript beendet sich mit der Meldung Done. Logge dich anschließend mit dem Admin-Account im Wiki ein und rufe Spezial:Version auf – dort siehst du MediaWiki 1.45.3, die PHP-Version sowie alle geladenen Extensions.
Troubleshooting / Typische Fehler
404-Fehler bei Short-URLs (/wiki/Artikelname)
Ursache: mod_rewrite ist nicht aktiviert oder AllowOverride None verhindert, dass .htaccess-Regeln greifen. Prüfe mit apache2ctl -M | grep rewrite, ob das Modul geladen ist, und stelle in der Apache-Konfig sicher, dass AllowOverride All für das MediaWiki-Verzeichnis gesetzt ist.
Leere Seite oder PHP-Fehler nach Platzierung der LocalSettings.php
Wahrscheinlich hat der Apache-Prozess keine Leseberechtigung. Prüfe: ls -la /var/lib/mediawiki/LocalSettings.php – Eigentümer muss www-data sein, Berechtigungen 640.
Zeichenkodierungsprobleme (Umlaute, Sonderzeichen kaputt)
Die Datenbank wurde mit latin1 statt utf8mb4 angelegt. Eine nachträgliche Konvertierung ist aufwendig; lege die Datenbank lieber neu an – CREATE DATABASE my_wiki CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; – und führe den Installer erneut aus.
php-intl fehlt – Installer bricht sofort ab
Seit MediaWiki 1.36 ist php-intl Pflichtvoraussetzung. Installiere es mit sudo apt install php-intl && sudo systemctl restart apache2.
Datei-Upload schlägt fehl
Sehr wahrscheinlich ist upload_max_filesize in der PHP-Konfiguration noch auf dem 2-MB-Standard. Passe /etc/php/8.3/apache2/php.ini an (upload_max_filesize = 20M, post_max_size = 25M) und starte Apache neu.
Symlink-Probleme: Apache zeigt 404 für /mediawiki
Fehlt Options +FollowSymLinks in der Directory-Direktive, kann Apache dem Symlink /var/www/html/mediawiki → /var/lib/mediawiki nicht folgen. Ergänze die Option in /etc/apache2/conf-available/mediawiki.conf und führe sudo systemctl reload apache2 aus.
Datenbankfehler nach Extension-Aktivierung
Nach dem Eintragen einer Extension in LocalSettings.php fehlt oft der Schritt sudo -u www-data php /var/lib/mediawiki/maintenance/run.php update. Ohne dieses Skript werden nötige Datenbanktabellen nicht angelegt.
Häufige Fragen
Kann ich MediaWiki direkt per apt install mediawiki installieren?
Ja, auf Ubuntu 24.04 gibt es ein offizielles Paket. Es ist jedoch oft nicht die aktuellste Version. Für aktuelle Versionen, volle Kontrolle und einfachere Upgrades empfiehlt sich die manuelle Installation per Tarball von releases.wikimedia.org – wie in dieser Anleitung beschrieben.
Wie aktiviere ich Extensions?
Lege die Extension in /var/lib/mediawiki/extensions/ ab (per git clone oder Tarball) und trage sie in LocalSettings.php ein:
wfLoadExtension( 'VisualEditor' );Danach unbedingt sudo -u www-data php /var/lib/mediawiki/maintenance/run.php update ausführen.
Wie richte ich HTTPS ein?
Installiere certbot und das Apache-Plugin, dann lasse das Zertifikat automatisch einrichten:
sudo apt install certbot python3-certbot-apache
sudo certbot --apacheSetze danach in LocalSettings.php den Server auf HTTPS und erzwinge verschlüsselte Verbindungen:
$wgServer = 'https://wiki.example.com';
$wgForceHTTPS = true;Weitere Details zur TLS-Einrichtung findest du in der Anleitung Let's Encrypt mit certbot – TLS-Zertifikate ohne Reverse-Proxy.
Wie führe ich ein Update auf eine neue MediaWiki-Version durch?
Erstelle zuerst ein vollständiges Backup von Datenbank und /var/lib/mediawiki. Lade dann den neuen Tarball herunter, entpacke ihn nach /var/lib/mediawiki (die alte LocalSettings.php bleibt erhalten) und führe anschließend das Update-Skript aus. Achtung: Von Versionen vor 1.39 ist ein Zwischenschritt auf 1.39 oder 1.43 nötig, bevor du auf 1.45 aktualisieren kannst.
Wie verbessere ich die Performance?
Das bereits installierte php-apcu ermöglicht Objekt-Caching im RAM. Aktiviere es in LocalSettings.php mit $wgMainCacheType = CACHE_ACCEL;. Für größere Wikis mit vielen anonymen Lesern ist zusätzlich $wgUseFileCache = true; sinnvoll, das statisches HTML für nicht eingeloggte Nutzer ablegt.
Wie sperre ich den Maintenance-Ordner ab?
Das ist bereits in der Apache-Konfiguration aus Schritt 6 enthalten: <Directory /var/lib/mediawiki/maintenance> Require all denied </Directory>. Überprüfe mit curl -I http://<server-ip>/mediawiki/maintenance/ – du solltest einen 403 Forbidden erhalten.
Fazit
Eine native LAMP-Installation von MediaWiki auf Ubuntu 24.04 ist in unter einer Stunde abgeschlossen und gibt dir maximale Kontrolle: Du wählst PHP-Einstellungen, Caching-Backend und Extensions ohne Container-Abstraktionsschicht selbst. Der Hauptunterschied zur Docker-Variante liegt im Betrieb – Updates, PHP-Konfigurationsänderungen und Erweiterungen sind direkt auf dem Dateisystem zugänglich. Wer mehrere Dienste auf einem Server betreibt, sollte die Absicherung des Servers selbst nicht vernachlässigen. Dazu passt die Anleitung VPS absichern und härten: UFW, SSH-Keys und Fail2Ban. Als Ergänzung zum nativen LAMP-Stack lohnt sich auch ein Blick auf MySQL- und PostgreSQL-Backups automatisieren, um die MariaDB-Datenbank regelmäßig zu sichern.
Weiterführende Anleitungen und Quellen
- WordPress nativ auf Ubuntu installieren (LAMP ohne Docker) – ähnlicher Stack für WordPress
- Nextcloud nativ auf Ubuntu installieren (LEMP ohne Docker) – Nextcloud als Wiki-/Kollaborations-Alternative
- VPS absichern und härten: UFW, SSH-Keys und Fail2Ban – Basis-Härtung des Ubuntu-Servers
- MySQL & PostgreSQL Backup automatisieren mit cron – Backup-Automatisierung für die Wiki-Datenbank
- MediaWiki Manual: Running MediaWiki on Debian or Ubuntu (offiziell)
- MediaWiki Manual: Installing MediaWiki (offiziell)
- MediaWiki Compatibility (PHP/DB-Versionen) (offiziell)