OptiYummy-System 2
Seite1 <- "Installation des Basis-Systems"
Wiki-System individuell konfigurieren
- Indizierung der Seiten durch Suchmaschinen
- Scheinbar ist ab MediWiki-Version 1.12 vorgesehen, alle Seiten des MediaWiki-Systems standardmäßig mit <meta name="robots" content="index,follow"> zu versehen.
- Dafür wird dann $wgDefaultRobotPolicy = 'index,follow'; genutzt.
- Ob dies realisiert ist, kann man überprüfen, indem man sich im Browser den Quelltext der generierten Seiten anschaut.
- Im Beispiel war dieser Meta-Eintrag nicht vorhanden, weil nur die Version 1.10 genutzt wird. Allerdings 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 \srv\www\htdocs\mediawiki\ 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 scheinbar 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 [1] zu verwenden. Auf konkrete Verzeichnisse der Wikipedia bezogene Einträge (z.B. /wiki/) muss man löschen!
Für die folgenden Anpassungen muss man die Datei LocalSettings.php manuell bearbeiten. Um den ursprünglichen Zustand wieder herstellen zu können, sollte man sich eine Sicherungsdatei anlegen (Kopieren und Einfügen unter neuem Namen).
Dann lädt man LocalSettings.php in einem Texteditor (z.B. rechte Maus - Öffnen mit ... Dienstprogramme - Editor Kate - Sitzung öffen). Die meisten Änderungsmöglichkeiten sind durch kommentierte Zeilen bereits vorbereitet:
- Die Parameter im vorderen Abschnitt wurden bereits durch den Konfigurationsdialog des MediaWiki belegt. Dort könnte man später bei Bedarf auch manuell Änderungen vornehmen, z.B.:
- ini_set( 'memory_limit', '32M' ); (Max. Größe für ein PHP-Script)
- Benutzer-Rechte abweichend von den Defaultwerten:
- $wgDefaultUserOptions['editsection'] = false; ("Bearbeiten" am Text ausblenden für anonyme Nutzer)
- $wgGroupPermissions['*']['edit'] = false; (Nur angemeldeten Benutzern Bearbeiten erlauben)
- $wgGroupPermissions['*']['createpage'] = false; (Anonyme Nutzer können keine neuen Seiten anlegen)
- $wgGroupPermissions['*']['createtalk'] = false; (Anonyme Nutzer können keine Diskussion anlegen)
- $wgGroupPermissions['*']['createaccount'] = false; (Neuanmeldungen verbieten außer für Sysop)
- $wgShowIPinHeader = false; (Links auf IP-Diskussionsseiten rechts oben ausschalten)
- $wgAllowSysopQueries = true; (Datenbankabfragen für Admins erlauben)
- Upload von Bildern unter Nutzung von ImageMagick
- $wgEnableUploads = true;
- $wgUseImageResize = true;
- $wgUseImageMagick = true;
- $wgImageMagickConvertCommand = "/usr/bin/convert";
- Mathematische Formeln mit LaTeX einbinden
- Die erforderlichen texvc-Komponenten befinden sich bereits in /mediawiki/math/
- $wgUseTex = true; (damit wird LaTeX aktiviert)
Um Bilder und Formeln auch im "safe mode" von PHP hochladen zu können, sind folgende Maßnahmen erforderlich:
- Im mediawiki/images-Verzeichnis folgende Ordner anlegen:
- /archive (für die Bilder)
- /thumb (wahrscheinlich für Vorschau)
- /tmp
- /math (für Formeln)
- Für alle diese Ordner folgende Eigenschaften (Berechtigungen) setzen:
- Gruppe=www / Eigentümer=root
- Eigentümer und Gruppe dürfen "Inhalt Anzeigen und Ändern"
- Sonstige dürfen "Inhalt darstellen"
- Nicht die Verzeichnisstruktur "/a/ab/foo.png" für Bilder verwenden:
- $wgHashedUploadDirectory = false;
Layout-Gestaltung auf Basis des "Monobook"-Skin
- $wgLogo = "$wgScriptPath/images/logo.gif"; (Eigenes Logo 135x135 Pixel)
- $wgFavicon = "$wgScriptPath/images/favicon.ico"; (16x16 Pixel, z.B. mit IrfanView gespeichert)
Änderungen in der Navigationsleiste (MediaWiki:Sidebar):
- Man meldet sich als Administrator "WikiSysop" an.
- Suche nach der Seite "MediaWiki:Sidebar" öffnet die Navigationsbeschreibung. Diese kann man "normal" zum Bearbeiten öffnen:
- Alle Text-Worte in dieser Seite werden als Text-Variable interpretiert. Das Wiki-System sucht für die gewählte Language das zugehörige Wort im Wörterbuch. Wird kein Eintrag im Wörterbuch gefunden, so wird das "Wort" direkt in der Navigationsleiste benutzt.
- Die Navigationsleiste kann aus mehreren Abschnitten bestehen. Jeder Abschnitt ist durch eine Zeile mit einem vorangestellten Stern gekennzeichnet.
- Innerhalb eines Abschnitts sind jeder Zeile zwei Sterne vorangestellt.
- Die Zeilen im Abschnitt entsprechen den Menüpunkten.
- Jede Zeile hat die Struktur ** link|Text.
- Der Link zeigt auf eine interne Wikiseite oder man benutzt die Konventionen für externe Links.
- Achtung: Ein Link sollte keine Umlaute oder Sonderzeichen enthalten, um Zeichensatz-Probleme bei der Portierung der Datenbank zu vermeiden!
- Im Beispiel wurde die Navigationsleiste in mehrere Sektionen geteilt.
- Grundlagen
- Simulation|Simulation
- Probabilistik|Probabilistik
- Nennwert-Optima|Nennwert-Optima
- Ausschuss-Quote|Ausschuss-Quote
- Robustheit|Robustheit
- Kompromiss-Loesung|Kompromiss
- Problemstellungen
- Praxisbeispiele|Praxisbeispiele
- Software
- Modell-Interface|Modell-Interface
- Nutzerprogramm|Nutzerprogramm
- Tabellenkalkulation|Tabellenkalkulation
- CAD-Programm|CAD-Programm
- Simulationssystem|Simulationssystem
- Hardware
- Personalcomputer|Personalcomputer
- Terminal-Server|Terminal-Server
- PC-Cluster|PC-Cluster
- Info's
- helppage|Hilfe zur Nutzung
- OptiYummy-System|OptiYummy-System
- Powered by
- http://www.ifte.de%7CIFTE (Homepage)
- http://www.optiy.de%7COptiY (Homepage)
- Auf eine Ergänzung des Wörterbuchs in \mediawiki\languages\messages\MessagesDe.php wurde verzichtet, da es dann wahrscheinlich Probleme bei einer Portierung des Wikisystems gibt.
- Existiert für den internen Link noch keine Seite, so wird dafür eine Leere Seite angelegt. Der Seiten-Name erscheint als Überschrift (1. Zeichen Großbuchstabe), z.B. "Optimierungshardware".
- Überschriften von Wiki-Standardseiten kann man normal editieren, z.B.:
- Seite MediaWiki:Mainpage Bearbeiten
- Anstatt "Hauptseite" wurde "Startseite" in Übereinstimmung mit der Navigationsleiste eingetragen.
Änderungen in der Datei "MonoBook.php"
Die folgenden Änderungen in der Datei "MonoBook.php" im "Skin"-Ordner bergen die Gefahr, dass Änderungen bei Updates verloren gehen. Doch zuvor besteht die Gefahr, dass man die Struktur dieser Datei versehentlich durch die Änderungen zerstört:
Achtung: Vorher eine Kopie der Orignal-Version von MonoBook.php erzeugen und sichern.
Ausblenden von Items in der Fußzeile:
- Alle nicht gewünschten Items wurden mit Kommentar /* */ ausgeklammert
- Nur disclaimer (=Impressum) blieb erhalten:
$footerlinks = array( /*'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',*/ /*'privacy', 'about',*/ 'disclaimer', 'tagline', );
Ausblenden des Werkzeuge-Menüs für nichtangemeldete Nutzer:
- Finden des folgenden Abschnitts (Suchen nach p-tb):
<div class="portlet" id="p-tb"> <h5><?php $this->msg('toolbox') ?></h5>
- Ersetzen durch die folgenden Zeilen:
<?php if($this->data['loggedin']) { ?> == Restore eines Backup-Files == Die Nutzung von "MySQL Administrator" erfolgt wieder als root-Nutzer: * Man wählt die Ansicht "Restore Bakup" * Falls der /backup-Ordner noch nicht eingestellt ist, muss man dies über "Change Path" nachholen (links unten). * Es werden alle Backup-Files in diesem Ordner aufgelistet. Davon wählt man im Normalfall das letzte Backup: ** Als Zeichensatz wählt man die Vorgabe "utf8". Danach wird das Inhaltsverzeichnis des Backup gelesen. ** In der "General"-Registerkarte kann man festlegen, in welches Datenbank-Schema die Daten zu speichern sind. ** In der "Select"-Registerkarte, kann man festlegen, welche Inhalte übernommen werden sollen (meist Original Schema). Für ein komplettes Restore benötigt man wahrscheinlich die kompletten Inhalte. ** "Create schemas if they don't exist" sollte man markieren. * Achtung: Den Restore-Prozess sollte man vorläufig noch abbrechen, um nicht aus Versehen die aktuellen Inhalte zu überschreiben! * Hinweise: ** Es gelingt jedoch scheinbar nicht, eine vorhandenes Schema durch Restore mit dem Backup-Inhalt zu überschreiben. Dazu muss man unter der Catalogs-Ansicht das Schema erst löschen! ** Die Übertragung in anderes Wiki-System erfordert folgende Schritte: *** Übertragung der Backup-Datei auf das Zielsystem *** Falls der Inhalt eines Schemas überschrieben werden soll, muss man dass Schema vorher löschen. *** Erzeugt man durch Restore ein neues Schema, so muss man anschließend in der Datei LocalSettings.php unter $wgDBname den neuen Schemen-Namen eintragen. Außerdem muss der unter $wgDBuser eingetragene wikiuser mittels des MySQL-Administrators die erforderlichen Privilegien für das neue Schema erhalten: (SELECT, INSERT, UPDATE, DELETE, CREATE_TMP_TABLE) *** Danach sollten die Seiten auf dem neuen Wiki-System verfügbar sein. Allerdings fehlen noch die Bilder!Sichern und Portieren der Bilder
Restore der Datenbank auf einem anderen Wiki-System ermöglicht nur die Wiederherstellung der verlinkten Texte. Es fehlen darin aber alle Bilder. Der Ordner /images muss deshalb zusätzlich zum Backup der Datenbank regelmäßig gesichert werden: * dafür ist in die crontab des root-Nutzers ein copy-Befehl zu ergänzen, welcher kurz z.B. 1 Minute nach dem Datenbank-Backup aktiviert wird. * Die gesamte Ordnerstruktur von /images soll als Ordner /backup/images_datum gesichert werden. * Da Bilder kaum komprimiert werden können, wird auf ein Verpacken in ein Archiv verzichtet. * Als root-Nutzer erstellt man eine Textdatei "/bin/wiki-images-backup.sh" als ausführbare Script-Datei: ** #!/bin/bash ** DATUM=$(date +'%y%m%d'); ** rsync -r /srv/www/htdocs/mediawiki/images /backup/images_$DATUM * Die crontab von root ist die Datei /var/spool/cron/tabs/root * Dort ergänzt man vor den Zeilen: ** #MySQL Administrator Backup [optiyummy] (do not change this line) ** 5 5 * * * /usr/bin/mabackup -d /backup -c MySqlAdmin optiyummy * den Aufruf des wiki-images-backup: ** 5 6 * * * /bin/wiki-images-backup.sh ** Das Einfügen vor dem MySQL-Backup erfolgt in der Hoffnung, dass man damit den MySQL Admin am wenigsten beim Update dieser Anweisung stört! Achtung: Möchte man den Inhalt von OptiYummy auf einem neuen Wiki-System wieder zum Leben erwecken, so darf dieses Wiki-System nicht die Verzeichnisstruktur "/a/ab/foo.png" für Bilder verwenden. In LocalSettings.php muss dort also folgende Anweisung wirken: * $wgHashedUploadDirectory = false;Backup der Datenbank
Im MySQL Administrator richtet man dafür ein Backup-Projekt ein: * Achtung: Dazu sollte man sowohl im Linux- als auch im MySQL-System als root angemeldet sein! * Menüpunkt Tools - Preferences - General Options - "Store connection passsword" mit Storage Method = "Obscured". * Menüpunkt Tools - Preferences - Administrator - "Append timestamp to backup file names". Damit erkennt man am Dateinamen bereits das Backup-Datum. * Menüpunkt Tools - Preferences - Connections - Add Connection: ** Verbindungsname: z.B. MySqlAdmin ** Benutzername: root ** Password: mysql-rootpassword ** Hostname: localhost ** Port: 3306 ** Typ: MySQL ** Schema: z.B. optiyummy (root muss über ausreichende Privilegien für diese "Schema" verfügen) ** Apply Changes * Wahl der Backup-Ansicht: ** Registerkarte "Backup-Projekt" *** Projektname: optiyummy (muss nicht wie das "Schema" heißen) *** Datenbank-Schema "optiyummy" -> zu Backup-Inhalt hinzufügen ** Registerkarte "Erweiterte Einstellungen": *** "InnoDB Online Backup", um ein konsistentes Backup zu erhalten. *** "Backup der ganzen ausgewählten Datenbank" *** Backup Type: SQL-Dateien (nur dieser Typ ist möglich) *** Markieren: "Complete INSERTs", "Comment", "Don't write full path" ** Registerkarte "Backup planen": *** Dieses Projekt täglich durchführen (irgendwann nachts) *** Zielverzeichnis: /backup (in Basis-root neu anlegen) *** Dateinamenspräfix: ohne *** Verbindungsname: "MySqlAdmin" wählen *** Projekt speichern und "Update Schedule" -> damit Eintrag in crontab vom root-Nutzer. *** "Start Backup", dabei muss man Zielordner /backup im Basisverzeichnis selbst wählen. Wenn alles funktioniert, entsteht im /backup-Ordner eine .sql-Datei mit einer Größe von ca. 2MByte.Restore eines Backup-Files
Die Nutzung von "MySQL Administrator" erfolgt wieder als root-Nutzer: * Man wählt die Ansicht "Restore Bakup" * Falls der /backup-Ordner noch nicht eingestellt ist, muss man dies über "Change Path" nachholen (links unten). * Es werden alle Backup-Files in diesem Ordner aufgelistet. Davon wählt man im Normalfall das letzte Backup: ** Als Zeichensatz wählt man die Vorgabe "utf8". Danach wird das Inhaltsverzeichnis des Backup gelesen. ** In der "General"-Registerkarte kann man festlegen, in welches Datenbank-Schema die Daten zu speichern sind. ** In der "Select"-Registerkarte, kann man festlegen, welche Inhalte übernommen werden sollen (meist Original Schema). Für ein komplettes Restore benötigt man wahrscheinlich die kompletten Inhalte. ** "Create schemas if they don't exist" sollte man markieren. * Achtung: Den Restore-Prozess sollte man vorläufig noch abbrechen, um nicht aus Versehen die aktuellen Inhalte zu überschreiben! * Hinweise: ** Es gelingt jedoch scheinbar nicht, eine vorhandenes Schema durch Restore mit dem Backup-Inhalt zu überschreiben. Dazu muss man unter der Catalogs-Ansicht das Schema erst löschen! ** Die Übertragung in anderes Wiki-System erfordert folgende Schritte: *** Übertragung der Backup-Datei auf das Zielsystem *** Falls der Inhalt eines Schemas überschrieben werden soll, muss man dass Schema vorher löschen. *** Erzeugt man durch Restore ein neues Schema, so muss man anschließend in der Datei LocalSettings.php unter $wgDBname den neuen Schemen-Namen eintragen. Außerdem muss der unter $wgDBuser eingetragene wikiuser mittels des MySQL-Administrators die erforderlichen Privilegien für das neue Schema erhalten: (SELECT, INSERT, UPDATE, DELETE, CREATE_TMP_TABLE) *** Danach sollten die Seiten auf dem neuen Wiki-System verfügbar sein. Allerdings fehlen noch die Bilder!