OptiYummy-Update 1.23 auf 1.31

Aus OptiYummy
Zur Navigation springenZur Suche springen

Zielpraezisierung

Im Februar 2016 wurde das Optimierungsportal OptiYummy mittels des STRATO AppWizard von der MediaWiki-Version 1.19 auf die damals von STRATO unterstützte "long term support release (LTS)" 1.23 übertragen. Der aufwändige Update-Prozess wurde ausführlich beschrieben (Siehe: Update 2016 (Version 1.19 auf 1.23).

Inzwischen besteht die Möglichkeit, mittels des STRATO AppWizard die MediWiki LTS-Version 1.31 zu installieren (Siehe: Versionszeitplan). Eine direkte Update-Möglichkeit von der Version 1.23 existiert nicht:

  • Die MediaWiki-Version 1.31 soll als leeres System installiert und in seiner Oberfläche entsprechend des bisherigen OptiYummy-System konfiguriert werden. Dafür wird die bisher noch ungenutzte Domäne optiyummy.eu genutzt, so dass keine Störungen im aktuell laufenden OptiYummy-System entstehen können.
  • Danach sollen die Inhalte des OptiYummy-Systems aus der Mediawiki-Version 1.23 übernommen werden. Dies wird sicher zum schwierigsten Teil des Update-Prozesses!

Installation des MediaWiki-Systems mit STRATO-AppWizard

Das Web-Interface für Hosting-Pakete wird von STRATO kontinuierlich modifiziert. Diese Beschreibung entspricht dem Stand vom Februar 2020:

  • Damit eine Domain (hier: optiyummy.eu) für das neue Wiki-System verwendet werden kann, darf sie nicht extern umgeleitet oder von anderen Anwendungen belegt sein! Dies ist über die Domain-Verwaltung des Webhosting-Paketes zu realisieren (interne Umleitung z.B. auf /.
  • Auf der Übersichtsseite zum Web-Hosting-Paket ist die Schaltfläche zum Starten des AppWizard nicht zu übersehen.
  • Auf der STRATO-AppWizard-Seite werden zuerst die installierten eigenen Anwendungen aufgelistet. * Darunter findet man eine Liste der installierbaren Anwendungen, wozu an vorletzter Stelle "Wikis" gehören.
  • Hier stand nur die MediaWiki Version 1.31.0-88 zum Installieren zur Verfügung. Als Voraussetzung wird die vorherige Umstellung auf die PHP-Version PHP7 genannt, welche bereits erfolgt war.
  • Nach Wahl von Installieren erfolgt die Installation in 4 Schritten:
1. MediaWiki - Einstellungen zur Administration
  • Bezeichnung: OptiYummy
  • Benutzername: WikiSysop
  • Passwort: ganz geheim
  • E-Mail Adresse: admin@domain.de
2. MediaWiki - Domain Einstellungen
  • Die bestehende Domäne optiyummy.eu wurde unter obigen Voraussetzungen als verwendbar für das WikiSystem angeboten.
  • Nach Auswahl der Domäne genügt ein Weiter.
3. MediaWiki - Datenbank
  • Den Kommentar "Datenbank für OptiYummy" kann man beibehalten.
4. MediaWiki - Fertigstellen
  • Man muss die Lizenz-Bedingungen akzeptieren.
  • Als Verzeichnis für das WikiSystem wurde im Beispiel mediawiki_10 automatisch vergeben.
  • Das Fertigstellen dauert nur einige Sekunden.

Danach steht ein MediaWiki-System in seiner Grundeinstellung zur Verfügung.

Wiki-System individuell konfigurieren

Man benötigt den Zugang direkt auf die Dateien des Wiki-Systems im Homeverzeichnis. Von STRATO werden für den Zugriff auf das Homeverzeichnis sowohl ein FTP- als auch ein SSH-Zugang zur Verfügung gestellt:

  • Server: ftp.strato.de bzw. ssh.strato.de
  • Benutzername: Domän-Name (im Beispiel: www.optiyummy.eu)

Man sollte den verschlüsselten Zugang per SSH verwenden! Sehr komfortabel ist dabei z.B. die Nutzung des Total-Commanders.

Vergeben von Nutzerrechten

Die folgenden Einstellungen sind in der Datei LocalSettings.php vorzunehmen, welche sich im Wiki-Verzeichnis mediawiki_10 befindet. Dazu wurde mittels Total-Commander eine lokale Kopie von LocalSettings.php erzeugt. Diese wird schrittweise verändert und zum Test der Wirkung wieder per FTP in das Wiki-Verzeichnis kopiert.

Wichtig: Standardmäßig können auch anonyme Nutzer Wiki-Seiten editieren! Deshalb sollte man als erste Aktionen die Nutzerrechte ändern. Dazu ergänzt man in der Datei LocalSettings.php am Ende die Zeilen:

## Benutzerverwaltung
## Nur noch angemeldeten Benutzern das Bearbeiten erlauben
$wgGroupPermissions['*']['edit'] = false;
## Neuanmeldungen verbieten
$wgGroupPermissions['*']['createaccount'] = false;
## Anlegen neuer Seiten nur für angemeldete Nutzer
$wgGroupPermissions['*']['createpage'] = false;
## Anlegen neuer Diskussionen nur für angemeldete Nutzer
$wgGroupPermissions['*']['createtalk'] = false;
## Verstecken der Edit-Section-Links vor nichtangemeldeten Nutzern
$wgDefaultUserOptions['editsection'] = false;
## Ausschalten der Links auf IP-Diskussionsseiten rechts oben
$wgShowIPinHeader = false;

Das Versenden von E_Mails wurde abgeschalten:

$wgEnableEmail      = false;
$wgEnableUserEmail  = false;

Es wird ein Creative Commons Lizenzmodell für die Inhalte benutzt. Zulässig ist folgende Verwertung der Inhalte:

  • Verteilung: kopieren, verbreiten und öffentlich Aufführen
  • Modifikation: Anpassung der Inhalte an die eigene Arbeit
  • Kommerzielle Verwertung

Unter der Bedingung:

  • der Namensnennung des Autors oder des Lizenzsgebers,
  • ohne den Eindruck zu erwecken, bei der Verwertung Unterstützung erhalten zu haben.

Dazu sind folgenden Variablen in LocalSettings.php zu ergänzen:

$wgRightsUrl = "https://creativecommons.org/licenses/by/3.0/";
$wgRightsText = "Creative Commons";
$wgRightsIcon = "https://i.creativecommons.org/l/by/3.0/88x31.png";

Indizierung durch Suchmaschinen reglementieren

  • Im MediWiki ist standardmäßig eingestellt, dass alle Suchmaschinen alle Seiten indizieren dürfen. Dafür wird in der Datei includes\DefaultSettings.php der Eintrag $wgDefaultRobotPolicy = 'index,follow'; genutzt.
  • Wie dies realisiert ist, kann man sich im Browser im Quelltext der generierten Seiten anschauen. Im Beispiel werden bestimmte Spezialseiten vom MediaWiki mittels "noindex,nofollow" explizit für die Suchmaschinen verboten.
  • Unabhängig davon sollte man in das Stammverzeichnis des Wiki-Systems eine Textdatei robots.txt ablegen:
    • Die Suchmaschinen lesen beim Finden einer Webseite zuerst diese Datei im Stammverzeichnis der Domäne.
    • In dieser Datei kann beschrieben werden, ob und wie die Suchmaschine (Robot) die Seiten erfassen darf.
    • Es ist wichtig, unsinnige Robots auszusperren, um nicht unsinnigen Datenverkehr für das Wikisystem zu erzeugen.
    • Für Laien ist es günstig, als Grundlage die Datei robot.txt der Wikipedia zu verwenden. Auf konkrete Verzeichnisse der Wikipedia bezogene Einträge (z.B. /wiki/) muss man löschen!

Anpassung des Erscheinungsbildes

Hinweis: Um die Änderungen des Skins im Browser zu sehen, genügt unter Umständen kein Neuladen <F5>, sondern man muss auch noch den Cache des Browsers löschen!


Sprache umstellen von englisch auf deutsch

  • Durch Änderung in LocalSettings.php kann man die Sprache umschalten
# Site language code, should be one of the list in ./languages/data/Names.php
$wgLanguageCode = "de";

Wahl des MonoBook-Skin

  • Standardmäßig ist in der Version 1.31 der Skin "vector" eingestellt.
  • Durch Änderung in LocalSettings.php kann man "monobook" wählen:
## Default skin: you can change the default skin. Use the internal symbolic
## names, ie 'monobook', 'vector':
$wgDefaultSkin = "monobook";

Eigenes Logo und Favicon:

  • Die erforderlichen Dateien werden per FTP in den images-Ordner kopiert.
  • in LocalSettings.php wird die Zeile:
$wgLogo             = "";
  • ersetzt durch:
## Eigenes Logo 135x135 Pixel einbinden
$wgLogo = "/images/logo.gif";
$wgFavicon = "/images/favicon.ico";


Ausblenden von Registerkarten für nicht angemeldete Nutzer

  • Folgende Änderungen sind vor der ersten Zeile der Datei \skins\MonoBook\includes\MonoBookTemplate.php' zu ergänzen (Originaldatei zuvor sichern!):
<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-viewsource { display: none !important; }
     </style> 
   <?php } ?>

<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-talk { display: none !important; }
     </style> 
   <?php } ?>
  
