See õpetus näitab, kuidas paigaldada MediaWiki Ubuntu 20.04-le. MediaWiki on Wikipedia taustatarkvara. See on tasuta avatud lähtekoodiga ja tänapäeval kõige laialdasemalt kasutatav wikitarkvara. Tuntud MediaWiki kasutajad on Wikipedia.org ja wikia.com.

MediaWiki abil saate luua oma privaatse või avaliku wikisaidi. MediaWikis on palju kasulikke laiendusi, mis on loodud nii Vikipeedia kui ka muude wikisaitide jaoks.

Eeltingimused
MediaWiki on PHP-s kirjutatud programm. Selle õpetuse järgimiseks peab teil esmalt olema serverisse paigaldatud Ubuntu 20.04 LAMP või LEMP Stack.

1. MediaWiki allalaadimine

Laadige alla MediaWiki uusim stabiilne versioon:
Kood:
wget https://releases.wikimedia.org/mediawiki/1.37/mediawiki-1.37.1.tar.gz
Pakkige arhiiv lahti kausta /var/www/
Kood:
sudo mkdir -p /var/www/
Kood:
sudo tar xvf mediawiki-1.37.1.tar.gz -C /var/www/
Nimetage kataloog ümber:
Kood:
sudo mv /var/www/mediawiki-1.35.1 /var/www/mediawiki
Seejärel peame paigaldama mõned MediaWiki nõutavad PHP laiendused:
Kood:
sudo apt install php7.4-mbstring php7.4-xml php7.4-fpm php7.4-json php7.4-mysql php7.4-curl php7.4-intl php7.4-gd php7.4-mbstring texlive imagemagick
Kui kasutate Apache veebiserverit, peate Apache taaskäivitama:
Kood:
sudo systemctl restart apache2
Järgmiseks peame paigaldama välised sõltuvused Composeri (PHP sõltuvushalduri) kaudu:
Kood:
sudo apt install composer
Kood:
cd /var/www/mediawiki/
Kood:
sudo composer install --no-dev
Pange tähele, et MediaWiki ei toeta hetkel PHP8.0. Kui olete oma Ubuntu serverisse paigaldanud PHP8.0, peaksite käivitama sudo update-alternatives --config php käsu, et määrata vaikeversiooniks PHP7.4

Kui kõik sõltuvused on paigaldatud, siis käivitage järgmine käsk, et määrata veebiserveri kasutaja (www-data) selle kataloogi omanikuks:
Kood:
sudo chown www-data:www-data /var/www/mediawiki/ -R
2. Andmebaasi loomine

Logige sisse MariaDB serverisse alloleva käsuga:
Kood:
sudo mysql -u root
Looge MediaWiki jaoks andmebaas. See õpetus annab andmebaasile nime mediawiki, kuid võite kasutada mis tahes nime, mis teile meeldib:
Kood:
CREATE DATABASE mediawiki;
Seejärel käivitage MariaDB-s järgmine käsk, et luua andmebaasi kasutaja ja anda sellele kasutajale õigused. Asendage mediawiki, wikiuser ja password vastavalt eelistatud andmebaasi nime, andmebaasi kasutajanime ja kasutaja parooliga:
Kood:
GRANT ALL PRIVILEGES ON mediawiki.* TO 'wikiuser'@'localhost' IDENTIFIED BY 'password';
Lõpetage ja logige välja:
Kood:
flush privileges;
Kood:
exit;
3. Looge MediaWiki jaoks Apache virtuaalhost või Nginxi konfiguratsioonifail

Apache
Kui kasutate Apache veebiserverit, looge MediaWiki jaoks virtuaalne host:
Kood:
sudo nano /etc/apache2/sites-available/mediawiki.conf
Kopeerige ja kleepige järgmine tekst faili. Asendage wiki.your-domain.com oma tegeliku domeeninimega. Ärge unustage luua selle domeeninime jaoks DNS-i kirjet.
HTML kood:
<VirtualHost *:80>
ServerAdmin admin@your-domain.com
DocumentRoot /var/www//mediawiki/
ServerName wiki.your-domain.com

<Directory /var/www/html/mediawiki/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>

ErrorLog /var/log/apache2/mediawiki_error
CustomLog /var/log/apache2/mediawiki_access common
</VirtualHost>
Salvestage ja sulgege fail. Seejärel lubage see virtuaalne host:
Kood:
sudo a2ensite mediawiki.conf
Ülaltoodud muudatuste jõustumiseks laadige Apache uuesti:
Kood:
sudo systemctl reload apache2
Nginx
Kui kasutate Nginxi veebiserverit, looge kataloogis /etc/nginx/conf.d/ MediaWiki jaoks serveriploki fail:
Kood:
sudo nano /etc/nginx/conf.d/mediawiki.conf
Kopeerige järgmine tekst ja kleepige see faili. Asendage wiki.your-domain.com oma tegeliku domeeninimega. Ärge unustage luua selle domeeninime jaoks DNS-i kirjet.
HTML kood:
server {
listen 80;
listen [::]:80;
server_name wiki.your-domain.com;

root /var/www/mediawiki;
index index.php;

error_log /var/log/nginx/mediawiki.error;
access_log /var/log/nginx/mediawiki.access;

location / {
try_files $uri $uri/ /index.php;
}

location ~ /.well-known {
allow all;
}

location ~ /\.ht {
deny all;
}

location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
}
Salvestage ja sulgege fail. Seejärel testige Nginxi konfiguratsiooni:
Kood:
sudo nginx -t
Kui test on edukas, laadige Nginxi veebiserver uuesti:
Kood:
sudo systemctl reload nginx
4. HTTPS lubamine

