Technologieführer

MediaWiki auf CentOS 7 mit Nginx installieren

7 min read Systemadministration Aktualisiert 18 Oct 2025
MediaWiki auf CentOS 7 mit Nginx installieren
MediaWiki auf CentOS 7 mit Nginx installieren

In dieser Anleitung installieren und konfigurieren Sie MediaWiki unter CentOS 7 mit dem Nginx-Webserver, PHP-FPM, MariaDB und einem kostenlosen Let’s Encrypt TLS-Zertifikat. Die Schritt-für-Schritt-Anleitung enthält zusätzlich Hinweise zu Berechtigungen, SELinux, automatischer Zertifikatserneuerung, Fehlerbehebung und Rollout-Checklisten.

Inhalt

  • Was wir tun werden
  • Voraussetzungen
  • Schritt 1 - Nginx installieren
  • Schritt 2 - PHP-FPM installieren und konfigurieren
  • Schritt 3 - MariaDB installieren und Datenbank anlegen
  • Schritt 4 - MediaWiki herunterladen und Abhängigkeiten installieren
  • Schritt 5 - Let’s Encrypt SSL-Zertifikat erzeugen
  • Schritt 6 - Nginx Virtual Host konfigurieren
  • Schritt 7 - Webbasierte MediaWiki-Installation
  • Schritt 8 - Standard-Skin installieren
  • Zusätzliche Empfehlungen und Sicherheitshärtung
  • Fehlerbehebung und Tests
  • Rollout-Checklisten nach Rolle
  • Kurze Zusammenfassung

Was wir tun werden

  1. Nginx auf CentOS 7 installieren
  2. PHP-FPM installieren und konfigurieren
  3. MariaDB installieren und konfigurieren
  4. MediaWiki herunterladen und konfigurieren
  5. Let’s Encrypt SSL-Zertifikat erzeugen
  6. Nginx Virtual Host für MediaWiki konfigurieren
  7. MediaWiki über den Browser installieren
  8. Standard-Skin konfigurieren

Voraussetzungen

  • CentOS 7 Server mit Internetzugang
  • Root- oder sudo-Rechte
  • Eine eigene Domain oder Subdomain, die auf den Server zeigt (A/AAAA Records)

Wichtige Begriffe in einer Zeile

  • PHP-FPM: PHP FastCGI Process Manager, führt PHP-Code als Dienst aus.
  • Let’s Encrypt: Kostenloser ACME-basierter Zertifikatanbieter für TLS-Zertifikate.

Schritt 1 - Nginx installieren

Für MediaWiki verwenden wir Nginx. Auf CentOS 7 wird Nginx in der Regel aus dem EPEL-Repository installiert.

Aktualisieren Sie die Pakete und installieren Sie EPEL:

yum -y update  
yum -y install epel-release

Installieren Sie Nginx:

yum -y install nginx

Starten und aktivieren Sie Nginx:

systemctl start nginx  
systemctl enable nginx

Prüfen Sie die Netzwerk- und Listening-Ports:

netstat -plntu

Nginx listening ports and service output

Wichtig

  • Ersetzen Sie Beispiel-Domains in späteren Konfigurationsdateien durch Ihre eigene Domain.
  • Falls Firewalld aktiv ist, erlauben Sie HTTP/HTTPS (siehe später).

Schritt 2 - PHP-FPM installieren und konfigurieren

Wir verwenden in diesem Tutorial PHP 7.0 aus dem Webtatic-Repository (ältere Distributionen nutzen andere Quellen). Falls Sie neuere PHP-Versionen einsetzen wollen, passen Sie Paketnamen entsprechend an.

Fügen Sie das Webtatic-Repository hinzu:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Installieren Sie PHP 7.0 und nötige Erweiterungen:

yum -y install ImageMagick php70w-fpm php70w-intl php70w-xml php70w-curl php70w-gd php70w-mbstring php70w-mysql php70w-cli php70w-pear php70w-pecl-apcu