<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-history { display: none !important; }
     </style> 
   <?php } ?>
  
<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-nstab-main { display: none !important; }
     </style> 
   <?php } ?>

<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-nstab-project { display: none !important; }
     </style> 
   <?php } ?>

<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-nstab-special { display: none !important; }
     </style> 
   <?php } ?>

Ausblenden der Werkzeuge (für nicht angemeldete Nutzer)

  • Für die Wiki-Vorgängerversionen wurden trotz ständig geänderter Implementierung immer Möglichkeiten im Netz gefunden, die Werkzeug-Box für unangemeldete Nutzer auszublenden. Bisher ist dies noch nicht gelungen.
  • Das Erzeugen der Werkzeug-Box erfolgt auch in der Datei \skins\MonoBook\includes\MonoBookTemplate.php, wo man durch Ergänzen von 2 Zeilen die Toolbox komplett "Auskommentieren" kann:
protected function getToolboxBox() {
       $html = ;
       $skin = $this;
/** Beginn Auskommentierung 
       $html .= $this->getBox( 'tb', $this->getToolbox(), 'toolbox', [ 'hooks' => [
               // Deprecated hooks
               'MonoBookTemplateToolboxEnd' => [ &$skin ],
               'SkinTemplateToolboxEnd' => [ &$skin, true ]
       ] ] );
*/ // Ende Auskommentierung
       $html .= $this->deprecatedHookHack( 'MonoBookAfterToolbox' );
       return $html;
}
  • Es wäre sicher für jemanden, der dieser Skriptsprache mächtig ist, relativ einfach, dort eine if-Anweisung mit dem Test des Benutzerstatus zu ergänzen.
  • Das radikale Ausblenden ist jedoch unkritisch, da man als Autor nur wenige Funktionen daraus benötigt. Insbesondere "Datei hochladen" kann man problemlos im Sidebar ergänzen (wird später beschrieben).

