OptiYummy-Update 1.19 auf 1.23

Aus OptiYummy
Wechseln zu: Navigation, Suche

Zielpraezisierung

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

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

  • Die MediaWiki-Version 1.23 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.19 ü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 2016:

  • Unter dem Menüpunkt Ihr Paket > Homepagegestaltung > STRATO AppWizard findet man die Liste der installierten MediaWiki-Anwendungen einschließlich der Versionsnummer.
  • Stellt STRATO ein Update auf eine aktuellere Version bereit, so ist dies für die betreffende MediaWiki-Anwendung vermerkt. Für die Version 1.19.1-2 ist dies nicht der Fall.
  • Für die Installation einer neueren MediaWiki-Version muss man also in der Übersicht der verfügbaren Anwendung die Liste der verfügbaren Wiki-Versionen aufklappen. Hier stand nur die MediaWiki Version 1.23.13-76 zum Installieren zur Verfügung.
  • Die von STRATO bereitgestellte MediaWiki-Version (im Beispiel 1.23.13-76) hinkt der aktuellen Version von www.mediawiki.org immer um einige Versionsnummern hinterher (im Beispiel 1.26). Die Auswirkung auf die Funktionalität sind sicher gering.
  • 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 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_03 automatisch vergeben.
  • Das Fertigstellen dauert nur einige Sekunden.

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

  • Die Links Zur Webseite und Zur Admininstrationsfläche führen beide zur Startseite des Wiki-Systems. Dort kann man nur die Verwaltung durchführen, welche nach Anmeldung als WikiSysop möglich sind.

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_03 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 = "http://creativecommons.org/licenses/by/3.0/";
$wgRightsText = "Creative Commons";
$wgRightsIcon = "http://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

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 'cologneblue', '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 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.

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       = true;
  • 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 32MB).
  • 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 und konfigurieren:

  • Dazu sind am Ende der Datei folgende Codezeilen zu ergänzen;
require_once "$IP/extensions/WikiEditor/WikiEditor.php"; 
# Enables use of WikiEditor by default
$wgDefaultUserOptions['usebetatoolbar'] = 1;
# Displays the Preview and Changes tabs
$wgDefaultUserOptions['wikieditor-preview'] = 1;
# Displays the Publish and Cancel buttons on the top right side
$wgDefaultUserOptions['wikieditor-publish'] = 1;
# Displays the Preview and Changes tabs
$wgDefaultUserOptions['wikieditor-preview'] = 1;

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.

Einbinden von Videos

Die [Extension:EmbedVideo] läuft ab der MediaWiki-Version 1.19. Damit wird es unter anderem möglich, Youtube-Videos in die Seiten einzubetten:

  • Die ZIP-Datei der Extension ist über obigem Link zu laden. Der Inhalt muss in den Ordner "/Extension/EmbedVideo/" kopiert werden.
  • Die Registrierung in der Datei LocalSettings.php erfolgt mittels:
require_once "$IP/extensions/EmbedVideo/EmbedVideo.php";

Danach funktioniert das Einbetten und Abspielen von Videos, wenn der Browser HTML5-kompatibel ist oder der Flashplayer installiert wurde:

  • Ob dies bei dem eigenen Browser der Fall ist, sieht man am folgenden Beispiel:

Rendern von mathematischen Formeln

Mit der MediaWiki-Version 1.18.0 wurde die Funktion $wgUseTeX=true aus dem Kern des Wiki-Systems entfernt. Stattdessen muss man jetzt dafür eine Extension nutzen. Da die Extension:Math nur zusammen mit dem texvc-Programm funktioniert, welches für das genutzte STRATO-Paket nicht zur Verfügung steht, kann man die Extension:SimpleMathJax verwenden:

  • Die Installation der SimpleMathJax-Extension genügt das Anlegen des Ordners Extension/SimpleMathJax und das Hineinkopieren des heruntergeladenen Inhalts.
  • Die SimpleMathJax-Extension muss in der Datei LocalSettings.php registriert werden:
require_once "$IP/extensions/SimpleMathJax/SimpleMathJax.php";
$wgSimpleMathJaxSize = 120;
  • Versucht man damit im Editor z.B. die folgende Zeile einer Formel zu speichern:
  <math>c = \frac{E \cdot b \cdot t^3}{4 \cdot L^3} </math> 
  • dann sollte die folgende Formel erscheinen:
    .

Sicherungskopie eines MediaWiki-Systems

  • Wie bereits in den vorherigen Anleitungen beschrieben, sollte man sich mit PUTTY einloggen und mittels LINUX-Befehlen die Sicherung aller Inhalte vornehmen.
  • Hierfür benötigt man das Programm putty.exe. Dieses Programm muss nicht installiert werden, man kann es direkt starten.
  • Nach der Anmeldung kann man mittels des ls-Befehls überprüfen, wo man sich befindet:
