MediaWiki kasutamine Debianiga

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

MediaWiki http://www.mediawiki.org/wiki/MediaWiki PHP keeles progammeeritud Wiki tarkvara.

MediaWiki paigaldamine

Tundub, et 2016 aastal töötab MediaWiki v. 1.27.1 sellises keskkonnas

  • Debian v. 9 Stretch keskkonnas
  • PHP v. 7
  • PostgreSQL v. 9.6

Ettevalmistamine, paigaldatakse pgdg postresql-12

# apt-get install postgresql-12
# apt-get install php-pgsql php-gd

ja paigaldame paketihaldusest kõik va mediawiki ise

# apt-get install `echo $(apt-get install mediawiki -s | grep ^Inst | grep -v mediawiki | awk {'print $2'})` -s 

Andmebaas

MediaWiki andmebaasina on kõige pikema ajalooga MySQL, tundub, et 2012 aastal töötab ka PostgreSQL, sobib kasutada sellist nt kasutajat

# su - postgres
$ psql
sql> CREATE ROLE mw LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
sql> ALTER ROLE mw SET TimeZone='GMT';
sql> ALTER ROLE mw SET DateStyle='ISO, YMD';
sql> ALTER ROLE mw SET search_path=mediawiki, public;
sql> ALTER ROLE mw SET client_min_messages='error';
sql> \password mw

ja sellist andmebaasi

CREATE DATABASE mw
   WITH OWNER = mw
        ENCODING = 'UTF8'
        TABLESPACE = pg_default
        LC_COLLATE = 'et_EE.UTF-8'
        LC_CTYPE = 'et_EE.UTF-8'
        CONNECTION LIMIT = -1;

Tavaliselt kasutatakse MediaWiki andmete jaoks andmebaasi skeemi 'mediawiki' (seal põhjusel on search path esimesel kohal 'mediawiki'.

Veebiserver

Nn ilusate URLide jaoks sobib kasutada nt sellist Apache virtual hosti sektsiooni

Alias /wiki /srv/www/mw/index.php
<Directory /srv/www/mw>
  Options All
  AllowOverRide All
  Order Allow,Deny
  Allow from All
</Directory>

kusjuures MediaWiki seadistusfailis LocalSettings.php tuleb kasutada muu hulgas selliseid ridu

$wgScriptPath        = "/mw";
$wgScriptExtension   = ".php";
$wgArticlePath       = "/wiki/$1";
$wgUsePathInfo       = true;

MediaWiki rakendus

Esmalt tuleb kopeerida http://www.mediawiki.org/ aadressilt soovitavalt viimase stabiilse MediaWiki tarkvara versioon ning pakkida lahti veebijuurika kataloogi

# cd /srv/www
# tar zxf mediawiki.tar.gz
# chown -R www-data:www-data mw-1.9.6

Seejärel avada vastav lehekülg brauseris nt http://x.x.x.x/ ja läbida installeri dialoogid. Paigaldamise lõpus öeldakse kokkuvõttes õnnestumise või ebaõnnestumise kohta. Peale brauseriga töötamist tuleb kopeerida LocalSettings.php seadistusfaili rakenduse juurkataloogi ning kohendada failisüsteemi omanik:grupp väärtused.

MediaWiki seadistamine

Ligipääsuprivileegide kehtestamine

Selleks, et veebiliidese kaudu ei saaks wikisse kasutajaid tekitada sobib kasutada seadistusfailis LocalSettings.php ridu

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createaccount'] = false;

MediaWiki kasutamine

TODO

Erileheküljed

Nn Erilehekülgede sektsioonis on mitmed halduseks või wikis toimuvast ülevaate saamiseks vajalikud leheküljed, nt

  • Kõik leheküljed
  • Piltide loend
  • Kasutajad
  • Lehekülgede eksport/import
  • Versioon

Tekstide importimine

MediaWiki teksti importimiseks saab kasutada MediaWikist eksporditud tekste.

Failide üleslaadimine

Vaikimisi ei saa wikisse faile üles laadida, üleslaadimise lubamiseks tuleb kasutada LocalSetting.php failis nt ridu

$wgEnableUploads = true;
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'patch', 'txt', 'log' );

Massiliseks failide mitte-interaktiivseks wikisse laadimiseks sobib kasutada skripti maintenance/importImages.php, nt

$ php5 importImages.php --user=priit /tmp/pildid --overwrite --comment='Priidu kopeeritud'