Fusszeile nur mit Impressum

  • Dafür muss ebenfalls in der Datei \skins\MonoBook\includes\MonoBookTemplate.php die folgende Zeile mit der Definition der gewünschten FooterLinks ergänzt werden:
$validFooterLinks = array('disclaimer', 'tagline'); // Nur Impressum in Fusszeile
  • Diese Zeile ist direkt vor den Zeilen für das Schreiben der Fußzeilen-Einträge einzufügen:
if ( count( $validFooterLinks ) > 0 ) {
    $html .= Html::openElement( 'ul', [ 'id' => 'f-list' ] );
    foreach ( $validFooterLinks as $aLink ) {
        :
  • Anstatt "Impressum" erscheint "Haftungsausschluss" als Text, der Link führt jedoch zur Impressum-Seite. Dieser Text kann noch in einer Übersetzungstabelle geändert werden -> \languages\i18n\de.json in der Zeile:
"disclaimers": "Haftungsausschluss",

Hochladen von Dateien konfigurieren

Für das Wiki-System muss man die Konfiguration der Datei-Größe und die zu verwendende Verzeichnis-Struktur über LocalSettings.php vornehmen:

  • Das deaktivierte Upload:
$wgEnableUploads       = false;
  • wurde ersetzt durch folgende Beschreibung, welche zusätzlich die Ordnerstruktur und erlaubte Inhalte spezifiziert:
$wgEnableUploads       = true;
$wgMaxUploadSize = 1024*1024*200; # 200MB
$wgUploadSizeWarning = 1024*1024*10; # 10MB
$wgUseImageResize = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'zip', 'pdf', 'hlp', 'swf', 'wmv', 'svg' );
## Directories images/archive, images/thumb and images/temp werden automatisch angelegt!
$wgHashedUploadDirectory = false; # nicht Bilder-Verzeichnisstruktur "/a/ab/foo.png" verwenden

Maximal mögliche Dateigröße erhöhen:

  • Die maximal hochladbare Dateigröße wird durch die PHP-Konfiguration des Servers festgelegt (bei STRATO im Beispiel 64MB).
  • Auch ohne Zugriff auf die originale Datei php.ini kann man diesen Wert ändern (z.B. auf 200MB), indem man eine Datei php.ini mit folgendem Inhalt in das Wurzelverzeichnis des Wiki-Systems speichert (dort, wo auch LocalSettings.php liegt):
[PHP]
; Maximum size of POST data that PHP will accept.
post_max_size = 200M
; Maximum allowed size for uploaded files.
upload_max_filesize = 200M

Inbetriebnahme des erweiterten Editors

Seit der Version 1.18 enthält der Source-Code bereits die Extension:WikiEditor. Diese muss man in der Datei LocalSettings.php nur noch registrieren:

  • Dazu ist am Ende der Datei folgende Codezeile zu ergänzen;
wfLoadExtension( 'WikiEditor' );

Druckversion der Seiten anpassen

Standardmäßig werden in der Druckversion die externen Links in voller Länge eingeblendet, welche sich hinter den in den Seiten dargestellten Kurzformen verbergen. Die Druckausgabe sollte jedoch der Bildschirmdarstellung entsprechen, weshalb man die Ausgabe der externen Links unterdrücken muss:

  • Eine Änderung in den MediaWiki-Systemdateien ist dafür nicht erforderlich.
  • Man editiert als WikiSysop-Nutzer einfach die Seite "MediaWiki:Print.css" (Eintragen in das Suchfeld und Seite aufrufen):
  • In der dargestellten Seite ergänzt man den Code:
#content a.external.text:after,
#content a.external.autonumber:after {
content: none;
}

Dieser überschreibt dann die Definitionen in der Datei "skins/common/commonPrint.css" des MediaWiki Source-Code.