OptiYummy-Update 1.31 auf 1.35: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
Zeile 144: Zeile 144:
* Vor dem Import der vorhandenen alten Datenbank in Form einer sql-Datei sollte man die zusätzlich erforderlichen Datei-Inhalte in den neuen MediaWiki-Ordner kopieren:
* Vor dem Import der vorhandenen alten 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:
* 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_10/images STRATO-apps/mediawiki_11/apps
  cp -rp mediawiki_10/images STRATO-apps/mediawiki_11/app
Der Import der alten Datenbank muss im PUTTY mittels des mysql-Befehls erfolgen:
Der Import der alten Datenbank muss im PUTTY mittels des mysql-Befehls erfolgen:
  mysql -h rdbms -u BENUTZERNAME -pPASSWORT DBxxxxxx < optiyummy_export.sql
  mysql -h rdbms -u BENUTZERNAME -pPASSWORT DBxxxxxx < optiyummy_export.sql

Version vom 8. Dezember 2020, 19:48 Uhr

Problem

Nachdem das System in der Version 1.31 fast ein Jahr lang stabil gelaufen war, änderte sich plötzlich das äußere Erscheinungsbild, ohne dass zuvor eine Änderung in der Konfiguration vorgenommen wurde. Die Rahmen des MonoBook-Design fehlten und der Navigationsbereich befand sich nicht mehr links vom Inhalt, sondern unterhalb des Seiten-Inhalts:

  • Bei einem einzelnen Nutzer war dieses Problem vor einigen Monaten auch schon aufgetreten, aber nirgendwo sonst.
  • Nun tritt dieses Problem permanent überall auf.
  • Da die Erzeugung des Seitenquelltextes durch die Komponenten des MediaWiki-Systems selbst erfolgt (welches nicht geändert wurde) vermute ich eine Änderung auf dem Server, von dem aus die Seiten ausgeliefert werden.
  • Die erste Reaktion des STRATO-Service war das Betonen der Verantwortung des Kunden für seine Web-Präsenz, im Beispiel also für die Lauffähigkeit des eigenen MediaWiki-Systems.
  • Experimente mit den Original-Dateien des MonoBook-Skins konnten einen Einfluss der eigenen Anpassungen ausschließen.
  • Deshalb soll das WikiSystem von Grund auf neu installiert werden. Das Einspielen der alten Inhalte nach dem vorherigen Sichern des aktuellen Zustandes sollte nach den bisherigen Erfahrungen einigermaßen problemlos gelingen.

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 Dezember 2020:

  • Damit eine Domain (hier: optiyummy.net) 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 /.
  • Wichtig: Es können nur Domains verwendet werden, welche bei STRATO noch nicht für die Installation eines MediaWiki verwendet wurden (Diese sind dann in der Auswahlliste gekennzeichnet durch "App ist bereits installiert" - wie man dieses Kennzeichen rückgängig macht, ist sicher ein weiteres Problem!).
  • Auf der Startseite des Kundenlogin findet man unten in der Navigationsleite den Eintrag WordPress & Co.
  • Nach Wählen dieser Funktion findet man in der Kategorie Community-Software die Möglichkeit zur MediaWiki-Installation.
  • Die Domäne optiyummy.net wurde infolge des Einhaltens der obigen Bedingungen in der Liste zur Auswahl angeboten
  • Nach dem Ausfüllen der geforderten Angaben betätigt man "Fertigstellen".

Das erstellte MediaWiki-System besitzt folgende Konfiguration:

  • Version 1.35.0
  • Es wurde ein Ordner "/STRATO-apps/mediawiki_11/app" angelegt (app-Ordner: Unterschied zu vorherigen Installation!)
  • 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 ein SSH-Zugang zur Verfügung gestellt:

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


Vergeben von Nutzerrechten

Die folgenden Einstellungen sind in der Datei LocalSettings.php vorzunehmen, welche sich im Wiki-Verzeichnis mediawiki_11 befindet. Dazu wurde eine lokale Kopie von LocalSettings.php erzeugt. Diese wird schrittweise verändert und zum Test der Wirkung wieder per SSH 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;

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

Wahl des MonoBook-Skin

  • Standardmäßig ist in der Version 1.35 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";
  • Ein Ausblenden von Funktionen für nichtangemeldete Nutzer wird vorläufig nicht vorgenommen!

Eigenes Logo und Favicon:

  • Die erforderlichen Dateien werden per SSH in den images-Ordner kopiert.
  • in LocalSettings.php wird die Zeile:
$wgLogo = [ '1x' => "$wgResourceBasePath/resources/assets/wiki.png" ];
  • ersetzt durch:
## Eigenes Logo 135x135 Pixel einbinden
$wgLogo = "/images/logo.gif";
$wgFavicon = "/images/favicon.ico";
  • Achtung: Funktioniert nicht, da der Direktzugriff auf Dateien im image-Ordner durch .htaccess-Datei abgeblockt wird (1.35 enthält):
<IfModule rewrite_module>
	RewriteEngine On
	RewriteOptions inherit
	# Fix for bug T64289
	Options +FollowSymLinks
</IfModule>
  • Ist inhaltlich zu ersetzen durch (.htaccess aus Version 1.31):
# Protect against bug 28235
<IfModule rewrite_module>
	RewriteEngine On
	RewriteCond %{QUERY_STRING} \.[^\\/:*?\x22<>|%]+(#|\?|$) [nocase]
	RewriteRule . - [forbidden]
</IfModule>

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' );

Uebertragen der Inhalte

Das Übertragen der gesicherten Inhalte aus dem alten Wiki-System erfolgt weitestgehend über Kommandos in der Putty-Konsole:

  • Mit dem Befehl mysqldump sollte man zuerst den aktuellen Zustand der neuen, leeren Datenbank als SQL-Datei in das aktuelle Verzeichnis exportieren, damit der Ausgangszustand nach einer misslungenen Implementierung der neuen Inhalte wieder regeneriert werden kann:
mysqldump DBxx --add-drop-table -h rdbms -u BENUTZERNAME -pPASSWORT > datei.sql
  • Vor dem Import der vorhandenen alten 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_10/images STRATO-apps/mediawiki_11/app

Der Import der alten Datenbank muss im PUTTY mittels des mysql-Befehls erfolgen:

mysql -h rdbms -u BENUTZERNAME -pPASSWORT DBxxxxxx < optiyummy_export.sql


Danach stehen im neuen Wiki-System zwar alle Inhalte für unangemeldete Benutzer zur Verfügung, aber beim Versuch der Anmeldung kam es zu einem Datenbankfehler:

[Xk-O6BK0q00H6HMaGb7yTAAAAa4] 2020-02-21 12:36:56: Fataler Ausnahmefehler des Typs „Wikimedia\Rdbms\DBQueryError“

Die Datenbank-Strukturen der Versionen 1.31 und 1.35 sind unterschiedlich. Deshalb muss bei jedem MediaWiki-Update auch ein Update der Datenbank erfolgen:

  • Die fehlerhaften Datenbank-Einträge für die aktuelle Version 1.31 werden durch Ausführen des Update-Script im Web-Browser generiert:
 https://www.optiyummy.net/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 läuft das MediaWiki wie gewünscht.