Konfiguration anpassen

  1. Öffnen Sie die php.ini:
vim /etc/php.ini

Ändern Sie die Einstellung:

cgi.fix_pathinfo=0
  1. PHP-FPM pool anpassen:
vim /etc/php-fpm.d/www.conf

Ändern Sie Benutzer und Gruppe auf nginx:

user = nginx  
group = nginx

Setzen Sie den Listener auf einen Unix-Socket:

listen = /run/php-fpm/php-fpm.sock

Stellen Sie Besitzrechte und Modus des Sockets ein:

listen.owner = nginx  
listen.group = nginx  
listen.mode = 0660

Umgebungsvariablen aktivieren (optional):

env[HOSTNAME] = $HOSTNAME  
env[PATH] = /usr/local/bin:/usr/bin:/bin  
env[TMP] = /tmp  
env[TMPDIR] = /tmp  
env[TEMP] = /tmp

Erstellen Sie das Session-Verzeichnis und setzen Sie Rechte:

mkdir -p /var/lib/php/session/  
chown -R nginx:nginx /var/lib/php/session/

Starten und aktivieren Sie PHP-FPM:

systemctl start php-fpm  
systemctl enable php-fpm

Prüfen Sie, ob der Socket existiert:

netstat -pl | grep php

php-fpm socket listing

Hinweis

  • Wenn Sie SELinux aktiv haben, beachten Sie die SELinux-Berechtigungen weiter unten.

Schritt 3 - MariaDB installieren und Datenbank anlegen

MediaWiki unterstützt MySQL/MariaDB oder SQLite. Für Produktionswikis empfiehlt sich MariaDB.

MariaDB installieren:

yum -y install mariadb mariadb-server

Starten und aktivieren:

systemctl start mariadb  
systemctl enable mariadb

Sichern Sie die Installation und setzen Sie das root-Passwort:

mysql_secure_installation

Antworten Sie auf die Fragen (in der Regel Y für alle empfohlenen Schritte):

Set root password? [Y/n] Y  
TYPE ROOT PASSWORD HERE  

Remove anonymous users? [Y/n] Y  
Disallow root login remotely? [Y/n] Y  
Remove test database and access to it? [Y/n] Y  
Reload privilege tables now? [Y/n] Y

Datenbank und Nutzer für MediaWiki anlegen

Melden Sie sich als root bei MySQL/MariaDB an:

mysql -u root -p  
TYPE YOUR ROOT PASSWORD

Führen Sie dann die SQL-Befehle aus:

create database mediawikidb;  
grant all privileges on mediawikidb.* to mediawiki@'localhost' identified by 'mypassword';  
flush privileges;  
exit;

MariaDB database creation screenshot

Sicherheitshinweis

  • Verwenden Sie in Produktion ein starkes, komplexes Passwort anstelle von ‘mypassword’.
  • Staaten Sie die Zugriffsrechte restriktiv: Erlauben Sie nur localhost-Verbindungen, wenn die Anwendung lokal läuft.

Schritt 4 - MediaWiki herunterladen und Abhängigkeiten installieren

Installieren Sie git, zip, unzip und Composer:

yum -y install git zip unzip composer

Projektverzeichnis anlegen und MediaWiki aus dem Repository klonen:

mkdir -p /var/www/mediawiki  
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki

Installieren Sie PHP-Abhängigkeiten mit Composer (Produktionsmodus):

cd /var/www/mediawiki  
composer install --no-dev

Composer install screenshot

Setzen Sie die Besitzrechte auf nginx:

chown -R nginx:nginx /var/www/mediawiki

Hinweis zu Dateisystemrechten

  • Einige Installationsanleitungen fordern www-data; bei Nginx auf CentOS ist die Standard-Benutzergruppe meist nginx. Stellen Sie sicher, dass Besitzer und Gruppe übereinstimmen.

Schritt 5 - Let’s Encrypt SSL-Zertifikat erzeugen