HTTP liikluse krüpteerimiseks saame lubada HTTPS-i, paigaldades Let’s Encrypti tasuta TLS sertifikaadi. Käivitage järgmine käsk, et paigaldada Let’s Encrypt klient (certbot) Ubuntu 20.04 serverisse:
Kood:
sudo apt install certbot
Kui kasutate Apachet, paigaldage Certbot Apache pistikprogramm:
Kood:
sudo apt install python3-certbot-apache
Ja käivitage see käsk, et hankida ja paigaldada TLS sertifikaat:
Kood:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d wiki.your-domain.com
Kui kasutate Nginxi, peate paigaldama ka Certbot Nginxi pistikprogrammi:
Kood:
sudo apt install python3-certbot-nginx
Järgmisena käivitage TLS sertifikaadi hankimiseks ja paigaldamiseks järgmine käsk:
Kood:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d wiki.your-domain.com
Kus:
--nginx: kasutage nginxi pistikprogrammi.
--apache: kasutage Apache pistikprogrammi.
--agree-tos: nõustuge teenusetingimustega.
--redirect: sundige HTTPS 301 ümbersuunamisega.
--hsts: lisage igale HTTP vastusele päis Strict-Transport-Security. Brauseri sundimine domeeni jaoks alati TLS-i kasutama. Kaitseb SSL/TLS-i eemaldamise eest.
--staple-ocsp: lubab OCSP klammerdamise. Kehtiv OCSP vastus klammerdatakse serdi külge, mida server TLS-i ajal pakub.

Nüüd tuleks sertifikaat hankida ja automaatselt paigaldada.

Click image for larger version

Name:	certificate.jpg
Views:	143
Size:	69.9 KB
ID:	590

5. Veebipõhise paigaldusskripti käivitamine

Veebipõhise paigaldusskripti käivitamiseks minge oma veebibrauseris aadressile https://wiki.you-domain.com. Häälestusviisardi käivitamiseks klõpsake nuppu Complete the installation.

Click image for larger version

Name:	wiki1.jpg
Views:	36
Size:	31.6 KB
ID:	591

Järgmisena valige MediaWiki paigaldamiseks ja wiki enda jaoks kasutatav keel.

Click image for larger version

Name:	wiki2.jpg
Views:	36
Size:	72.2 KB
ID:	595

Seejärel kontrollib häälestusviisard teie serveri keskkonda, näiteks PHP laiendusi.

Click image for larger version

Name:	wiki3.jpg
Views:	36
Size:	132.3 KB
ID:	599

Liikuge järgmise sammu juurde. Peate konfigureerima andmebaasi sätted. Valige andmebaasitüübi jaoks MariaDB, MySQL või muu ühilduv. Sisestage andmebaasi hosti jaoks localhost ja sisestage andmebaasi nimi ning 2. sammus loodud andmebaasi kasutajanimi ja parool.

Click image for larger version

Name:	wiki4.jpg
Views:	36
Size:	58.0 KB
ID:	596

Järgmises etapis saate veebijuurdepääsuks kasutada sama andmebaasikontot.

Click image for larger version

Name:	wiki5.jpg
Views:	31
Size:	79.1 KB
ID:	594

Seejärel sisestage oma Wiki nimi ja looge administraatori konto.

Click image for larger version

Name:	wiki6.jpg
Views:	36
Size:	73.6 KB
ID:	598

Lehel Options on teil võimalus seadistada oma viki kui Open wiki, nõutav on konto loomine, ainult volitatud toimetajad ja privaatne wiki. Seejärel saate valida litsentsi.

Click image for larger version

Name:	wiki7.jpg
Views:	36
Size:	108.5 KB
ID:	593

Mediawiki paigaldamise alustamiseks klõpsake nuppu Continue.

Click image for larger version

Name:	wiki8.jpg
Views:	36
Size:	71.1 KB
ID:	597

Paigaldusprotsessi käigus luuakse fail LocalSettings.php. Peate selle faili alla laadima ja sisestama oma Ubuntu 20.04 serveri kataloogi /var/www/mediawiki/. Kui see on tehtud, pääsete juurde oma äsja paigaldatud MediaWikile aadressil http://wiki.your-domain.com.

Click image for larger version

Name:	wiki9.jpg
Views:	36
Size:	63.3 KB
ID:	592

Tingimuste jaoks lehe loomisel minge lihtsalt aadressile:
HTML kood:
wiki.your-domain.com/index.php/your-term
või
HTML kood:
wiki.your-domain.com/index.php?title=your-term
6. Kuidas seadistada SMTP e-kirjade saatmiseks

Kui teie MediaWikit kasutavad rohkem kui üks inimene, on oluline, et teie MediaWiki server saaks saata tehinguga seotud e-kirju, näiteks parooli lähtestamise e-kirju, teavituste e-kirju jne.

Redigeerige faili LocalSettings.php.
Kood:
sudo nano /var/www/mediawiki/LocalSettings.php
Lisage selle faili lõppu järgmised read.
HTML kood:
$wgSMTP = [
'host' => 'tls://mail.your-domain.com', // could also be an IP address. Where the SMTP server is located. If using SSL or TLS, add the prefix "ssl://" or "tls://".
'port' => 587, // Port to use when connecting to the SMTP server
'auth' => true, // Should we use SMTP authentication (true or false)
'username' => 'user@your-domain.com', // Username to use for SMTP authentication (if being used)
'password' => 'user_password' // Password to use for SMTP authentication (if being used)
];
Salvestage ja sulgege fail.