Mediawiki installieren und nutzen: Unterschied zwischen den Versionen

Aus MySlug
Zur Navigation springen Zur Suche springen
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „Dieses Tutorial wurde nach Gargi.org verschoben: https://www.gargi.org/index.php?title=Mediawiki_installieren_und_nutzen“)
Markierung: Ersetzt
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
<div style="text-align=right; float: right; clear: none; background: none; padding-left:20px">
Dieses Tutorial wurde nach Gargi.org verschoben: https://www.gargi.org/index.php?title=Mediawiki_installieren_und_nutzen
__TOC__
</div><noinclude>
<div style="float:left;text-align:center;padding-right:20px">
[[Bild:mediawiki_logo.jpg|Logo]]
</div>
<br>
Die Mediawiki dürfte jeden von der Wikipedia her bekannt sein. Die meisten nutzen die Software, wenige aber wissen, wie diese funktioniert. Im Grunde schade, da die Mediawiki eine mächtige Software ist, die ihre Muskeln im Bereich der Dokumentenverwaltung spielen lässt. Auch viele kleine technische Projekte nutzen die Mediawiki.
<br><br><br>
Ziel dieses Tutorials wird sein:
:* Installieren der Mediawiki auf dem Webserver an der Konsole (ssh Zugriff)
:* Grundlegende erste Schritte und einfache Anpassungen
:* Erweiterung der Software um ein Mobile Frontend
:* Umzug / Sicherung einer mySQL Datenbank
Voraussetzung ist ein Linux Webserver mit
:* ssh Zugang
:* Apache2 Webserver mit PHP und mySQL
:* Einwenig Geduld
Wenn all diese Dinge vorhanden sind, dann machen wir uns ans Werk ...
<br><br>
==Eine leere Datenbank anlegen==
Zuerst benötigen wir eine neue leere mySQL Datenbank. Hierzu empfiehlt es sich, einen eigenen Datenbank-User (falls noch nicht geschehen) anzulegen. Gebt folgendes als Root ein:
 
<code><pre>mysql -p</pre></code>
Danach an der Konsole folgende Befehle eingeben:
 
<code><pre>CREATE USER 'neueruser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'neueruser'@'localhost';
FLUSH PRIVILEGES;
exit</pre></code>
'''neueruser''': Das ist der Username für den mySQL Nutzer<br>
'''password''': Das ist sein Passwort<br>
''Bitte entsprechend anpassen!''<br><br>
Nun legen wir für den Nutzer noch eine neue Datenbank an:
<code><pre>mysqladmin -uneueruser -p create tabelle01</pre></code>
Beachtet hier die Parameter '''-u''' und '''-p'''. Beim Parameter '''-u''' schreibt Euren Nutzernamen direkt dahinter.
<br><br>
 