kus

  • --user=priit - kasutaja kellena näidatakse, et andmed wikisse kopeeriti

Seejuures tuleb arvestada, et nii üleslaaditud failid on failisüsteemis selle kasutaja:grupiga, millena skripti käivitati.

MediaWiki tarkvara uuendamine

Olemasoleva tarkvara versiooni saab küsida

Erileheküljed -> Versioon

MediaWiki uuendamist kirjeldatakse aadressil https://www.mediawiki.org/wiki/Manual:Upgrading. MediaWiki uuendamiseks on kaks erinevat võimalust

  • tekitada uuemast versioonist uus puhas paigaldus (failisüsteemi ja andmebaasi osas) ning laadida artiklite .xml dump sisse (lisaks pildid)
  • uuendada olemasolevat failisüsteemi ning rakendada skriptiga andmebaasimuudatused

Teise variandi puhul on veel omakorda mitmeid võimalusi, nt

  • kopeerida olemasolev failisüsteemi osa üle uuema sisuga
  • rakendada olemasolevale failisüsteemi osale patch abil muudatused (võimalik vaid minor uuenduste puhul, nt 1.20.2 -> 1.20.3)

Failisüsteemi osa paikamine uue tar.gz arhiivi olemasoleva kõrvale lahtipakkimise teel

v. 1.27.1 uuendamise juhend õpetab, et uue versiooni .tar.gz tuleb lahti pakkida tühja kataloogi ning seejärel

  • pg_dump ja pg_restore abil migreerida vajadusel baas uuele baasi mootorile
  • kopeerida vanast LocalSettings.php (maksab jälgida mis on muutunud, kuigi tundub, et mitte midagi märkimisväärset nt v. 1.21.x -> 1.27.1 uuendamisel)
  • extensions ja skins alla kopeerida vajalike asjade uus versioon isandate käest
  • uuendada baas
$ cd maintenance
$ php update.php
  • kohendada failisüsteemis failide omanikud

Failisüsteemi osa paikamine uue tar.gz arhiivi üle olemasoleva lahtipakkimise teel

Sellised sammud sobivad sama major versiooni uuendamiseks, nt 1.16.0 -> 1.16.5

  • Lõpetada kasutajate ligipääs veebikohale.
  • Teha varukoopia andmebaasist ja veebiserveris olevatest andmetest.
  • Pakkida lahti uue versiooni arhiiv vana peale, failid asendatakse
$ tar zxf /opt/postgres/20110506/mediawiki-1.16.5.tar.gz -C /srv/www/html/wiki/ --strip-components=1

Failisüsteem osa paikamine uue versiooni patch'iga paikamise teel

# patch -p1 --dry-run < ../../private/mediawiki-1.18.4.patch 
patching file includes/DefaultSettings.php
patching file includes/SkinTemplate.php
patching file includes/upload/UploadBase.php
patching file languages/Language.php
patching file RELEASE-NOTES-1.18

Kui probleeme pole, siis rakendada muudatused

# patch -p1 < ../../private/mediawiki-1.18.4.patch 

Andmebaasi uuendamine

  • Rakendada andmebaasi-uuendused
$ cd maintenance
$ update.php 
MediaWiki 1.16.5 Updater

Going to run database updates for qt
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
... search_path for user "qt" looks correct (mediawiki, public)
Setting client_min_messages to 'error' for user "qt"
Setting DateStyle to 'ISO, YMD' for user "qt"
... default value of "TimeZone" is correctly set to "GMT" for user "qt"
... sequences already updated
... sequences already updated
... table "category" already exists
... table "mediawiki_version" already exists
... table "mwuser" already exists
...

MediaWiki tarkvara uuendamine 20200114 v. 1.27.3 - 1.34.0

Uuendamine

  • operatsioonisüsteem - debian v. 9 -> debian v. 10
  • postgresql v. 9.6 -> v. 12
postgres@db-4:~/20200112$ pg_dumpall > pg_dumpall-20200114.sql

Uuendamine toimub üldiselt tavalisel viisil, aga selliste erisustega

  • tekitada wikisse kasutajad kõigile artiklite autoritele
  • kohendada sql sisu vajadusel

Export ja Import

