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

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.23 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";


===>>> die folgenden Änderungen aus Version 1.23 funktionieren in 1.31 nicht mehr !!!!


Ausblenden von Registerkarten für nicht angemeldete Nutzer

  • Folgende Änderungen sind vor den letzten 3 Zeilen der Datei /skins/MonoBook.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 } ?>
  • Das sind dann die bisherigen letzten 3 Zeilen, welche erhalten bleiben:
<?php
      }
} // end of class
  • Es werden damit die Registerkarten für alle Nutzer ausgeblendet, welche nicht editieren dürfen. Das sind infolge der Einstellungen in LocalSettings.php alle nicht angemeldeten Nutzer.
  • 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!

Ausblenden der Werkzeuge für nicht angemeldete Nutzer

  • Die erforderliche Änderung ist ebenfalls in /skins/MonoBook.php durchzuführen.
  • Finden des folgenden Abschnitts (Suchen nach p-tb):
        <div class="portlet" id="p-tb" role="navigation">
        <h3><?php $this->msg('toolbox') ?></h3>
 
  • Ersetzen durch die folgenden Zeilen:
        <div class="portlet" id="p-tb" role="navigation">
        <?php if($this->data['loggedin']) { ?>
        <h3><?php $this->msg('toolbox') ?></h3>
 
  • Weiter unten steht das Ende des soeben editierten div-Blockes. Dort sucht man folgenden Abschnitt:
         wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
         wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
 ?>
         </ul>
<?php    $this->renderAfterPortlet( 'tb' ); ?>
     </div>
   </div>
 
  • Dort ergänzt man die Zeile (zwischen den beiden /div), welche das neue "if"-Statement schließt:
         wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
         wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
 ?>
         </ul>
<?php    $this->renderAfterPortlet( 'tb' ); ?>
       </div>
     <?php } ?>	
   </div>
 

Fusszeile nur mit Impressum

  • Dafür muss in der Datei /skins/MonoBook.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 ) {
:
:
foreach( $validFooterLinks as $aLink ) { ?>
:
  • Hinweis: Die durch Doppelpunkt angedeuteten drei Zeilen wurden hier nicht dargestellt, weil es Probleme mit der Darstellung ihrer Syntax auf dieser Seite gab.