==Mediawiki downloaden, entpacken und vorbereiten==
Wir laden nun die Software herunter. Dazu wechselt in das dafür vorgesehene Verzeichnis auf Eurem Server. Ich verwende jetzt einfach einmal das Standard Verzeichnis '''/var/www/''' , Ihr könnt aber ein anderes beliebiges verwenden.
<code><pre>cd /var/www</pre></code>
Wir holen uns nun die Software. Unter dem [https://www.mediawiki.org/wiki/Download Mediawiki Downloadbereich] findet Ihr immer die aktuelle Version und den Downloadlink. Passt folgenden Befehl entsprechend der aktuellen Version an:
<code><pre>wget http://releases.wikimedia.org/mediawiki/1.25/mediawiki-1.25.1.tar.gz
</pre></code>
Entpackt wird das dann mit einem
<code><pre>tar -zvxf mediawiki-1.25.1.tar.gz</pre></code>
Ihr habt jetzt ein neues Verzeichnis mediawiki-1.25.1 . Je nach Geschmack lasst Ihr den Namen so, benennt das Verzeichnis um, oder setzt einen Symlink. Wer gerne mit Versionen experimentiert, wird wohl den Link verwenden, den er dann einfach von Version auf Version umhängt.<br>
Variante umbenennen:
<code><pre>mv /var/www/mediawiki-1.25.1 /var/www/mediawiki</pre></code>
Variante Link:
<code><pre>ln -s /var/www/mediawiki-1.25.1 /var/www/mediawiki</pre></code>
Jetzt verschaffen wir noch einen Zugriff auf das Verzeichnis für unseren Apache Webserver:
<code><pre>chown -R root:www-data /var/www/mediawiki
chmod 750 -R /var/www/mediawiki
</pre></code>
Und noch Schreibrechte für den Upload von Bildern (falls gewünscht):
<code><pre>chmod 770 -R /var/www/mediawiki/images
</pre></code>
<br><br>
 
==Apache 2 konfigurieren==
Jetzt binden wir noch einen Alias in unsere Apache2 Konfiguration mit ein.
<code><pre>nano /etc/apache2/sites-enabled/@000-default</pre></code>
Im Bereich '''<VirtualHost *:80>''' und / oder '''<VirtualHost *:443>''' fügt folgenden Abschnitt mit ein:
  <code><pre>Alias /mediawiki /var/www/mediawiki
      <Directory /var/www/mediawiki>
      Options FollowSymLinks
      AllowOverride All
      DirectoryIndex index.php index.htm index.html
      Order allow,deny
      allow from all
    </Directory>
</pre></code>
Die Zeile '''Alias /mediawiki /var/www/mediawiki''' legt fest, dass Ihr Eure Wiki mittels '''EURE_WEB_ADRESSE/mediawiki''' aufrufen könnt. Das macht Sinn, wenn noch andere Webanwendungen auf dem Server liegen. Wollt Ihr, dass die Wiki direkt über Eure Adresse aufgerufen wird, dann könnt Ihr dies direkt im Abschnitt '''<VirtualHost *:80>''' regeln:
<code><pre>
<VirtualHost *:80>
 
        ServerName EUER_SERVERNAME
        ServerAlias EUER_SERVERNAME XXX.XXX.XX.XX
        ServerAdmin webmaster@localhost
 
        DocumentRoot /var/www/mediawiki
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/mediawiki>
                 
                      ...
                 
        </Directory></pre></code>
Speichert die Änderung ab und startet den Apache neu durch:
<code><pre>/etc/init.d/apache2 restart</pre></code>
<br><br>
 
==Mediawiki einrichten==
Ruft nun Eure Mediawiki in Eurem Browser auf (wir gehen jetzt von der Variante /mediawiki aus, ansonsten einfach nur die Domäne aufrufen)<br><br>
'''EUER_DOMÄNE/mediawiki'''
<br><br>
Wir bekommen sogleich folgenden Hinweis:<br><br>
[[Bild:wiki_01.jpg|Wiki1]]<br><br>
Klickt auf den angezeigten Link und wir können mit der Konfiguration beginnen. Stellt die gewünschte Sprache ein und klickt auf weiter ...<br><br>
[[Bild:wiki_02.jpg|Wiki2]]<br><br>
Auf der folgenden Seite bekommt Ihr unter Umständen Hinweise zu falschen Serverkonfigurationen, oder falls eine Datei fehlen sollte. Wenn alles okay ist, geht auch hier auf weiter...<br><br>
[[Bild:wiki_03.jpg|Wiki3]]<br><br>
Im nächsten Dialog muss nun die Datenbank angebunden werden:<br><br>
[[Bild:wiki_04.jpg|Wiki4]]<br><br>
Danach folgen grundlegende Einstellungen zur Datenbank. Ich empfehle folgende:<br><br>
[[Bild:wiki_05.jpg|Wiki5]]<br><br>
Danach legen wir unseren ersten Nutzer fest und wollen noch weitere Einstellungen vornehmen:<br><br>
[[Bild:wiki_06.jpg|Wiki6]]<br><br>
Im dann folgenden Dialog können noch einige weitere Dinge festgelegt werden. Wichtig zumindest ist die Zugriffsberechtigung. Wollt Ihr, dass nur Ihr die Texte editieren könnt, dann empfiehlt sich folgende Einstellung:<br><br>
[[Bild:wiki_07.jpg|Wiki7]]<br><br>
Prüft nach, ob die Einstellungen zu der E-Mail Adresse passen und aktiviert den Upload von Bildern, falls Ihr dies verwenden möchtet. Auch kann an der Stelle gleich ein anderes Logo festgelegt werden. Dies lässt sich aber im Nachgang auch noch ändern:<br><br>
[[Bild:wiki_08.jpg|Wiki8]]<br><br>
Jetzt sind die Vorbereitungen erledigt. Klickt dann nochmal auf '''Weiter''' um die Installation zu beginnen. Wenn Ihr folgendes Ergebnis seht, ist alles gut gelaufen:<br><br>
[[Bild:wiki_09.jpg|Wiki9]]<br><br>
Das war es. Es wird die LocalSettings.php heruntergeladen:<br><br>
[[Bild:wiki_10.jpg|Wiki10]]<br><br>
Diese muss dann wieder auf Euren Server hochgeladen werden und in das /var/www/mediawiki Verzeichnis kopiert werden. Ihr könnt das auch manuell machen:
<code><pre>vi /var/www/mediawiki/LocalSettings.php</pre></code>
Öffnet die heruntergeladene Datei mit einem Texteditor (unter Windows am besten mit dem [https://notepad-plus-plus.org/ notepad++]) und kopiert den Inhalt in vi. Mit der rechten Maustaste wird alles eingefügt. <br><br>
''Hinweis: Der vi Editor - Editmodus: Taste "i" drücken. Editmodus verlassen: "ESC" drücken. Speichern: Tasten ":w" und beenden mit Tasten ":q"'' <br><br>
Danach noch den Besitzer neu setzen:
<code><pre>chown root:www-data /var/www/mediawiki/LocalSettings.php</pre></code>
Jetzt können wir unsere Wiki aufrufen und uns anmelden:<br><br>
[[Bild:wiki_11.jpg|Wiki11]]<br><br>
 
==Erste Schritte==
===Sidebar bearbeiten===
Um die Sidebar zu editieren und erweitern ruft folgende URL auf, sobald Ihr eingeloggt seid:
<br><br>
'''MEINE_URL/mediawiki//index.php?title=MediaWiki:Sidebar'''
<br><br>
Überpunkte werden mit einem '''*''' markiert, Unterpunkte mit '''**''' . Legt das Menü wie in folgenden Beispiel an:
<code><pre>
* navigation
** mainpage|mainpage-description
** http://www.gargi.org/forum.php|Forum
** Downloads|Downloads
** Links|Links
** Impressum|Impressum
* Raspberry Pi 2
** Raspberry Pi 2 Model B: Blick auf die Platine | Raspberry Pi 2 Model B: Blick auf die Platine
** Raspbian auf dem Raspberry Pi 2 installieren | Raspbian auf dem Raspberry Pi 2 installieren
** Ipv6 aktivieren | Ipv6 aktivieren
** Zusätzliche Festplatte und Spindown | Zusätzliche Festplatte und Spindown
** Automatische Updates | Automatische Updates
</pre></code><br><br>
===Style bearbeiten===
Um Änderungen am Style vorzunehmen, gebt folgende URL ein:
<br><br>
'''MEINE_URL/index.php?title=MediaWiki:Common.css'''
<br><br>
Hier können dann entsprechende Änderungen am CSS vorgenommen werden. Hier einige Beispiele:
<code><pre>
/* CODE Bereich geaendert */
code {
  color: black;
  background-color: #f9f9f9;
  border: 0px;
  border-radius: 0px;
  padding: 0px 0px;
}
 
pre {
padding: 1em;
border: 1px dashed #2f6fab;
color: black;
background-color: #FFE7A3;
line-height: 1.1em;
        font-size: 13px;
}
 
/* Farbe Inhaltsverzeichnis aendern */
#toc,
.toc,
.mw-warning {
border: 1px solid #aaa;
background-color: #d0effb;
padding: 5px;
font-size: 95%;
}
 
/* Text .Inhaltsverzeichnis. an der Spitze des Inhaltsverzeichnisses nicht anzeigen */
#toctitle {display:none;}
 
/* Blocksatz */
.ns-0 p { text-align:justify; }</pre></code>
<br><br>
===Bilder einfügen===
Hier gleich ein Beispiel, wie man ein Bild auf der linken Seite einfügt (Text umfließt auf der rechten Seite):
<code><pre><div style="float:left;text-align:center;padding-right:20px">
[[Bild:nslu2_1.jpg|NSLU2]]
<br />
''Die NSLU2 im Größenvergleich''</div></pre></code>
Das gleiche auf der rechten Seite (Text umfließt dann links):
<code><pre><div style="float:right;text-align:center;padding-left:20px">
[[Bild:nslu2_1.jpg|NSLU2]]
<br />
''Die NSLU2 im Größenvergleich''</div></pre></code>
Ein Bild generell einfügen:
<code><pre>[[Bild:dateiname.jpg|BILDNAME]]</pre></code>
<br /><br />
===Code Tag===
Der Code Tag lautet
<code><pre> <code><pre>...< /pre>< /code> </pre></code>
''(Leerzeichen vor den '''/''' weglassen!!!)''
<br><br>
===Inhaltsverzeichnis einfügen===
Hierzu zu Begin eines Textes folgenden Code einfügen:
 
<code><pre>
<div style="text-align=right; float: right; clear: none; {{#if:{{{Breite|}}}|max-width: {{{Breite}}};}} margin: .5em 0 1em 1em; background: none; padding-left:20px">
__TOC__
</div><noinclude></pre></code>
<br><br>
===Inhaltsverzeichnis unterdrücken===
Bei mehr als 3 Überschriften wird automatisch ein Inhaltsverzeichnis angelegt. Dieses kann mit dem Code
<code><pre>__NOTOC__</pre></code>
unterbunden werden.
<br><br>
===Listfunktion===
Hier gibt es im Grunde folgende Möglichkeiten:
<code><pre>
Das ist eine Liste
* Eintrag 1
* Eintrag 2
* Eintrag 3
** Eintrag 3.1
** Eintrag 3.2
* Eintrag 4
</pre></code>
'''Ergibt:'''<br>
Das ist eine Liste
* Eintrag 1
* Eintrag 2
* Eintrag 3
** Eintrag 3.1
** Eintrag 3.2
* Eintrag 4
<br><br>
Um die Liste etwas einzurücken:
<code><pre>
Das ist eine Liste
:* Eintrag 1
:* Eintrag 2
:* Eintrag 3
:** Eintrag 3.1
:** Eintrag 3.2
:* Eintrag 4
</pre></code>
'''Ergibt:'''<br>
Das ist eine Liste
:* Eintrag 1
:* Eintrag 2
:* Eintrag 3
:** Eintrag 3.1
:** Eintrag 3.2
:* Eintrag 4
<br><br>
Numerische Variante:
<code><pre>
Das ist eine Liste
# Eintrag 1
# Eintrag 2
# Eintrag 3
## Eintrag 3.1
## Eintrag 3.2
# Eintrag 4
</pre></code>
'''Ergibt:'''<br>
Das ist eine Liste
# Eintrag 1
# Eintrag 2
# Eintrag 3
## Eintrag 3.1
## Eintrag 3.2
# Eintrag 4
<br><br>
===Einen Link einfügen===
Einen Link setzt Ihr wie folgt:
<code><pre>[http://Adresse/des/Links BEZEICHNUNG]
[http://www.gargi.org Gargi's Homepage]</pre></code>
Ergibt: [http://www.gargi.org Gargi's Homepage]<br><br>
 
==Mobile Frontend installieren==
Das [https://www.mediawiki.org/wiki/Extension:MobileFrontend Mobile Frontend] ist eine Erweiterung für die Mediawiki. Ist diese aktiviert bekommen Besucher mit einem mobilen Endgerät die Seite entsprechend angepasst angezeigt. Allerdings ist in der mobilen Ansicht keine Sidebar mit den Menüeinträgen vorhanden. Die Philosophie ist vielmehr die, dass der User beispielsweise über eine Suchmaschine auf den gesuchten Seiteninhalt stößt und dann eine angepasste Version der Seite angezeigt bekommt.<br>
Um die Erweiterung zu installieren müsst Ihr in das Extensions Verzeichnis der Mediawiki wechseln:
<code><pre>cd /var/www/mediawiki/extensions</pre></code>
Ladet die Erweiterung herunter:
<code><pre>wget https://extdist.wmflabs.org/dist/extensions/MobileFrontend-REL1_25-c193468.tar.gz</pre></code>
''Die aktuelle URL erhaltet Ihr hier: [https://www.mediawiki.org/wiki/Extension:MobileFrontend Mobile Frontend]''
<br><br>
Packt das Paket aus:
<code><pre>tar -xzf MobileFrontend-REL1_25-c193468.tar.gz</pre></code>
Setzt nun den Benutzer richtig:
<code><pre>chown -R /var/www/mediawiki/extensions/MobileFrontend</pre></code>
Nun müssen wir nur noch dem Wiki die neue Erweiterung bekannt machen. Dazu editieren wir die '''LocalSettings.php''':
<code><pre>nano /var/www/mediawiki/LocalSettings.php</pre></code>
Fügt dort folgende Zeilen ein:
<br><br>
'''require_once "$IP/extensions/MobileFrontend/MobileFrontend.php";'''<br>
'''$wgMFAutodetectMobileView = true;'''
<br><br>
Das war es auch schon. Wenn Ihr nun mit einem Smartphone Eure Seite aufruft, sollte die Mediawiki jetzt etwas anders aussehen.
<br><br>
[[Bild:mobil.jpg|mobil]]
<br><br>
 
==https einrichten (nebst htaccess Schutz)==
Wenn wir noch eine Verbindung über https zulassen wollen, müssen wir dem Apache https als Erweiterung beibringen. Wechselt dazu in Euer Root Home:
 
<code><pre>cd /root</pre></code>
Danach legen wir unser Serverzertifikat an:
 
<code><pre>openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr</pre></code>
Jetzt werdet Ihr einige Angaben abgefragt:
<br><br>
Country Name (Ländercode): = '''DE'''<br>
State or Province Name (Bundesland): = '''zB Bayern'''<br>
Locality Name, eg. City (Stadt): = '''zB Nuernberg'''<br>
Organization Name (Firmenname): = '''hier irgendwas eingeben wie privat, zuhause etc.'''<br>
Organizational Unit Name (Abteilung) = '''bleibt leer'''<br>
Common Name, eg. YOUR Name: = '''Euer Servername'''<br>
Email Adress: = '''eine E-Mail Adresse'''<br>
A challenge password: = '''bleibt leer'''<br>
An optional company name: = '''bleibt leer'''
<br><br>
Dann generieren wir das Zertifikat. Ich mache das gleich mal für 10 Jahre, dann ist Ruhe:
 
<code><pre>openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt</pre></code>
Noch ein paar Rechte festlegen:
 
<code><pre>chmod 400 server.key</pre></code>
Jetzt müssen wir noch ein paar Änderungen in einigen Apache Konfigurationsdateien vornehmen:
 
<code><pre>nano /etc/apache2/sites-enabled/000-default</pre></code>
Am Ende der Konfigurationsdatei ergänzt folgende neue Sektion:
 
<code><pre><VirtualHost *:443>
    DocumentRoot /var/www
    ServerName EUER_SERVERNAME
    SSLEngine on
    SSLCertificateFile /root/server.crt
    SSLCertificateKeyFile /root/server.key
 
  Alias /mediawiki /var/www/mediawiki
      <Directory /var/www/mediawiki>
      Options FollowSymLinks
      AllowOverride All
      DirectoryIndex index.php index.htm index.html
      Order allow,deny
      allow from all
    </Directory>
 
</VirtualHost></pre></code>
EUER_SERVERNAME muss noch entsprechend eingetragen werden. Speichert die Änderung und editiert die '''ports.conf'''
 
<code><pre>nano /etc/apache2/ports.conf</pre></code>
und fügt ganz zum Schluss folgende Zeile ein:
 
'''NameVirtualHost *:443'''
 
Nun aktivieren wir das SSL Modul:
 
<code><pre>a2enmod ssl</pre></code>
Der Apache muss jetzt neu gestartet werden:
 
<code><pre>/etc/init.d/apache2 restart</pre></code>
Beachtet, dass das natürlich kein gekauftes Zertifikat ist. Euer Browser wird hier eine entsprechende Warnmeldung bringen. Aber Ihr wisst damit, warum diese Meldung kommt.
<br><br>
Wenn Ihr generell auf '''https''' umleiten wollt, auch wenn die Adresse über http abgerufen wird, müsst Ihr im Apache das Modul Rewrite aktivieren:
 
<code><pre>a2enmod rewrite
/etc/init.d/apache2 restart</pre></code>
Editiert die '''.htaccess''':
 
<code><pre>nano /var/www/mediawiki/.htaccess</pre></code>
Fügt direkt unter RewriteEngine on diese Zeilen ein:
 
<code><pre>RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]</pre></code>
Nun werden sämtliche Anfragen auf das verschlüsselte https Protokoll umgeleitet.
<br><br>
Zu guter Letzt wollen wir generell verhindern, dass man von außen einfach einen Zugriff auf das Login der Owncloud bekommt. Wir blockieren das deshalb mit .htaccess und aktivieren eine darüberliegende Passwortabfrage.
<br><br>
Fügt deshalb in der '''.htaccess''' noch folgendes oben ein:
 
<code><pre>
AuthType Basic
AuthName mediawiki
AuthUserFile /var/www/mediawiki/.htpasswd
require valid-user</pre></code>
Ihr seht, dass der Pfad zu dem dann erzeugtem Passwort im Dokumentenroot der Webanwendung liegt. Um das einwenig sicher zu machen, könnt Ihr durchaus dieses in ein anderes Verzeichnis legen, das außerhalb des Dokumentenroot liegt.
<br><br>
Das Passwort legt Ihr dann in diesem Verzeichnis (mittels cd dorthin wechseln!) mit einem
 
<code><pre>htpasswd -c .htpasswd username</pre></code>
an. Beim Befehl den Usernamen entsprechend Euren Vorstellungen ändern! Jetzt werdet Ihr zusätzlich nach einem Passwort gefragt.
<br><br>
 
==Umzug oder Sicherung einer mySQL Datenbank==
Sicherlich gibt es viele Hilfsmittel, um eine Datenbank von einem Server auf den anderen um zu ziehen. Wer aber Zugriff über eine Shell auf den Server hat, der kann das mit wenigen Schritten auch auf der Konsole erledigen. Um genau zu sein, drei Schritte. Dazu muss eine leere Datenbank auf dem Zielrechner angelegt sein (db_neu).
 
===Alte Datenbank (db_alt) auf alten Server dumpen/wegschreiben===
<code><pre>mysqldump --user=DB_USERNAME --password=PASSWORT db_alt > dump.sql</pre></code>
(Username der ALTEN Datenbank!)
<br><br>
 
===Dump von Server alt auf neu kopieren===
<code><pre>scp dump.sql IP_SERVER_NEU:/beliebiges/zielverzeichnis/</pre></code>
<br>
===Datenbank auf neuen Server in neu DB übertragen===
<code><pre>mysql -p -uDB_USERNAME db_neu < /beliebiges/zielverzeichnis/dump.sql</pre></code>
(Username der NEUEN Datenbank!)
<br><br>
Damit sind die Daten in der neuen Datenbank. Wie schnell das geht hängt von der Größe der DB ab und natürlich auch von der Geschwindigkeit der Rechner.
<br><br>
===Datenbankpflege===
Nach der Übertragung der Datenbank sollte noch einwenig Datenbankpflege betrieben werden. Prüft erstmal, ob alles okay ist:
 
<code><pre>mysqlcheck -hlocalhost -uDB_USER -pPASSWORT db_neu</pre></code>
Sollte es Fehler anzeigen, dann versucht diese mittels folgenden Befehl zu reparieren:
 
<code><pre>mysqlcheck -hlocalhost -uDB_USER -pPASSWORT db_neu --auto-repair</pre></code>
 
Danach sollte die Anwendung wieder sauber auf die Datenbank zugreifen können.
<br><br>

Aktuelle Version vom 30. Juni 2018, 12:36 Uhr

Dieses Tutorial wurde nach Gargi.org verschoben: https://www.gargi.org/index.php?title=Mediawiki_installieren_und_nutzen