Mediawiki: Unterschied zwischen den Versionen

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
Zur Navigation springen Zur Suche springen
Zeile 31: Zeile 31:
  
 
=== Composer Dateien kopieren ===
 
=== Composer Dateien kopieren ===
Wenn ''composer'' benutzt wird:
+
Wenn ''composer'' benutzt wird - seit MW 1.25 mandatory:
  cp -p ../$DIR/composer.json .
+
*Die zusätzlichen Pakete (z.B. Semantic MediaWiki) in die "require" Sektion eintragen
  cp -rp ../$DIR/vendor .
+
  vi ../$DIR/composer.json .
 +
Beispiel:
 +
<pre>
 +
        "require": {
 +
                "cssjanus/cssjanus": "1.1.1",
 +
                "ext-iconv": "*",
 +
                "leafo/lessphp": "0.5.0",
 +
                "liuggio/statsd-php-client": "1.0.12",
 +
                "oojs/oojs-ui": "0.11.3",
 +
                "php": ">=5.3.3",
 +
                "psr/log": "1.0.0",
 +
                "wikimedia/cdb": "1.0.1",
 +
                "wikimedia/composer-merge-plugin": "1.0.0",
 +
                "wikimedia/utfnormal": "1.0.2",
 +
                "zordius/lightncandy": "0.18",
 +
                "mediawiki/semantic-media-wiki": "~2.2",
 +
                "mediawiki/semantic-result-formats": "~2.1",
 +
                "phpoffice/phpexcel": "1.8.0"
 +
</pre>
 +
*Composer Update
 +
  composer selfupdate
 +
composer update
 +
*Dateien in ../$DIR/vendor prüfen
  
 
=== LocalSettings.php kopieren ===
 
=== LocalSettings.php kopieren ===

Version vom 28. Mai 2015, 13:31 Uhr

Update komplett

Diese Anleitung beinhaltet nicht das Anfertigen einer Sicherungskopie der MySQL DB. Diese Kopie sollte aber i.d.R. immer durch ein tägliches Backup erfolgen, z.B. mittels rsnapshot. Alle Schritte müssen als root ausgeführt werden.

Backup der alten Umgebung

DIR=w
cd /srv/www/htdocs
rm -rf $DIR.old
cp -rp $DIR $DIR.old
chmod 700 $DIR.old

Neuen Tarball auspacken

tar zxvf /opt/pkg/mediawiki/mediawiki-1.16.1.tar.gz

Im Folgende ist NEWDIR das neue Verzeichnis (i.d.R. der Art mediawiki-1.16.1), in das das neue Release ausgepackt wurde, und wiki das Verzeichnis mit der alten Software.

Owner anpassen

NEWDIR=mediawiki-1.16.1
chown -R root:root $NEWDIR

Images kopieren

cd $NEWDIR
cp -rp ../$DIR/images .

Extensions kopieren

mv extensions extensions.orig
cp -rp ../$DIR/extensions .
cp -rp extensions.orig/* extensions/
rm -rf extensions.orig
Achtung: Seit Version 1.18 wird MediaWiki mit einigen Extensions ausgeliefert. Diese Extensions sollten möglichst nicht mit denen aus dem alten Verzeichnis überschrieben werden.

Composer Dateien kopieren

Wenn composer benutzt wird - seit MW 1.25 mandatory:

  • Die zusätzlichen Pakete (z.B. Semantic MediaWiki) in die "require" Sektion eintragen
vi ../$DIR/composer.json .

Beispiel:

        "require": {
                "cssjanus/cssjanus": "1.1.1",
                "ext-iconv": "*",
                "leafo/lessphp": "0.5.0",
                "liuggio/statsd-php-client": "1.0.12",
                "oojs/oojs-ui": "0.11.3",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/cdb": "1.0.1",
                "wikimedia/composer-merge-plugin": "1.0.0",
                "wikimedia/utfnormal": "1.0.2",
                "zordius/lightncandy": "0.18",
                "mediawiki/semantic-media-wiki": "~2.2",
                "mediawiki/semantic-result-formats": "~2.1",
                "phpoffice/phpexcel": "1.8.0"
  • Composer Update
composer selfupdate
composer update
  • Dateien in ../$DIR/vendor prüfen

LocalSettings.php kopieren

cp -p ../$DIR/LocalSettings.php* .

Optional: Logo und Favicon kopieren

cp -p ../$DIR/*logo.png .
cp -p ../$DIR/*logo.ico .

Optional: spezielle Skins kopieren

cp -rp ../$DIR/skins/bento* ./skins/

Upgrade

cd maintenance
php ./update.php

Note: Wenn dieser Befehl fehlschlägt oder keine Ausgabe erzeugt, könnte es ein Problem mit dem "PHP memory limit" geben oder mit dem Laden einer Extension. Bitte Logs prüfen (syslog). Diesen Schritt nicht überspringen!

Owner und Permissions

cd ..
chown wwwrun images

Web-Configuationsinterface deaktivieren

chmod 700 mw-config

Scharf schalten

cd ..
rm -rf $DIR
mv $NEWDIR $DIR

Update per Patch

Der Patch muss genau zur installierten Version passen. Alle Schritte müssen als root ausgeführt werden. Beispiel für Update von 1.19.0 nach 1.19.1.

Backup der alten Umgebung

DIR=w
cd /srv/www/htdocs
rm -rf $DIR.old
cp -rp $DIR $DIR.old
chmod 700 $DIR.old

Patch einspielen

cd $DIR
patch -p1 < /opt/pkg/mediawiki/mediawiki-1.19.1.patch

Upgrade

cd maintenance
php ./update.php

Namespaces

Extensions

Suche

Full-Text Suche:

RigorousSearch

Bei Tabellen vom InnoDB-Typ wird der Text als BLOB gespeichert. BLOB-Typen sind case sensitive (im Gegensatz zu TEXT). Daher findet in diesem Fall RigorousSearch nur Strings, die mit korrekter Groß-/Kleinschreibung angegeben wurden.

Änderung am Quellcode, um Suche case-insensitive zu machen (durch Einfügen einer CAST() Funktion):

$queryTxt = "SELECT old_text FROM " . $db->tableName('text') .
                    " WHERE old_id = " . $text_id .
                    " AND CAST(old_text as CHAR) LIKE '%" . $pattern . "%'";

Note: In MediaWiki 1.18 ist $wgMessageCache entfernt worden. Daher muss die $wgMessageCache Zuweisung in der Extension deaktiviert werden. Siehe auch [1].

Elasticsearch

  • CirrusSearch
  • Elastica

Semantic MediaWiki (SMW)

Ausgabe formatieren:

Video

History und Revisionen löschen

  • Special:RevisionDelete
    • Seit Version 1.60 Bestandteil von Mediawiki.
    • Einzelne Revisionen können verborgen werden (zeige/verstecke).
    • Die Sichtbarkeit kann dabei für folgende Dinge eingeschränkt werden: Text, Bearbeitungskommentar, User.
    • Einschränkungen können wieder rückgängig gemacht werden.
    • Jede Revision muss damit einzeln bearbeitet werden.
  • Extension:SpecialDeleteOldRevisions2
    • Irreversibles Löschen von alten Revisionen
    • Anwendbar auf einzelne oder alle Seiten.
    • Wildcard-Support
    • Datum und Namensräume können angegeben werden.

Git

User

User-Beiträge migrieren und User löschen:

Benachrichtiungen

Echo (Notifications)

Extensions:

Doku:

Diverse

Skins

Allgemeine Infos

bentofluid

  • Installationsort: ./skins/bento*
-rw-r--r-- 1 root root   418 25. Sep 14:47 bento.deps.php
-rw-r--r-- 1 root root   634 25. Sep 15:25 bentofluid.php
drwxr-xr-x 6 root root  4096 26. Sep 11:52 bento
-rw-r--r-- 1 root root 17339 26. Sep 13:52 bento.php
lrwxrwxrwx 1 root root     5  4. Jan 08:04 bentofluid -> bento
lrwxrwxrwx 1 root root    14  4. Jan 08:04 bentofluid.deps.php -> bento.deps.php
  • Meine Farbe: #265e15

Noch anpassen:

  • global-navigation (??)

Aktivierung eines Skins

Default-Skin ist einzustellen in LocalSettings.php:

 //$wgDefaultSkin = 'monobook';
 $wgDefaultSkin = 'bentofluid';
 $bento_lang = "de";

User-defined Skin unter Spezial:Einstellungen.

Tipps und Tricks

MemCache deaktivieren

Einstellung in LocalSettings.php:

// Problems with slow response due to MemCache problems
$wgMemCachedServers = array('');
$wgMessageCacheType = CACHE_NONE;
$wgParserCacheType = CACHE_NONE;

Bilder konvertieren

Falls es zu Fehlern kommt beim Erstellen von skalierten Bildern (vor allem wenn gleichzeitig mehrere Bilder verarbeitet werden), dann hilft folgende Einstellung in LocalSettings.php:

$wgImageMagickConvertCommand = "/usr/bin/convert";
## if convert does not work for multiple images on one go
$wgMaxShellMemory = 512000;

URL kürzen

LocalSettings.php:

$wgScriptPath = '/w';         # Path to the actual files, in subdirectory here!!
$wgArticlePath = '/wiki/$1';  # Virtual path. This directory SHOULD be different from the one used in $wgScriptPath
$wgUsePathInfo = true;        # Enable use of pretty URLs

Hinweise:

  • Alte Links mit /wiki/index.php/ funktionieren danach nicht mehr, wenn man MediaWiki zuvor nach /wiki installiert hat.

Apache:

RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]

Weblinks:

MIME Type Checks beim Datei-Upload

Die ZIP-basierten neuen MS Office Formate lassen sich nicht korrekt erkennen, sondern werden als (application/zip) erkannt. Abhilfe:

  • MIME Type Check deaktivieren durch $wgVerifyMimeType= false;.
  • Workaround implementieren, damit (application/zip) gültig wird (siehe unten).

Siehe auch:

Debugging

Performance

Tools

Composer

Installation (einmalig systemweit):

zypper in php5-phar php5-openssl
curl -sS https://getcomposer.org/installer | php
    ODER curl -sS https://getcomposer.org/installer --proxy http://localhost:3128 | php
mv composer.phar /usr/local/bin/
ln -s /usr/local/bin/composer.phar /usr/local/bin/composer

Semantic MediaWiki

Some remarks and experiences after upgrading to SMW 1.9.

  • Installation
cd $WIKIBASEDIR
composer require mediawiki/semantic-media-wiki "1.9.*,>=1.9.0.1"
composer require mediawiki/semantic-result-formats "1.9.*,>=1.9.0.1"
  • The composer install process installs following items to $WIKIBASEDIR
 ./composer.json
 ./vendor/composer/
 ./vendor/data-values/
 ./vendor/param-processor/
 ./extensions/SemanticMediaWiki
 ./extensions/SemanticResultFormats
 ./extensions/Validator
  • Therefore, when upgrading MW you need to consider the new file/dir "composer.json" and "vendor/" to be copied over.
  • There is no setting made by compose in LocalSettings.php.
  • SemanticMediaWiki, SemanticResultFormats, Validator and some Data Value extensions are listed in the MW GUI under "Special:Version -> Installed Extensions" (even though they are not included in LocalSettings.php, this seems to be organized by the composer now). Therefore, all these extensions can be used by other extensions - they are not limited to SMW family.
  • SRF 1.8 also runs with SMW 1.9 if you don't want to upgrade SRF yet.
  • SideBarMenu 0.1 also runs with SMW 1.9 (since only SideBarMenu 0.2 needs Validator)
  • The new SMW setup also works after upgrading to MW 1.22.1 (compatibility)

Disable an extension controlled by composer

To disable an extension that has been installed with composer:

  • remove the require line from composer.json
  • run "composer update"

To enable it again:

  • re-add the require line into composer.json
  • run "composer update"

Projekte

Wikidata

Literatur

Weblinks

Einzelnachweise