Mediawiki: Unterschied zwischen den Versionen

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
Zur Navigation springen Zur Suche springen
(121 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:


=== Backup der alten Umgebung ===
=== Backup der alten Umgebung ===
  DIR=wiki
  DIR=w
  cd /srv/www/htdocs
  cd /srv/www/htdocs
  rm -rf $DIR.old
  rm -rf $DIR.old
Zeile 23: Zeile 23:


=== Extensions kopieren ===
=== Extensions kopieren ===
Nicht mehr zu empfehlen:
  mv extensions extensions.orig
  mv extensions extensions.orig
  cp -rp ../$DIR/extensions .
  cp -rp ../$DIR/extensions .
Zeile 28: Zeile 29:
  rm -rf extensions.orig
  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.
: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.
 
Zu kopierende Extensions (nicht unter ''compose''-Kontrolle):
*PageForms
*VisualEditor
 
Zu empfehlen daher:
<pre>
cp -rp ../$DIR/extensions/PageForms extensions/
cp -rp ../$DIR/extensions/VisualEditor extensions/
echo
cp -rp ../$DIR/extensions/Echo extensions/
cp -rp ../$DIR/extensions/Thanks extensions/
cp -rp ../$DIR/extensions/ContributionScores extensions/
cp -rp ../$DIR/extensions/CSS extensions/
cp -rp ../$DIR/extensions/EditSubpages extensions/
cp -rp ../$DIR/extensions/EtherpadLite extensions/
cp -rp ../$DIR/extensions/MagicNoCache extensions/
cp -rp ../$DIR/extensions/Matomo extensions/
cp -rp ../$DIR/extensions/Widgets extensions/
cp -rp ../$DIR/extensions/HeaderTabs extensions/
</pre>
 
=== Extensions Update ===
Einige zusätzliche Extensions haben spezifische Branches für MediaWiki Haupt-Releases (z.B. ''origin/REL1_25''). Diese sollten aktualisiert werden.
 
*PageForms
*Echo
*Thanks
*SyntaxHighlight_GeSHi
cd extensions/SyntaxHighlight_GeSHi
composer update
<del>vi vendor/kzykhys/pygments/src/KzykHys/Pygments/Pygments.php</del>
<del>$process = $builder->getProcess()->setStdin($code);</del>
<del>$process = $builder->getProcess()->setInput($code);</del>
*VisualEditor
**nicht vergessen: "cd VisualEditor; git submodule update --init"
*<del>SemanticFormsInputs, fix for MW 1.26 see [https://www.mediawiki.org/wiki/Topic:Sprswqpt682hyjki]</del>
*OATHAuth
composer update --no-dev
 
=== Composer konfigurieren und aktualisieren ===
Wenn ''composer'' benutzt wird - seit MW 1.25 mandatory:
*Die zusätzlichen Pakete (z.B. Semantic MediaWiki) aus ''../$DIR/composer.json'' in die "require" Sektion eintragen
vi 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.5",
                "mediawiki/semantic-result-formats": "~2.5",
                "phpoffice/phpexcel": "1.8.0",
                "mediawiki/universal-language-selector": "2017.10"
        }
}
</pre>
 
*<del>''vendor'' Verzeichnis kopieren</del>
<del><syntaxhighlight lang="bash">
cp -rp ../$DIR/vendor .
</syntaxhighlight></del><syntaxhighlight lang="bash">
cp -rp ../$DIR/vendor .
</syntaxhighlight><syntaxhighlight lang="bash">
cp -rp ../$DIR/vendor .
</syntaxhighlight>
 
*Composer Update durchführen (fehlende Dateien werden dabei installiert und alle Versionen aktualisiert)
<syntaxhighlight lang="bash">
composer selfupdate
composer update --no-dev
</syntaxhighlight>
 
*Dateien in ''vendor'' und ''extentions'' prüfen


=== LocalSettings.php kopieren ===
=== LocalSettings.php kopieren ===
Zeile 38: Zeile 122:


=== Optional: spezielle Skins kopieren ===
=== Optional: spezielle Skins kopieren ===
  cp -rp ../$DIR/skins/bento* ./skins/
  <del>cp -rp ../$DIR/skins/bento* ./skins/</del>


=== Upgrade ===
=== Upgrade ===
  cd maintenance
  php maintenance/update.php
  php ./update.php
bzw.
  php maintenance/update.php --skip-external-dependencies
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 ===
=== Owner und Permissions ===
cd ..
  chown wwwrun images
  chown wwwrun images


Zeile 60: Zeile 145:


=== Backup der alten Umgebung ===
=== Backup der alten Umgebung ===
  DIR=wiki
  DIR=w
  cd /srv/www/htdocs
  cd /srv/www/htdocs
  rm -rf $DIR.old
  rm -rf $DIR.old
Zeile 101: Zeile 186:


Note: In MediaWiki 1.18 ist [http://www.mediawiki.org/wiki/Manual:$wgMessageCache $wgMessageCache] entfernt worden. Daher muss die $wgMessageCache Zuweisung in der Extension deaktiviert werden. Siehe auch [http://code.google.com/p/recaptcha/issues/detail?id=121].
Note: In MediaWiki 1.18 ist [http://www.mediawiki.org/wiki/Manual:$wgMessageCache $wgMessageCache] entfernt worden. Daher muss die $wgMessageCache Zuweisung in der Extension deaktiviert werden. Siehe auch [http://code.google.com/p/recaptcha/issues/detail?id=121].
==== Elasticsearch ====
*CirrusSearch
*Elastica


===Semantic MediaWiki (SMW)===
===Semantic MediaWiki (SMW)===
*http://semantic-mediawiki.org/wiki/Semantic_MediaWiki
*http://semantic-mediawiki.org/wiki/Semantic_MediaWiki
**[https://git.wikimedia.org/summary/mediawiki%2Fextensions%2FSemanticMediaWiki Git Repo View]
*http://www.mediawiki.org/wiki/Extension:Semantic_Forms
*http://www.mediawiki.org/wiki/Extension:Semantic_Forms
**[https://git.wikimedia.org/summary/mediawiki%2Fextensions%2FSemanticForms Git Repo View]
**http://edutechwiki.unige.ch/en/Semantic_Forms
*http://semanticweb.org/wiki/Semantic_MediaWiki
*http://semanticweb.org/wiki/Semantic_MediaWiki
*siehe [http://www.linux-magazin.de/Heft-Abo/Ausgaben/2009/07/Struktur-fuers-Wiki LM 07/09] S.60 (SMW und Semantic Forms) - sehr guter Artikel
*siehe [http://www.linux-magazin.de/Heft-Abo/Ausgaben/2009/07/Struktur-fuers-Wiki LM 07/09] S.60 (SMW und Semantic Forms) - sehr guter Artikel
*siehe iX 11/07 S.102
*siehe iX 11/07 S.102
*http://www.linux-magazin.de/news/cebit_2009_wiki_2_0_mit_semantic_mediawiki
*http://www.linux-magazin.de/news/cebit_2009_wiki_2_0_mit_semantic_mediawiki
*[http://meta.wikimedia.org/wiki/New_Wikidata Wikidata Projekt]
*[http://meta.wikimedia.org/wiki/New_Wikidata Wikidata Projekt]
**http://www.wikidata.org/wiki/Wikidata:Main_Page
*[http://semantic-mediawiki.org/wiki/SMWCon Semantic MediaWiki Conference] - mit Tutorials, Präsentationen (auch von älteren Veranstaltungen)
*[http://semantic-mediawiki.org/wiki/SMWCon Semantic MediaWiki Conference] - mit Tutorials, Präsentationen (auch von älteren Veranstaltungen)
*[http://docs.webplatform.org/wiki/WPD:Implementation_Patterns Web Platform Docs] als Beispiel
*[http://docs.webplatform.org/wiki/WPD:Implementation_Patterns Web Platform Docs] als Beispiel
*[http://www.smwplus.net/index.php/Download SMW+]
*[http://www.smwplus.net/index.php/Download SMW+]
*[http://wikiworks.com/semantic-mediawiki-vs-sharepoint.html Semantic MediaWiki vs. SharePoint] (wikiworks.com)
*[http://geospatialelucubrations.blogspot.ca/2013/10/semantic-mediawiki-promising-platform.html Semantic MediaWiki: A promising platform for the development of web geospatial crowdsourcing applications]
Ausgabe formatieren:
*http://semantic-mediawiki.org/wiki/Help:Template_format
*http://smw.referata.com/wiki/Use_the_ask_template_format_to_create_tabular_output
*http://smw.referata.com/wiki/Join_data_from_two_pages_into_one_table


=== Video ===
=== Video ===
*[http://www.mediawiki.org/wiki/Extension:MediawikiPlayer MediawikiPlayer]
*[https://www.mediawiki.org/wiki/Extension:OggHandler OggHandler]
*[https://www.mediawiki.org/wiki/Extension:OggHandler OggHandler]


Zeile 129: Zeile 234:
**Wildcard-Support
**Wildcard-Support
**Datum und Namensräume können angegeben werden.
**Datum und Namensräume können angegeben werden.
=== Git ===
*http://www.mediawiki.org/wiki/Extension:Gitweb
*http://www.mediawiki.org/wiki/Extension:Gists
=== User ===
User-Beiträge migrieren und User löschen:
*http://www.mediawiki.org/wiki/Extension:User_Merge_and_Delete
Dynamic parser functions that trigger on the current user:
*https://www.mediawiki.org/wiki/Extension:UserFunctions
=== Benachrichtiungen ===
==== Echo (Notifications) ====
Extensions:
*https://www.mediawiki.org/wiki/Extension:Echo
*https://www.mediawiki.org/wiki/Extension:Thanks
Doku:
*https://www.mediawiki.org/wiki/Echo_%28Notifications%29?uselang=de
*https://de.wikipedia.org/wiki/Hilfe%3AEcho
*https://en.wikipedia.org/wiki/Wikipedia:Notifications
*https://en.wikipedia.org/wiki/Wikipedia:Notifications/Thanks
*https://www.mediawiki.org/wiki/FlowPortal
=== Visual Editor ===
Siehe:
*http://www.mediawiki.org/wiki/Extension:VisualEditor
*https://www.mediawiki.org/wiki/Parsoid
*[[Docker#Beispiel 3: Parsoid mit Node.js|Als Docker Container]]
Installation / Konfiguration:
*Node.js: Version 10.x
*ACHTUNG: Bei verschiedenen Node.js Versionen auf $PATH achten (wenn "npm" ausgeführt wird).
*php5-curl ist nötig
*''/etc/parsoid/localsettings.js''
<pre>
        parsoidConfig.setMwApi({ uri: 'http://www.example.com/w/api.php', domain: 'example1', prefix: 'example1' });
        parsoidConfig.setMwApi({ uri: 'http://www.example.org/api.php', domain: 'example2', prefix: 'example2' });
</pre>
*''/etc/parsoid/parsoid.env''
<pre>
        VCAP_APP_PORT=8000
        NODE_PATH=/opt/parsoid/node_modules
        PORT=8000
        INTERFACE=127.0.0.1
</pre>
*Symlink: /opt/parsoid/localsettings.js -> /etc/parsoid/localsettings.js
*''/etc/systemd/system/multi-user.target.wants/parsoid.service''
<pre>
[Unit]
Description=Mediawiki Parsoid web service on node.js
Documentation=http://www.mediawiki.org/wiki/Parsoid
Wants=local-fs.target network.target
After=local-fs.target network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
User=nobody
Group=nobody
WorkingDirectory=/opt/parsoid
EnvironmentFile=-/etc/parsoid/parsoid.env
ExecStart=/usr/bin/node /opt/parsoid/bin/server.js -n 2
KillMode=process
Restart=on-success
PrivateTmp=true
StandardOutput=syslog
</pre>
*Testen (holt Seite vom Wiki und parst den Inhalt):
curl -L http://localhost:8000/example1/v3/page/html/Hauptseite
=== Scoring und Bewertungen ===
*[https://meta.wikimedia.org/wiki/Objective_Revision_Evaluation_Service Objective Revision Evaluation Service] (ORES)


=== Diverse ===
=== Diverse ===
Zeile 138: Zeile 320:
*http://www.mediawiki.org/wiki/Extension:SimpleFeed , [http://www.mediawiki.org/wiki/Extension_talk:SimpleFeed#PHP_5.3_problems PHP 5.3 problem]
*http://www.mediawiki.org/wiki/Extension:SimpleFeed , [http://www.mediawiki.org/wiki/Extension_talk:SimpleFeed#PHP_5.3_problems PHP 5.3 problem]
*http://www.mediawiki.org/wiki/Extension:MagicNoCache
*http://www.mediawiki.org/wiki/Extension:MagicNoCache
*https://www.mediawiki.org/wiki/Extension:MobileFrontend
*http://www.mediawiki.org/wiki/Extension:CategoryWatch


== Skins ==
== Skins ==
*[https://www.mediawiki.org/wiki/Skin:Chameleon Chameleon]
=== Allgemeine Infos ===
=== Allgemeine Infos ===
*http://www.mediawiki.org/wiki/Manual:Skins/de
*http://www.mediawiki.org/wiki/Manual:Skins/de
*http://www.mediawiki.org/wiki/Manual:Skin_configuration
*http://www.mediawiki.org/wiki/Manual:Skin_configuration
*http://blog.redwerks.org/2012/02/08/mediawiki-skinning-tutorial/


=== bentofluid ===
=== bentofluid ===
Zeile 193: Zeile 380:
LocalSettings.php:
LocalSettings.php:
<pre>
<pre>
$wgScriptPath = '/wiki';        # Path to the actual files, in subdirectory here!!
$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
$wgArticlePath = '/wiki/$1';  # Virtual path. This directory SHOULD be different from the one used in $wgScriptPath
$wgUsePathInfo = true;        # Enable use of pretty URLs
$wgUsePathInfo = true;        # Enable use of pretty URLs
Zeile 199: Zeile 386:


Hinweise:
Hinweise:
*Normalerweise sollten $wgScriptPath und $wgArticlePath unterschiedlich sein, also nicht beide auf ''/wiki'' zeigen. Mit einem Trick beim Apache ReWrite geht es aber doch. Vorteile: $wgScriptPath kann auf ''wiki'' stehen bleiben, damit alle alte Links mit ''/wiki/index.php/'' noch funktionieren. $wgArticlePath bleibt auf ''wiki'', damit auch die neue URL als ''/wiki'' im Browser steht.
*Alte Links mit ''/wiki/index.php/'' funktionieren danach nicht mehr, wenn man MediaWiki zuvor nach /wiki installiert hat.


Apache:
Apache:
<source lang="apache">
<source lang="apache">
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/wiki/index.php [L]
</source>
</source>


Weblinks:
Weblinks:
*http://www.mediawiki.org/wiki/Manual:Short_URL
*http://www.mediawiki.org/wiki/Manual:Short_URL
*http://www.mediawiki.org/wiki/Manual:Short_URL/Apache
*http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
*http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
=== Bookmarklet ===
Markiertes Wort suchen auf einer Wiki-Seite, siehe Beispiele:
*https://en.wiktionary.org/wiki/Help:Tips_and_tricks/Bookmarklets
*Beispiel kruedewagen.de für Firefox:
javascript:(function(){q=window.getSelection().toString();if(!q)q=prompt('Kruedewagen:');%20if(q)location.href='https://kruedewagen.de/w/wiki.phtml?search='+encodeURI(q);})()
*Ab MediaWiki 1.29 mit "index.php" <ref>https://www.mediawiki.org/wiki/MediaWiki_1.29#Other_changes</ref>:
javascript:(function(){q=window.getSelection().toString();if(!q)q=prompt('Kruedewagen:');%20if(q)location.href='https://kruedewagen.de/w/index.php?search='+encodeURI(q);})()
=== 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:
*[http://www.mediawiki.org/wiki/Manual:MIME_type_detection mediawiki.org]
*[http://www.mediawiki.org/wiki/Manual_talk:MIME_type_detection#Fix_for_Uploading_MS_Word_2007_.28and_greater.29_Files mediawiki.org]
*[http://www.headcrash.us/blog/2010/10/uploading-docx-pptx-xlsx-and-other-new-office-formats-to-mediawiki/ Blog]
=== Debugging ===
*[https://www.mediawiki.org/wiki/Manual:How_to_debug#SQL_errors SQL Debugging]
=== Backup ===
==== XML Dump ====
Alle Wiki-Seiten als XML exportieren:
php dumpBackup.php --current --output=bzip2:/tmp/wiki-dump.xml.bz2
== Performance ==
*HHVM
**https://www.mediawiki.org/wiki/HHVM
**http://phpmagazin.de/news/wikipedia-wechsel-hhvm-178340


== Tools ==
== Tools ==
*Wiki-Inhalt und andere Webinhalte offline mit [http://www.openzim.org openZIM], siehe [http://www.pro-linux.de/news/2009/14862.html pro-linux.de]
*Wiki-Inhalt und andere Webinhalte offline mit [http://www.openzim.org openZIM], siehe [http://www.pro-linux.de/news/2009/14862.html pro-linux.de]
*[http://www.mediawiki.org/wiki/Visual_editor Visual editor project]
*[http://www.mediawiki.org/wiki/Visual_editor Visual editor project] - WYSIWYG Editor
**http://www.mediawiki.org/wiki/Extension:VisualEditor
**http://www.mediawiki.org/wiki/VisualEditor
**https://www.mediawiki.org/wiki/VisualEditor:Welcome
**http://de.wikipedia.org/wiki/Wikipedia:Technik/Text/Edit/VisualEditor
**http://www.heise.de/newsticker/meldung/Wikipedia-testet-WYSIWYG-Editor-1623863.html
**http://www.heise.de/meldung/Neuer-Wikipedia-Editor-fuer-alle-1925045.html
*[http://meta.wikimedia.org/wiki/RENDER/Supporting_Tools_for_Wikipedia RENDER]-Tools für Statistiken und Tasks, siehe auch Wikimedium 04/12.
*http://en.wikipedia.org/wiki/Wikipedia:VisualEditor
 
== Update-Probleme ==
Probleme beim Update von MW 1.26.x nach 1.27:
*Semanitic MediaWiki muss auf 2.4 aktualisiert werden.
*Extension "CategoryWatch" benutzt deaktivierte "wfMsg()" Funktionen. Lösung: Ersetzen siehe [https://www.mediawiki.org/wiki/Extension_talk:CategoryWatch#MW_1.27].
*Extension "EditSubpages" benutzt deaktivierte "wfMsg()" Funktionen. Lösung: Update der Extension.
*Extension "HeaderTabs" benutzt deaktivierte "wfMsg()" Funktionen. Lösung: Update der Extension.
*Extension "PdfExport" benutzt deaktivierte "wfMsg()" Funktionen und produziert weitere Fehler. Lösung: nicht bekannt.
 
== 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)
composer require mediawiki/side-bar-menu @dev
"mediawiki/side-bar-menu": "@dev"
*The new SMW setup also works after upgrading to MW 1.22.1 (compatibility)
 
*When an error occurs like "mediawiki/semantic-media-wiki: 2.5.0 installed, ~2.5 required.", just execute:
php maintenance/update.php --skip-external-dependencies
 
=== 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 --no-dev"
 
To enable it again:
*re-add the ''require'' line into ''composer.json''
*run "composer update --no-dev"
 
== Projekte ==
=== Wikidata ===
*[http://meta.wikimedia.org/wiki/New_Wikidata Wikidata Projekt]
*http://www.wikidata.org/wiki/Wikidata:Main_Page
*Report siehe [[c't]] 09/13 S.76
*[http://semantic-mediawiki.org/wiki/SMW_and_Wikidata SMW and Wikidata]
 
=== Statistiken und Sammlungen ===
*[http://wikiapiary.com WikiApiary] collects, graphs and analyzes information about MediaWiki websites.
**https://wikiapiary.com/wiki/Kruedewagen.de
**https://wikiapiary.com/wiki/Statistics
**https://wikiapiary.com/wiki/Semantic_statistics
 
== Wiki Farm ==
*[https://semantic-mediawiki.org/wiki/SMWCon_Spring_2015/The_Why_and_How_of_Wiki_Farms The Why and How of Wiki Farms] - with SMW
 
== MediaWiki für Unternehmen ==
*[http://de.bluespice.com Blue Spice] als MediaWiki Enterprise Distribution / Corporate Wiki
**siehe [[LM]] 09/11 S.62
 
== Literatur ==
*[http://workingwithmediawiki.com Working with MediaWiki], November 2012, Yaron Koren


== Weblinks ==
== Weblinks ==
*http://www.mediawiki.org
*http://www.mediawiki.org
*http://www.wiki4enterprise.org
*http://www.wiki4enterprise.org
*[http://www.wiki-hilfe.de wiki-hilfe.de] von Nuveon, http://www.nuveon.de/attach/News_blogentry_191013_1/nuveon_industrie40_summit_long.pdf
== Einzelnachweise ==
<references />


[[Kategorie:Webserver]]
[[Kategorie:Webserver]]
[[Kategorie:Wiki]]
[[Kategorie:Wiki]]
[[Kategorie:MediaWiki]]

Version vom 25. Dezember 2019, 13:04 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

Nicht mehr zu empfehlen:

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.

Zu kopierende Extensions (nicht unter compose-Kontrolle):

  • PageForms
  • VisualEditor

Zu empfehlen daher:

cp -rp ../$DIR/extensions/PageForms extensions/
cp -rp ../$DIR/extensions/VisualEditor extensions/
echo
cp -rp ../$DIR/extensions/Echo extensions/
cp -rp ../$DIR/extensions/Thanks extensions/
cp -rp ../$DIR/extensions/ContributionScores extensions/
cp -rp ../$DIR/extensions/CSS extensions/
cp -rp ../$DIR/extensions/EditSubpages extensions/
cp -rp ../$DIR/extensions/EtherpadLite extensions/
cp -rp ../$DIR/extensions/MagicNoCache extensions/
cp -rp ../$DIR/extensions/Matomo extensions/
cp -rp ../$DIR/extensions/Widgets extensions/
cp -rp ../$DIR/extensions/HeaderTabs extensions/

Extensions Update

Einige zusätzliche Extensions haben spezifische Branches für MediaWiki Haupt-Releases (z.B. origin/REL1_25). Diese sollten aktualisiert werden.

  • PageForms
  • Echo
  • Thanks
  • SyntaxHighlight_GeSHi
cd extensions/SyntaxHighlight_GeSHi
composer update
vi vendor/kzykhys/pygments/src/KzykHys/Pygments/Pygments.php
$process = $builder->getProcess()->setStdin($code);
$process = $builder->getProcess()->setInput($code);
  • VisualEditor
    • nicht vergessen: "cd VisualEditor; git submodule update --init"
  • SemanticFormsInputs, fix for MW 1.26 see [1]
  • OATHAuth
composer update --no-dev

Composer konfigurieren und aktualisieren

Wenn composer benutzt wird - seit MW 1.25 mandatory:

  • Die zusätzlichen Pakete (z.B. Semantic MediaWiki) aus ../$DIR/composer.json in die "require" Sektion eintragen
vi 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.5",
                "mediawiki/semantic-result-formats": "~2.5",
                "phpoffice/phpexcel": "1.8.0",
                "mediawiki/universal-language-selector": "2017.10"
        }
}
  • vendor Verzeichnis kopieren
cp -rp ../$DIR/vendor .
cp -rp ../$DIR/vendor .
cp -rp ../$DIR/vendor .
  • Composer Update durchführen (fehlende Dateien werden dabei installiert und alle Versionen aktualisiert)
composer selfupdate
composer update --no-dev
  • Dateien in vendor und extentions 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

php maintenance/update.php

bzw.

php maintenance/update.php --skip-external-dependencies

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

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 [2].

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:

Dynamic parser functions that trigger on the current user:

Benachrichtiungen

Echo (Notifications)

Extensions:

Doku:

Visual Editor

Siehe:

Installation / Konfiguration:

  • Node.js: Version 10.x
  • ACHTUNG: Bei verschiedenen Node.js Versionen auf $PATH achten (wenn "npm" ausgeführt wird).
  • php5-curl ist nötig
  • /etc/parsoid/localsettings.js
        parsoidConfig.setMwApi({ uri: 'http://www.example.com/w/api.php', domain: 'example1', prefix: 'example1' });
        parsoidConfig.setMwApi({ uri: 'http://www.example.org/api.php', domain: 'example2', prefix: 'example2' });
  • /etc/parsoid/parsoid.env
        VCAP_APP_PORT=8000
        NODE_PATH=/opt/parsoid/node_modules
        PORT=8000
        INTERFACE=127.0.0.1
  • Symlink: /opt/parsoid/localsettings.js -> /etc/parsoid/localsettings.js
  • /etc/systemd/system/multi-user.target.wants/parsoid.service
[Unit]
Description=Mediawiki Parsoid web service on node.js
Documentation=http://www.mediawiki.org/wiki/Parsoid
Wants=local-fs.target network.target
After=local-fs.target network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
User=nobody
Group=nobody
WorkingDirectory=/opt/parsoid
EnvironmentFile=-/etc/parsoid/parsoid.env
ExecStart=/usr/bin/node /opt/parsoid/bin/server.js -n 2
KillMode=process
Restart=on-success
PrivateTmp=true
StandardOutput=syslog
  • Testen (holt Seite vom Wiki und parst den Inhalt):
curl -L http://localhost:8000/example1/v3/page/html/Hauptseite

Scoring und Bewertungen

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:

Bookmarklet

Markiertes Wort suchen auf einer Wiki-Seite, siehe Beispiele:

javascript:(function(){q=window.getSelection().toString();if(!q)q=prompt('Kruedewagen:');%20if(q)location.href='https://kruedewagen.de/w/wiki.phtml?search='+encodeURI(q);})()
  • Ab MediaWiki 1.29 mit "index.php" [1]:
javascript:(function(){q=window.getSelection().toString();if(!q)q=prompt('Kruedewagen:');%20if(q)location.href='https://kruedewagen.de/w/index.php?search='+encodeURI(q);})()

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

Backup

XML Dump

Alle Wiki-Seiten als XML exportieren:

php dumpBackup.php --current --output=bzip2:/tmp/wiki-dump.xml.bz2

Performance

Tools

Update-Probleme

Probleme beim Update von MW 1.26.x nach 1.27:

  • Semanitic MediaWiki muss auf 2.4 aktualisiert werden.
  • Extension "CategoryWatch" benutzt deaktivierte "wfMsg()" Funktionen. Lösung: Ersetzen siehe [3].
  • Extension "EditSubpages" benutzt deaktivierte "wfMsg()" Funktionen. Lösung: Update der Extension.
  • Extension "HeaderTabs" benutzt deaktivierte "wfMsg()" Funktionen. Lösung: Update der Extension.
  • Extension "PdfExport" benutzt deaktivierte "wfMsg()" Funktionen und produziert weitere Fehler. Lösung: nicht bekannt.

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)
composer require mediawiki/side-bar-menu @dev
"mediawiki/side-bar-menu": "@dev"
  • The new SMW setup also works after upgrading to MW 1.22.1 (compatibility)
  • When an error occurs like "mediawiki/semantic-media-wiki: 2.5.0 installed, ~2.5 required.", just execute:
php maintenance/update.php --skip-external-dependencies

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 --no-dev"

To enable it again:

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

Projekte

Wikidata

Statistiken und Sammlungen

Wiki Farm

MediaWiki für Unternehmen

  • Blue Spice als MediaWiki Enterprise Distribution / Corporate Wiki
    • siehe LM 09/11 S.62

Literatur

Weblinks

Einzelnachweise