$ php dumpBackup.php --full > mw-1.16.5-dumpBackup.xml
2012-01-29 19:26:41: qt 3 pages (0.024/sec), 100 revs (0.795/sec), ETA 2012-01-29 23:05:39 [max 10542]
2012-01-29 19:26:41: qt 6 pages (0.048/sec), 200 revs (1.588/sec), ETA 2012-01-29 21:15:14 [max 10542]
2012-01-29 19:26:42: qt 18 pages (0.142/sec), 300 revs (2.365/sec), ETA 2012-01-29 20:38:52 [max 10542]
...
$ php importDump.php mw-1.16.5-dumpBackup.xml

Pildid tuleb lisada käsitsi

  • kopeerida images kataloogis ühte kataloogi pildid kokku
  • öelda
$ cd maintenance
$ php importImages.php --user=Priit /tmp/pildid --overwrite --comment='Priidu kopeeritud'

Varundamine ja taaste

MediaWiki varundamiseks tuleb pöörata tähelepanu sellistele andmetele

  • andmebaasi mediawiki skeem, kuhu on salvestatud wiki artiklite tekstid
  • veebijuurika failisüsteem, kus on PHP mootor + üles laaditud failid
  • lisaks peaks olema teada süsteemi parameetrid, nt andmebaasi kodeering, veebiserver seadistused jms

Skin kasutamine

Skin abil saab kontrollida Mediawiki väljanägemist, sh kuidas ta paistab nutiseadmel. Kasutamiseks tuleb skin kopeerida ja pakkida lahti alamkataloogi skins.

MediaWiki nutitelefonile

Kuna nutitelefoni ja tahvelarvuti ekraan on töökohaarvuti omast reeglina oluliselt pisem (nt vastavalt 5" ja 10" diagonaal), annab teksti esitamisel parema tulemuse väiksemale erkaanile paremini sobiv vormindus. Üks otsekohene viis seda korraldada on kasutada väiksema ekraani jaoks ettevalmistatud MediaWiki skin'i, nt http://www.mediawiki.org/wiki/Manual:Gallery_of_user_styles#WPtouch. Kasutamiseks tuleb

  • pakkida WPtouch arhiiv lahti MediaWiki rakenduse kataloogi alamkataloogis
skins/
  • asendada seadistusfailis LocalSettings.php rida (või sarnane)
$wgDefaultSkin = "monobook";

nt lõiguga

if (preg_match("/(mobile|webos|opera mini)/i", $_SERVER['HTTP_USER_AGENT'])) {
  $wgDefaultSkin = 'wptouch';
} else {
  $wgDefaultSkin = 'monobook';
}

Extension kasutamine

Extensions abil laiendatakse Mediawiki funktsionaalsust. Extension juurutamiseks tuleb vastav .tgz fail alla laadida ning pakkida lahti alamkataloogi extensions

# ls -ld mw-1.9.3/extensions/*
drwxr-xr-x  4 501 staff 4096 Aug 22 23:53 mw-1.9.3/extensions/Cite
drwxr-xr-x  4 501 staff 4096 Aug 22 23:53 mw-1.9.3/extensions/CiteThisPage
drwxr-xr-x 12 501 staff 4096 Aug 22 23:53 mw-1.9.3/extensions/ConfirmEdit
drwxr-xr-x  6 501 staff 4096 Aug 22 23:53 mw-1.9.3/extensions/Gadgets
drwxr-xr-x  4 998   998 4096 Jun 14 02:13 mw-1.9.3/extensions/googleAnalytics
...

Google Analytics

GA extension asub aadressil https://www.mediawiki.org/wiki/Extension:Google_Analytics_Integration ja vastav sektsioon LocalSettings.php faili on nt

require_once "$IP/extensions/googleAnalytics/googleAnalytics.php";
// Replace xxxxxxx-x with YOUR GoogleAnalytics UA number
$wgGoogleAnalyticsAccount = "UA-xxx-1"; 
// Optional Variables (both default to true)
$wgGoogleAnalyticsAnonymizeIP = false;
// $wgGoogleAnalyticsIgnoreSysops = false;
// $wgGoogleAnalyticsIgnoreBots = false;
// If you use AdSense as well and have linked your accounts, set this to true to enable tracking
// $wgGoogleAnalyticsAddASAC = false;

kus

  • TODO

SSL offload

Tundub, et MediaWiki töötab üsna hästi SSL offload taga, nt NginX puhul. Selleks tuleb

  • LocalSetting failis kasutada vastavat rida, nt
## The protocol and server name to use in fully-qualified URLs
$wgServer           = "https://www.auul.pri.ee";
  • Apache seadistusfailis rida
SetEnv HTTPS on

Kasulikud lisamaterjalid