login as: optiyummy.eu
optiyummy.eu@ssh.strato.de's password:
optiyummy.eu> ls
cgi-bin  cgi-data  index.html  mediawiki_02  mediawiki_03
optiyummy.eu>
  • Mit dem Befehl mysqldump kann man den aktuellen Zustand der Datenbank als SQL-Datei in das aktuelle Verzeichnis exportieren:
mysqldump DBxx --add-drop-table -h rdbms -u BENUTZERNAME -pPASSWORT > datei.sql
  • Zusätzlich zur Sicherung der kompletten images-Ordnerstruktur auf dem lokalen PC (z.B. mittels SSH-Zugang), sollte man mittels PUTTY eine Kopie des gesamten MediaWiki-Ordners direkt im Webspace mit dem cp-Befehl erzeugen, z.B.:
cp -rp mediawiki_02 mediawiki_02b
  • Um die Dateien nicht einzeln auf den lokalen PC kopieren zu müssen, sollte man den gesamten Ordner images zuvor mit dem tar-Befehl in eine Archiv-Datei packen:
tar cfvz archiv.tar.gz images/
  • Das Exportieren der Datenbanken "beliebiger" Größe funktioniert bei STRATO inzwischen auch sehr gut innerhalb der Paketverwaltung mittels des Tools myPhpAdmin (Aufruf mit Verwaltung > Datenbankverwaltung > DBxxxxxxx > verwalten):
    • In der Registerkarte Exportieren kann man als Export-Art "Schnell" als SQL-Datei wählen.
    • Diese Datei wird hierbei auf den lokalen PC übertragen und besitzt ungefähr die doppelte Größe, wie die mittels mysqldump erzeugte Datei.
    • Man sollte sowohl von der alten, als auch von der neuen Datenbank mittels Exportieren in myPhpAdmin eine SQL-Datei erzeugen.

Uebertragen der Inhalte

Vor dem Import der vorhandenen Datenbank in Form einer sql-Datei sollte man die zusätzlich erforderlichen Datei-Inhalte in den neuen MediaWiki-Ordner kopieren:

  • Dies betrifft die gesamte Datei-Struktur des alten images-Ordners. Dieses kann man mittels cp-Befehl in PUTTY kopieren, nachdem man den Original-images-Ordner zuvor umbenannt hat:
cp -rp mediawiki_02/images mediawiki_03
  • Das Importieren von SQL-Dateien in myPhpAdmin ist bei STRATO aktuell auf 32MB beschränkt und damit nur zum eventuell erforderlichen Wiederherstellen der neuen (fast leeren) Datenbank geeignet.
  • Die Beschränkung auf 32MB resultiert aus den Default-Einstellungen in der php.ini für das Web-Paket.

Der Import der Datenbank muss im PUTTY mittels des mysql-Befehls erfolgen, wobei die mittels myPhpAdmin-Export erzeugte SQL-Datei verwendet wird:

optiyummy.eu> mysql -h rdbms -u BENUTZERNAME -pPASSWORT DBxxxxxx < optiyummy119_export.sql

Das führte zur ersten Fehlermeldung:

ERROR 1054 (42S22) at line 787: Unknown column 'cat_hidden' in 'field list'

Die Datenbank-Strukturen der Versionen 1.19 und 1.23 sind unterschiedlich. Die obige Spalte 'cat_hiden' gibt es in der Version 1.23 nicht, deshalb die Fehlermeldung:

  • In myPhpAdmin der STRATO-Datenbankverwaltung werden sämtliche Tabellen markiert und gelöscht.
  • Danach funktionierte der Import über PUTTY-Befehlszeile.
  • Die noch fehlenden Datenbank-Einträge für die aktuelle Version 1.23 werden anschließend durch Ausführen des Update-Script im Web-Browser generiert:
 http://www.optiyummy.eu/mw-config/index.php 
  1. Bestätigen der Spracheinstellungen mit Weiter.
  2. Wert des $wgUpgradeKey für das vorhandene Wiki als Aktualisierungsschlüssel eingeben (ohne die ""), danach Weiter.
  3. MediaWiki-Tabellen aktualisieren mit Weiter bestätigen.

Danach lief das MediaWiki wie gewünscht:

  • Für das STRATO-Web-Paket konnte anschließend die PHP-Version 7.0 gewählt werden.
  • Damit sollte sich die Geschwindigkeit des Seitenaufbaus erhöhen.

Die angelegte Sicherungskopie des neu angelegten MediWiki-Systems kann man nun mittels rm-Befehl in Putty löschen:

rm -r mediawiki_03b