Mediawiki software - installatienotities
Sinds zomer 2018 wordt de mediawiki software niet meer via apt beheerd maar met de hand. Reden hiervoor is dat we zelf controle willen hebben over de exacte versies die we gebruiken van de mediawiki en de extensies.
Inhoud
Softwarelocaties
- De documentroot van mediawiki voor apache2 is /var/lib/mediawiki. Deze directory bevat voornamelijk symbolic links naar bestanden in /usr/share/mediawiki, maar ook wat echte directories (images, config, cache, uploads) met kostbare gebruikersdata.
- /usr/share/mediawiki is zelf weer een symbolic link naar /usr/share/mediawiki-<version>, waar de echte software staat. Op dit moment is dat /usr/share/mediawiki-1.31.0.
- In deze versiespecifieke directories staan symbolic links van LocalSettings.php naar /etc/mediawiki/LocalSettings.php. (Ook bevat /etc/mediawiki een kopie van de apache2 (globale) configuratiefile mediawiki.conf. Waarom deze daar staat weet ik niet, maar hij is wel makkelijk terug te vinden zo)
- In deze versiespecifieke directories staan ook de extensies die we gebruiken (MLEB, zie verder).
Extensies
De enige extra extensie die is toegevoegd is de 'multi language extension bundle' (MLEB) waardoor we meerdere talen in de wiki kunnen ondersteunen.
Updaten van mediawiki
Maak backups
systeembackup
sudo /etc/duplicity/run.sh
databasebackups
Maak backups in sql en xml:
mysqldump -h localhost -u mediawiki -p --default-character-set=utf8 mediawiki --single-transaction > mediawikibackup.sql
mysqldump -h localhost -u mediawiki -p --xml mediawiki --single-transaction > mediawikibackup.xml
(Authorisatiegegevens staan in LocalSettings.php)
download mediawiki
De meest recente versie van mediawiki kan worden gevonden op https://www.mediawiki.org/wiki/Download. Een wget is hier wellicht handig:
wget https://releases.wikimedia.org/mediawiki/1.27/mediawiki-1.31.0.tar.gz
Het beste kun je deze eerst uncompressen in een eigen directory zodat je alle tijd hebt het pakket te bestuderen.
Lees de release notes
De release notes bevatten de meest recente instructies en gegevens. Wellicht meer recent dan de pagina die je nu leest.
Lees de release notes!
Nogmaals. Zodat je zeker weet waar je mee bezig bent.
verplaats
Voordat je hiermee aan de slag gaat is het slim om apache even te laten stoppen met het uitserveren van mediawiki (in /etc/apache2/conf-enabled).
- Verplaats de code naar /usr/share/mediawiki-<versie> en chown deze naar wikiadmin.
- maak in deze directory een symbolic link aan van LocalSettings.php naar /etc/mediawiki/LocalSettings.php
- maak in deze directory een symbolic link aan van images naar /var/lib/images
- en uiteindelijk maak een nieuwe symbolic link aan van /usr/share/mediawiki naar de nieuwe versie /usr/share/mediawiki.versie.
Kijk in de release notes of je nog andere dingen aan moet passen.
update de database
Neem nu risico en voer het database-update script 'update.php' uit in /usr/share/mediawiki/maintenance. Met een beetje geluk werkt dit.
updaten van de extensies
Het updaten van de MLEB extensie is vrijwel volledig standaard, zoals beschreven. De extensie plaats je in /usr/share/mediawiki-<versis>/extensions. Vergeet ook hier de release notes niet.
De MLEB configuratie is met enkele regels uitgebreid om de paginataal handmatig in te kunnen stellen en ziet er zo uit:
- Added this MLEB configuration:
wfLoadExtension( 'Babel' );
wfLoadExtension( 'cldr' );
wfLoadExtension( 'CleanChanges' );
$wgCCTrailerFilter = true;
$wgCCUserFilter = false;
$wgDefaultUserOptions['usenewrc'] = 1;
wfLoadExtension( 'LocalisationUpdate' );
$wgLocalisationUpdateDirectory = "$IP/cache";
require_once "$IP/extensions/Translate/Translate.php";
$wgGroupPermissions['user']['translate'] = true;
$wgGroupPermissions['user']['translate-messagereview'] = true;
$wgGroupPermissions['user']['translate-groupreview'] = true;
$wgGroupPermissions['user']['translate-import'] = true;
$wgGroupPermissions['sysop']['pagetranslation'] = true;
$wgGroupPermissions['sysop']['translate-manage'] = true;
$wgTranslateDocumentationLanguageCode = 'qqq';
$wgExtraLanguageNames['qqq'] = 'Message documentation'; # No linguistic content. Used for documenting messages
wfLoadExtension( 'UniversalLanguageSelector' );
- end MLEB configuration
- extra MLEB configuration added to be able to set page language:
$wgPageLanguageUseDB = true;
$wgGroupPermissions['sysop']['pagelang'] = true;
afronden van de update
- Laat apache2 weer doorgaan met het uitserveren van de mediawiki (als je dat in een van de voorgaande stappen al niet had gedaan)
- test
- Pas deze documentatie aan als deze aangepast of verbeterd moet worden.