MediaWiki sollte über HTTPS erreichbar sein. Wir verwenden das Let’s Encrypt-Tool zur Ausstellung eines kostenlosen Zertifikats.

Installieren Sie das Let’s Encrypt-Client-Paket (siehe Distribution-spezifische Pakete; alternativ certbot):

yum -y install letsencrypt

Stoppen Sie vorübergehend Nginx, damit der ACME-Client einen temporären Webserver starten oder Dateien ablegen kann:

systemctl stop nginx

Stellen Sie sicher, dass Firewall-Regeln HTTP/HTTPS erlauben:

firewall-cmd --add-service=http --permanent  
firewall-cmd --add-service=https --permanent  
firewall-cmd --reload

Firewall services added screenshot

Zertifikat erzeugen:

letsencrypt certonly
  • Wählen Sie den ACME-Authentifizierungsmechanismus (z. B. temporärer Webserver) entsprechend.
  • Geben Sie Ihre E-Mail-Adresse ein und akzeptieren Sie die Nutzungsbedingungen.
  • Geben Sie Ihre Domain (z. B. wiki.example.com) an.

Nach erfolgreicher Ausstellung finden Sie die Zertifikate unter /etc/letsencrypt/live/

Let's Encrypt success screenshot

Automatische Erneuerung

  • Let’s Encrypt-Zertifikate gelten 90 Tage. Automatisieren Sie die Erneuerung per cron oder systemd-timer. Beispiel Cronjob, täglich prüfen:
0 3 * * * /usr/bin/letsencrypt renew --quiet && systemctl reload nginx

Hinweis

  • Manche Distributionen liefern certbot anstelle von letsencrypt. Bei neueren Systemen bevorzugen Sie certbot.

Schritt 6 - Nginx Virtual Host konfigurieren

Erstellen Sie eine neue Nginx-Konfigurationsdatei unter /etc/nginx/conf.d/mediawiki.conf und passen Sie die Domain und Pfade an. Beispielkonfiguration:

# HTTP Request will be Redirected to the HTTPS  
server {  
    listen 80;  
    listen [::]:80;  
    server_name wiki.hakase-labs.co;  
    return 301 https://$host$request_uri;  
}  
  
# HTTPS Configuration  
server {  
  
    listen 443 ssl;  
    listen [::]:443;  
      
    server_name wiki.hakase-labs.co;  
    root /var/www/mediawiki;  
  
    index index.php;  
    autoindex off;  
  
    # SSL Certificate Configuration  
    ssl_certificate /etc/letsencrypt/live/wiki.hakase-labs.co/fullchain.pem;  
    ssl_certificate_key /etc/letsencrypt/live/wiki.hakase-labs.co/privkey.pem;  
  
    client_max_body_size 5m;  
    client_body_timeout 60;  
  
    location / {  
        try_files $uri $uri/ @rewrite;  
    }  
  
    location @rewrite {  
        rewrite ^/(.*)$ /index.php?title=$1&$args;  
    }  
  
    location ^~ /maintenance/ {  
        return 403;  
    }  
  
    # PHP-FPM Configuration Nginx  
    location ~ \.php$ {  
        try_files $uri =404;  
        fastcgi_split_path_info ^(.+\.php)(/.+)$;  
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;  
        fastcgi_index index.php;  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        include fastcgi_params;  
    }  
  
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {  
        try_files $uri /index.php;  
        expires max;  
        log_not_found off;  
    }  
  
    location = /_.gif {  
        expires max;  
        empty_gif;  
    }  
  
    location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {  
        deny all;  
    }  
  
    location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {  
        internal;  
    }  
  
    # Security for 'image' directory  
    location ~* ^/images/.*.(html|htm|shtml|php)$ {  
        types { }  
        default_type text/plain;  
    }  
  
    # Security for 'image' directory  
    location ^~ /images/ {  
        try_files $uri /index.php;  
    }  
  
}

Anschließend Nginx-Konfiguration testen und Nginx neu starten:

nginx -t  
systemctl restart nginx

Nginx test and restart screenshot

Wichtig

  • Ersetzen Sie wiki.hakase-labs.co durch Ihre eigene Domain.
  • Passen Sie Pfade zu SSL-Dateien an, wenn Sie ein anderes Zertifikat nutzen.

Schritt 7 - Webbasierte MediaWiki-Installation

Öffnen Sie im Browser Ihre Domain. Die HTTP-Anfrage wird auf HTTPS umgeleitet. Klicken Sie auf Set up the wiki.

Beispiel-URL

http://wiki.hakase-labs.co/

MediaWiki Setup Start

Schritt: Sprache auswählen

Wählen Sie Englisch (en) oder eine andere Sprache und klicken Sie Continue.

Language selection

Umgebungsprüfung

Stellen Sie sicher, dass alle Prüfungen erfolgreich sind und klicken Sie Continue.

Environment check

Datenbank-Konfiguration

Geben Sie die zuvor angelegten Datenbankdetails ein:

  • Datenbankname: mediawikidb
  • Benutzer: mediawiki
  • Passwort: mypassword

Database configuration

Admin-Benutzer anlegen

Legen Sie einen Administrator mit E-Mail und Passwort an.

Admin creation

Installation abschließen

Klicken Sie auf Continue, bis die Installation abgeschlossen ist. Laden Sie die angebotene Datei LocalSettings.php herunter.

Installation complete

LocalSettings.php hochladen

Kopieren Sie die LocalSettings.php in das MediaWiki-Verzeichnis auf dem Server. Beispiel mit scp:

scp LocalSettings.php [email protected]:/var/www/mediawiki/  
chown -R www-data:www-data /var/www/mediawiki

Hinweis zu Besitzrechten

  • In vorherigen Schritten nutzten wir nginx:nginx als Besitzer. Stellen Sie sicher, dass der Webserver-Benutzer (nginx) Lesezugriff hat. Ersetzen Sie gegebenenfalls www-data durch nginx.

Rufen Sie nun Ihre Wiki-Seite auf und prüfen Sie die Startseite.

MediaWiki start page

Schritt 8 - Standard-Skin installieren

Klonen Sie das Vector-Theme in das skins-Verzeichnis:

cd /var/www/mediawiki/skins/  
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector

Setzen Sie die Rechte:

chown -R nginx:nginx /var/www/mediawiki/skins/

Fügen Sie am Ende von LocalSettings.php die Ladeanweisung hinzu:

vim /var/www/mediawiki/LocalSettings.php

Und fügen Sie ein:

wfLoadSkin( 'Vector' );

Vector skin screenshot

Aktualisieren Sie im Browser die Seite. Das Wiki sollte jetzt im Vector-Design erscheinen.

MediaWiki Vector skin

Die MediaWiki-Installation mit Nginx auf CentOS 7 ist nun abgeschlossen.

Zusätzliche Empfehlungen und Sicherheitshärtung

  • Benutzer und Rechte: Vermeiden Sie zu großzügige Dateirechte. Nur nginx sollte Schreibzugriff auf Verzeichnisse haben, die Uploads speichern.
  • SELinux: Falls SELinux aktiviert ist, setzen Sie passend: restorecon -R /var/www/mediawiki und ggf. httpd_sys_rw_content_t für Upload-Verzeichnisse.
  • Firewall: Erlauben Sie gezielt nur 80/443 und SSH.
  • Backups: Sichern Sie regelmäßig MySQL-Dumps (mysqldump) und das Verzeichnis LocalSettings.php sowie hochgeladene Dateien.
  • Updates: Aktualisieren Sie MediaWiki und Erweiterungen testweise in einer Staging-Umgebung.
  • Monitoring: Überwachen Sie Logs (/var/log/nginx/error.log, /var/log/nginx/access.log, php-fpm-logs).

