Server Installation/MediaWiki: Unterschied zwischen den Versionen
Leo (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
|||
| (4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
== Grundinstallation == |
== Grundinstallation == |
||
siehe https://github.com/opennet-initiative/ansible/tree/main/roles/mediawiki |
|||
TODO |
|||
# allow only registered users to edit pages |
|||
$wgGroupPermissions['*']['edit'] = false; |
|||
# allow new users to create an account |
|||
$wgGroupPermissions['*']['createaccount'] = true; |
|||
# require confirmation of new accounts via email |
|||
$wgEmailConfirmToEdit = true; |
|||
# Erlauben von Dateiendungen |
|||
$wgFileExtensions[] = "pdf"; |
|||
$wgFileExtensions[] = "txt"; |
|||
$wgFileExtensions[] = "zip"; |
|||
$wgFileExtensions[] = "tar"; |
|||
$wgFileExtensions[] = "gz"; |
|||
$wgFileExtensions[] = "dia"; |
|||
$wgFileExtensions[] = "odt"; |
|||
$wgFileExtensions[] = "sh"; |
|||
$wgFileExtensions[] = "dia"; |
|||
== Updates == |
== Updates == |
||
Offizielle Doku: https://www.mediawiki.org/wiki/Manual:Upgrading |
|||
Vorab: Backup der Installation und der DB prüfen! |
Vorab: Backup der Installation und der DB prüfen! |
||
| Zeile 56: | Zeile 41: | ||
Bei Fehlern inbesondere das PHP Logfile unter ''/var/log/php.log'' konsultieren. Weiterhin liefert MediaWiki in jede Seite Debug Informationen als HTML Kommentar falls ''$wgDebugComments = true;'' in ''LocalSettings.php'' aktiviert. |
Bei Fehlern inbesondere das PHP Logfile unter ''/var/log/php.log'' konsultieren. Weiterhin liefert MediaWiki in jede Seite Debug Informationen als HTML Kommentar falls ''$wgDebugComments = true;'' in ''LocalSettings.php'' aktiviert. |
||
=== Upgradepfad von 1.20.6 nach 1.43.9 === |
|||
== Apache Konfiguration == |
|||
====Backup==== |
|||
see https://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki |
|||
mysqldump -h hostname -u userid -p --default-character-set=charset dbname > backup.sql |
|||
e.g. |
|||
mariadb-dump -h localhost -u wikiuser -p --default-character-set=binary my_wiki | gzip > backup.sql.gz |
|||
mysqldump -h localhost -u wiki_user -p wiki_1206 | gzip > backup.sql.gz |
|||
ssh serverXXX "mysqldump -h localhost -u wiki_user -p'XXXXXXXX' wiki_1206 | gzip -c" > backup.sql.gz |
|||
tar zcvhf wikidata.tgz /srv/www/htdocs/wiki |
|||
most important: LocalSettings.php + images/ |
|||
e.g. |
|||
ssh your_username@your_server_ip "cd /var/www/ && tar zcvhf - mediawiki-1.20.6" > mediawiki-1.20.6-data.tar.gz |
|||
====Restore==== |
|||
see https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Restoring_a_wiki_from_backup |
|||
mariadb-admin -u wikiuser -p drop my_wiki |
|||
mariadb-admin -u wikiuser -p create my_wiki |
|||
mariadb -u wikiuser -p my_wiki < dump_of_wikidb.sql |
|||
for <= 1.39: |
|||
Einbindung unter /wiki: |
|||
apt update |
|||
alias /w /var/www/mediawiki-<version> |
|||
apt install vim-tiny |
|||
alias /wiki /var/www/mediawiki-<version>/index.php |
|||
vim.tiny |
|||
RewriteEngine on |
|||
php maintenance/update.php |
|||
RewriteRule ap_button_([0-9\.]+).png http://www.opennet-initiative.de/button/?ap=$1 |
|||
RewriteRule ^/index.php/(.*) http://wiki.opennet-initiative.de/wiki/$1 |
|||
Besonderheit für /wiki/Opennet_Blog: |
|||
RewriteRule ^/wiki/Opennet_Blog http://wiki.opennet-initiative.de/wiki/Spezial:OnBlog/ [P] |
|||
ProxyPassReverse /wiki/Opennet_Blog http://wiki.opennet-initiative.de/wiki/Spezial:OnBlog/ |
|||
Errors: |
|||
== PHP Konfiguration == |
|||
Wikimedia\Rdbms\DBReadOnlyError from line 1008 of /var/www/html/includes/libs/rdbms/database/Database.php: Database is read-only: The master database server is running in read-only mode. |
|||
#0 /var/www/html/includes/libs/rdbms/database/Database.php(1286): Wikimedia\Rdbms\Database->assertIsWritableMaster() |
|||
-> solution: comment out lines |
|||
Erhöhung des Session Timeouts auf 48 h in ''/etc/php5/apache2/php.ini'' |
|||
session.gc_maxlifetime = 172800 |
|||
Error: |
|||
Sessions werden unter ''/var/lib/php5/'' gespeichert. |
|||
Table logging contains log_user field. Dropping ...Wikimedia\Rdbms\DBQueryError from line 1713 of /var/www/html/includes/libs/rdbms/database/Database.php: Error 1091: Can't DROP INDEX `log_user_text_type_time`; check that it exists (database) |
|||
Function: Wikimedia\Rdbms\Database::sourceFile( /var/www/html/maintenance/archives/patch-drop-logging-user-fields.sql ) |
|||
Query: ALTER TABLE `logging` |
|||
DROP INDEX user_time, |
|||
DROP INDEX log_user_type_time, |
|||
DROP INDEX log_user_text_type_time, |
|||
DROP INDEX log_user_text_time, |
|||
DROP COLUMN log_user, |
|||
DROP COLUMN log_user_text, |
|||
ALTER COLUMN log_actor DROP DEFAULT |
|||
->solution: comment all line out in vim.tiny maintenance/archives/patch-drop-logging-user-fields.sql |
|||
== Extensions == |
|||
Step 1: Setup 1.35 |
|||
Bei Opennet verwendete MediaWiki Extensions. |
|||
use docker: https://hub.docker.com/_/mediawiki/tags?name=1.35 |
|||
=== Standarderweiterungen === |
|||
for install use values: |
|||
database |
|||
wikuser |
|||
example |
|||
Bug that MediaWiki cannot edit the database (last step of install): |
|||
* ParserFunctions - Funktionen für Vorlagen |
|||
https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/54d2416fbcb3a7d0e2a197ca58a755134bd18866%5E%21/#F0 |
|||
* UsabilityInitiative - verbesserte Editoren/Menus |
|||
root@a2f768f6694b:/var/www/html/includes/libs/rdbms/database# vim.tiny DatabaseMysqlBase.php |
|||
* Vector - verbessertes Design |
|||
* ConfirmEdit - Anti-Spam Captcha |
|||
* WPtouch - Skin für mobile Endgeräte |
|||
* Simple mobile skin auto change - automatischer Skin Wechsel zu WPtouch bei mobilen Endgeräten |
|||
* InstantCommons - Bildeinbindung aus Wikipedia Commons |
|||
* Loops - Schleifen ausführen, benötigt für APData |
|||
* ContactForm - öffentliches Kontaktformular ([[Special:Contact]]; Template: [[MediaWiki:Contactpage]], [[MediaWiki:Contactpage-defsubject]], [[MediaWiki:Contactpage-pagetext]]; Versand via [[Benutzer:OpennetContactForm]]; Captcha via ConfirmEdit Extension) |
|||
* ImageMap - Erzeugen von Grafiken |
|||
* GraphViz - spezielle Beschreibungssprache für Graphen, setzt ImageMap Extension (MediaWiki) sowie "graphviz" und "graphviz-dev" (Debian) voraus |
|||
=== Eigenentwicklungen/Anpassungen === |
|||
* APData - AP-Statusdaten/OLSR-Nameservice |
|||
* OnBlog - Opennet Blog Extension auf Wikibasis |
|||
** OnBlogOverview - Liste der letzten Blogeinträge |
|||
** OnBlogSpecialAll - Blogausgabe alle Beiträge ([[Spezial:OnBlog/]]) |
|||
** OnBlogSpecialUser - Blogausgabe Beiträge eines Benutzers ([[Spezial:OnBlogUser/Benutzer:<Username>]]) |
|||
** BlogFeed - Blogausgabe als RSS Feed ([[Spezial:BlogFeed]]) |
|||
* OnMisc - Sammlung verschiedener Opennet Extensions |
|||
** OnApPos |
|||
** OnApStatus |
|||
** OnLastSeen |
|||
** OnRandomImage - Zufallsbild aus der Gallery |
|||
** OnRemoteAddrExtension |
|||
** OniFrame -- Openstreetmap-Karte (slippymap) einbinden |
|||
*** Beispiel: <nowiki> |
|||
<OniFrame src="https://www.opennet-initiative.de/map/?lat=54.09130&lon=12.12308&zoom=16&layers=B00TTTT" height="300px" width="40%" style="padding:0px;" scrolling="no" marginheight="0" marginwidth="0" frameborder="0"></OniFrame> |
|||
</nowiki> |
|||
== Namespaces == |
|||
== Create offline copy == |
|||
* 100 = EN |
|||
wget -m -k -l 7 -E -p -t 6 http://localhost:8080 |
|||
* 101 = ES |
|||
* 102 = FR |
|||
-m: mirror - implies -r -N -l inf --no-remove-listing |
|||
-k: convert links for offline use |
|||
-l 7: depth of 7 |
|||
-t 6: wait 6sec on ... |
|||
-E: adjust-extension |
|||
-p: download all files to display html page |
|||
-R: reject pattern |
|||
Verwendet für Internationalisierung mit der [[Vorlage:Languages]] sowie [[Vorlage:Countryflag]]. |
|||
[[Kategorie:Server]] |
[[Kategorie:Server]] |
||
Aktuelle Version vom 16. September 2026, 20:16 Uhr
Aktueller Status siehe Special:Version.
Grundinstallation
siehe https://github.com/opennet-initiative/ansible/tree/main/roles/mediawiki
Updates
Offizielle Doku: https://www.mediawiki.org/wiki/Manual:Upgrading
Vorab: Backup der Installation und der DB prüfen!
MediaWiki in Read-Only Modus versetzen - LocalSettings.php:
$wgReadOnly = 'Das Opennet Wiki wird auf eine neue Softwareversion aktualisiert. \ Derzeit daher keine Bearbeitung möglich.';
Aktuelle Version herunterladen und bereit stellen in /var/www/:
wget <download-url> cp -ar mediawiki-<old-version> mediawiki-<new-version> tar xfzv mediawiki-<new-version>.tar.gz -C mediawiki-<new-version>/ --strip-components=1
- MediaWiki DB clonen und vorbereiten:
mysqldump wiki_<old-version> > /tmp/wiki_<old-version>.dmp mysqladmin create wiki_<new-version> mysql grant index, create, select, insert, update, delete, alter, lock tables on wiki_<new-version>.* to wiki_user; flush privileges; \q mysql wiki_<new-version> < /tmp/wiki_<old-version>.dmp
Neue Version in Apache aktivieren und MediaWiki DB Update durchfuehren:
- wiki.inc in /etc/apache/sites-available anpassen
- Upgrade in /var/www/mediawiki-<new-version> ausführen: php update.php
- Extensions und Skins schreittweise aktualisieren, siehe LocalSettings.php
Dateirechte korregieren - /var/www/mediawiki-<version>/
chown -R root:root * chown -R root:root .* chown -R www-data images/
Bei Fehlern inbesondere das PHP Logfile unter /var/log/php.log konsultieren. Weiterhin liefert MediaWiki in jede Seite Debug Informationen als HTML Kommentar falls $wgDebugComments = true; in LocalSettings.php aktiviert.
Upgradepfad von 1.20.6 nach 1.43.9
Backup
see https://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki
mysqldump -h hostname -u userid -p --default-character-set=charset dbname > backup.sql e.g. mariadb-dump -h localhost -u wikiuser -p --default-character-set=binary my_wiki | gzip > backup.sql.gz mysqldump -h localhost -u wiki_user -p wiki_1206 | gzip > backup.sql.gz ssh serverXXX "mysqldump -h localhost -u wiki_user -p'XXXXXXXX' wiki_1206 | gzip -c" > backup.sql.gz
tar zcvhf wikidata.tgz /srv/www/htdocs/wiki most important: LocalSettings.php + images/ e.g. ssh your_username@your_server_ip "cd /var/www/ && tar zcvhf - mediawiki-1.20.6" > mediawiki-1.20.6-data.tar.gz
Restore
see https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Restoring_a_wiki_from_backup
mariadb-admin -u wikiuser -p drop my_wiki mariadb-admin -u wikiuser -p create my_wiki mariadb -u wikiuser -p my_wiki < dump_of_wikidb.sql
for <= 1.39:
apt update apt install vim-tiny vim.tiny php maintenance/update.php
Errors:
Wikimedia\Rdbms\DBReadOnlyError from line 1008 of /var/www/html/includes/libs/rdbms/database/Database.php: Database is read-only: The master database server is running in read-only mode. #0 /var/www/html/includes/libs/rdbms/database/Database.php(1286): Wikimedia\Rdbms\Database->assertIsWritableMaster()
-> solution: comment out lines
Error:
Table logging contains log_user field. Dropping ...Wikimedia\Rdbms\DBQueryError from line 1713 of /var/www/html/includes/libs/rdbms/database/Database.php: Error 1091: Can't DROP INDEX `log_user_text_type_time`; check that it exists (database) Function: Wikimedia\Rdbms\Database::sourceFile( /var/www/html/maintenance/archives/patch-drop-logging-user-fields.sql ) Query: ALTER TABLE `logging` DROP INDEX user_time, DROP INDEX log_user_type_time, DROP INDEX log_user_text_type_time, DROP INDEX log_user_text_time, DROP COLUMN log_user, DROP COLUMN log_user_text, ALTER COLUMN log_actor DROP DEFAULT
->solution: comment all line out in vim.tiny maintenance/archives/patch-drop-logging-user-fields.sql
Step 1: Setup 1.35
use docker: https://hub.docker.com/_/mediawiki/tags?name=1.35 for install use values:
database wikuser example
Bug that MediaWiki cannot edit the database (last step of install): https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/54d2416fbcb3a7d0e2a197ca58a755134bd18866%5E%21/#F0 root@a2f768f6694b:/var/www/html/includes/libs/rdbms/database# vim.tiny DatabaseMysqlBase.php
Create offline copy
wget -m -k -l 7 -E -p -t 6 http://localhost:8080 -m: mirror - implies -r -N -l inf --no-remove-listing -k: convert links for offline use -l 7: depth of 7 -t 6: wait 6sec on ... -E: adjust-extension -p: download all files to display html page -R: reject pattern