[Õpetus] Kuidas paigaldada MediaWiki Ubuntu 20.04 LTS-i (Apache/Nginx)

root

Huviline
Joined
5 October 2021
Messages
318
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:
Code:
wget https://releases.wikimedia.org/mediawiki/1.37/mediawiki-1.37.1.tar.gz

Pakkige arhiiv lahti kausta /var/www/
Code:
sudo mkdir -p /var/www/
Code:
sudo tar xvf mediawiki-1.37.1.tar.gz -C /var/www/

Nimetage kataloog ümber:
Code:
sudo mv /var/www/mediawiki-1.35.1 /var/www/mediawiki

Seejärel peame paigaldama mõned MediaWiki nõutavad PHP laiendused:
Code:
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:
Code:
sudo systemctl restart apache2

Järgmiseks peame paigaldama välised sõltuvused Composeri (PHP sõltuvushalduri) kaudu:
Code:
sudo apt install composer
Code:
cd /var/www/mediawiki/
Code:
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:
Code:
sudo chown www-data:www-data /var/www/mediawiki/ -R

2. Andmebaasi loomine

Logige sisse MariaDB serverisse alloleva käsuga:
Code:
sudo mysql -u root

Looge MediaWiki jaoks andmebaas. See õpetus annab andmebaasile nime mediawiki, kuid võite kasutada mis tahes nime, mis teile meeldib:
Code:
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:
Code:
GRANT ALL PRIVILEGES ON mediawiki.* TO 'wikiuser'@'localhost' IDENTIFIED BY 'password';

Lõpetage ja logige välja:
Code:
flush privileges;
Code:
exit;

3. Looge MediaWiki jaoks Apache virtuaalhost või Nginxi konfiguratsioonifail

Apache
Kui kasutate Apache veebiserverit, looge MediaWiki jaoks virtuaalne host:
Code:
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:
<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:
Code:
sudo a2ensite mediawiki.conf

Ülaltoodud muudatuste jõustumiseks laadige Apache uuesti:
Code:
sudo systemctl reload apache2

Nginx
Kui kasutate Nginxi veebiserverit, looge kataloogis /etc/nginx/conf.d/ MediaWiki jaoks serveriploki fail:
Code:
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:
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:
Code:
sudo nginx -t

Kui test on edukas, laadige Nginxi veebiserver uuesti:
Code:
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:
Code:
sudo apt install certbot

Kui kasutate Apachet, paigaldage Certbot Apache pistikprogramm:
Code:
sudo apt install python3-certbot-apache

Ja käivitage see käsk, et hankida ja paigaldada TLS sertifikaat:
Code:
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:
Code:
sudo apt install python3-certbot-nginx

Järgmisena käivitage TLS sertifikaadi hankimiseks ja paigaldamiseks järgmine käsk:
Code:
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.

certificate.jpg

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.

wiki1.jpg

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

wiki2.jpg

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

wiki3.jpg

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.

wiki4.jpg

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

wiki5.jpg

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

wiki6.jpg

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.

wiki7.jpg

Mediawiki paigaldamise alustamiseks klõpsake nuppu Continue.

wiki8.jpg

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.

wiki9.jpg

Tingimuste jaoks lehe loomisel minge lihtsalt aadressile:
HTML:
wiki.your-domain.com/index.php/your-term
või
HTML:
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.
Code:
sudo nano /var/www/mediawiki/LocalSettings.php

Lisage selle faili lõppu järgmised read.
HTML:
$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.
 
Back
Top