Mini-Methodologie für produktive Rollouts

  1. Testumgebung identisch zur Produktion aufsetzen.
  2. Upgrades zuerst in Test, dann in Produktion nach Checkliste bereitstellen.
  3. Backups erstellen und Wiederherstellung testen.
  4. Wartungsfenster kommunizieren.

Fehlerbehebung häufige Probleme

Problem: 502 Bad Gateway

  • Ursache: PHP-FPM nicht gestartet oder Socket-Pfad stimmt nicht.
  • Lösung: Prüfen Sie systemctl status php-fpm und den Pfad /run/php-fpm/php-fpm.sock sowie Besitzer und Rechte.

Problem: 403 bei Bildern oder Uploads

  • Ursache: Nginx-Deny-Regeln oder falsche Dateirechte/SELinux-Kontext.
  • Lösung: Prüfen Sie Nginx-Konfiguration, Dateirechte und führen Sie restorecon aus.

Problem: Zertifikatfehler nach Erneuerung

  • Ursache: Nginx nicht neu geladen nach Renewal.
  • Lösung: Automatisieren Sie erneuern + reload (siehe Cron-Beispiel oben).

Problem: Composer-Abhängigkeiten fehlen

  • Ursache: composer install nicht ausgeführt oder fehlende PHP-Erweiterungen.
  • Lösung: composer install –no-dev im Projektverzeichnis ausführen und php -m prüfen.

Testfälle und Abnahmekriterien

  • HTTP leitet auf HTTPS weiter.
  • Startseite lädt ohne PHP-Fehler.
  • Anmeldung als Admin möglich.
  • Bilder-Upload funktioniert.
  • Datenbankeinträge werden gespeichert und sind persistent.

Rollout-Checklisten nach Rolle

Systemadministrator

  • DNS auf Server-IP zeigen
  • Firewall-Regeln prüfen
  • Nginx, PHP-FPM und MariaDB-Dienste laufen lassen
  • Automatische Zertifikatserneuerung konfigurieren

Anwendungsbetreuer

  • LocalSettings.php prüfen
  • Erweiterungen in Testumgebung installieren
  • Backup-/Restore-Tests ausführen

Entwickler

  • Composer-Abhängigkeiten verwalten
  • Wartungsmodus während Updates setzen
  • Versionskontrolle für Konfigurationsänderungen

Kompatibilität und Migrationstipps

  • MediaWiki 1.30 ist eine ältere Version; prüfen Sie die Kompatibilität von Extensions mit der gewählten Version.
  • Bei Migration von SQLite auf MariaDB: Export und Import der Seiten per Maintenance-Skripte oder API.

Kurze Zusammenfassung

Sie haben Nginx, PHP-FPM, MariaDB installiert, MediaWiki aus dem offiziellen Repo bereitgestellt, ein Let’s Encrypt-Zertifikat erzeugt und Nginx so konfiguriert, dass MediaWiki sicher über HTTPS läuft. Ergänzend finden Sie Hinweise zu Automatisierung, Sicherheit, Fehlersuche und Rollout-Checklisten.

Wichtige Referenz

Ende

Autor
Redaktion

Ähnliche Materialien

Display‑Treiber nach Windows‑Update reparieren
Troubleshooting

Display‑Treiber nach Windows‑Update reparieren

Apache Cassandra auf CentOS 8 installieren
Datenbanken

Apache Cassandra auf CentOS 8 installieren

Ethernet langsamer als WLAN? Ursachen & Fixes
Netzwerk

Ethernet langsamer als WLAN? Ursachen & Fixes

Vorlagen in Google Docs erstellen
Produktivität

Vorlagen in Google Docs erstellen

OST in PST konvertieren & Outlook wiederherstellen
E-Mail-Wiederherstellung

OST in PST konvertieren & Outlook wiederherstellen

Gefälschter USB‑Ethernet‑Adapter stiehlt PC‑Passwörter
IT-Sicherheit

Gefälschter USB‑Ethernet‑Adapter stiehlt PC‑Passwörter