Zum Inhalt springen

Server Installation/MediaWiki: Unterschied zwischen den Versionen

Aus Opennet
Inhalt gelöscht Inhalt hinzugefügt
MathiasMahnke (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „== Grundinstallation == == Updates == == Extensions == Bei Opennet verwendete MediaWiki Extensions. Eigenentwicklungen/Software mit Opennet-Anpassungen: * Blo…“
 
Leo (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(31 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Aktueller Status siehe [[Special:Version]].

== Grundinstallation ==
== Grundinstallation ==

siehe https://github.com/opennet-initiative/ansible/tree/main/roles/mediawiki


== Updates ==
== Updates ==


Offizielle Doku: https://www.mediawiki.org/wiki/Manual:Upgrading
== Extensions ==

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 ==
Bei Opennet verwendete MediaWiki Extensions.
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


Eigenentwicklungen/Software mit Opennet-Anpassungen:
* BlogFeed - RSS Feed für Opennet Blog
* APData - Anbindung OLSR/AP Datenaustausch


[[Kategorie:Server]]
Standarderweiterungen:
* ParserFunctions - Funktionen für Vorlagen
* UsabilityInitiative - verbesserte Editoren/Menus
* Vector - neuer Skin/Design

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