MediaWiki te installeren met Nginx en Let’s Encrypt SSL op Ubuntu 20.04
MediaWiki is een open-source wiki software geschreven in PHP. Je kunt er je eigen zelf gehoste wiki-website mee maken op de server. Het is een van de populairste wikiplatformen vanwege zijn eenvoud en aanpasbaarheid. Momenteel wordt het door veel bedrijven gebruikt om hun wikipagina’s te beheren. Het biedt een veelzijdig en gratis hulpmiddel voor het publiceren van inhoud op het internet.
In deze handleiding laten we zien hoe je MediaWiki installeert met Nginx webserver en Let’s Encrypt SSL op Ubuntu 20.04.
Voorwaarden
- Een server waarop Ubuntu 20.04 draait.
- Een geldige domeinnaam gekoppeld aan het IP van je server.
- Een root wachtwoord is geconfigureerd op de server.
Aan de slag
Werk eerst de systeempakketten bij naar de bijgewerkte versie door het volgende commando uit te voeren:
apt-get update -y
Als alle pakketten zijn bijgewerkt, kun je doorgaan met de volgende stap.
Installeer Nginx, MariaDB en PHP
MediaWiki vereist Nginx webserver, MariaDB databaseserver, PHP en andere extensies. Je kunt ze allemaal installeren met het volgende commando:
apt-get install nginx mariadb-server php php-fpm php-mbstring php-xml php-json php-mysql php-curl php-intl php-gd php-mbstring texlive imagemagick unzip -y
Zodra alle pakketten zijn geïnstalleerd, installeer je de Composer met het volgende commando:
apt-get install composer -y
Bewerk vervolgens het php.ini bestand en verander de standaardinstellingen:
nano /etc/php/7.4/fpm/php.ini
Wijzig de volgende regels:
memory_limit = 512M post_max_size =32M upload_max_filesize = 32M date.timezone = Asia/Kolkata
Sla het bestand op en sluit het en herstart dan de PHP-FPM om de wijzigingen toe te passen:
systemctl restart php7.4-fpm
Als je klaar bent, kun je doorgaan met de volgende stap.
Maak een MariaDB Database aan
MediaWiki gebruikt MariaDB als database backend, dus moet je een database en gebruiker voor MediaWiki aanmaken.
Maak eerst verbinding met MariaDB met het volgende commando:
mysql
Zodra je verbonden bent, maak je een database en gebruiker aan met het volgende commando:
MariaDB [(none)]> CREATE DATABASE mediadb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mediadb.* TO 'mediauser'@'localhost' IDENTIFIED BY 'password';
Spoel vervolgens de privileges door en verlaat de MariaDB met het volgende commando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Als je klaar bent, kun je doorgaan met de volgende stap.
MediaWiki downloaden
Ga eerst naar de MediaWiki website en kies de laatste versie van de MediaWiki. Voer dan het volgende commando uit om het naar je server te downloaden:
wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.2.zip
Zodra de download voltooid is, pak je het gedownloade bestand uit met het volgende commando:
unzip mediawiki-1.35.2.zip
Verplaats vervolgens de uitgepakte directory naar de Nginx web root directory met het volgende commando:
mv mediawiki-1.35.2 /var/www/html/mediawiki
Verander vervolgens de directory naar de MediaWiki en installeer alle PHP afhankelijkheden met het volgende commando:
cd /var/www/html/mediawiki
composer install --no-dev
Zodra alle afhankelijkheden zijn geïnstalleerd, stel je de juiste toestemming en eigendom in met het volgende commando:
chown -R www-data:www-data /var/www/html/mediawiki
chmod -R 755 /var/www/html/mediawiki
Als je klaar bent, kun je doorgaan naar de volgende stap.
Nginx configureren voor MediaWiki
Vervolgens moet je een Nginx virtuele host configuratiebestand maken voor MediaWiki. Je kunt het aanmaken met het volgende commando:
nano /etc/nginx/conf.d/wiki.conf
Voeg de volgende regels toe:
server { listen 80; server_name wiki.example.com; root /var/www/html/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 ~ /\.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; } }
Sla het bestand op en sluit het en controleer dan de Nginx op een syntaxisfout met het volgende commando:
nginx -t
Je zou de volgende uitvoer moeten zien:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Start vervolgens de Nginx-service opnieuw op om de wijzigingen toe te passen:
systemctl restart nginx
Je kunt ook de status van de Nginx controleren met het volgende commando:
systemctl status nginx
Je zou de volgende uitvoer moeten zien:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-06-02 05:06:48 UTC; 3s ago Docs: man:nginx(8) Process: 24594 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 24605 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 24606 (nginx) Tasks: 2 (limit: 2353) Memory: 2.8M CGroup: /system.slice/nginx.service ??24606 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??24607 nginx: worker process Jun 02 05:06:48 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server... Jun 02 05:06:48 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.
Toegang tot MediaWiki Web UI
Open nu je webbrowser en typ de URL http://wiki.example.com. Je wordt doorgestuurd naar de volgende pagina:
Klik nu op de knop Wiki instellen. Je zou de volgende pagina moeten zien:
Kies hier je wiki-taal en klik op de knop Doorgaan. Je zou de volgende pagina moeten zien:
Klik nu op de knop Doorgaan. Je zou de volgende pagina moeten zien:
Geef nu je databasegegevens op en klik op de knop Doorgaan. Je zou de volgende pagina moeten zien:
Selecteer Gebruik dezelfde account als voor de installatie en klik op de knop Doorgaan. Je zou de volgende pagina moeten zien:
Geef nu je wiki site naam, gebruikersnaam en wachtwoord op. Klik dan op de knop Doorgaan. Je zou de volgende pagina moeten zien:
Klik op de knop Doorgaan om de installatie te starten. Je zou de volgende pagina moeten zien:
Klik op de knop Doorgaan. Als de installatie voltooid is, zou je de volgende pagina moeten zien:
Klik nu op de downloadknop om het bestand LocalSettings.php naar je systeem te downloaden. Kopieer dit bestand vervolgens naar je server in de MediaWiki-hoofdmap en stel de juiste rechten in met het volgende commando:
chown www-data:www-data /var/www/html/mediawiki/LocalSettings.php
Ga vervolgens terug naar je webbrowser en klik op enter your wiki. Je zou het MediaWiki dashboard op de volgende pagina moeten zien:
MediaWiki beveiligen met Let’s Encrypt SSL
Vervolgens moet je het Certbot client pakket installeren om de Let’s Encrypt SSL te beheren.
Installeer eerst de Certbot met het volgende commando:
apt-get install python3-certbot-nginx -y
Zodra de installatie klaar is, voer je het volgende commando uit om de Let’s Encrypt SSL op je website te installeren:
certbot --nginx -d wiki.example.com
Je wordt gevraagd een geldig e-mailadres op te geven en de servicevoorwaarden te accepteren zoals hieronder weergegeven:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for wiki.example.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/wiki.conf
Kies vervolgens of je HTTP-verkeer wel of niet wilt omleiden naar HTTPS, zoals hieronder te zien is:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Typ 2 en druk op Enter om de installatie te voltooien. Je zou de volgende uitvoer moeten zien:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/wiki.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://wiki.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=wiki.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/wiki.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/wiki.example.com/privkey.pem Your cert will expire on 2021-12-30. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le - We were unable to subscribe you the EFF mailing list because your e-mail address appears to be invalid. You can try again later by visiting https://act.eff.org.
Nu is je website beveiligd met Let’s Encrypt SSL. Je kunt hem veilig benaderen via de URL https://wiki.example.com.
Conclusie
Gefeliciteerd! Je hebt met succes MediaWiki met Nginx en Let’s Encrypt SSL geïnstalleerd op Ubuntu 20.04. Je kunt nu gemakkelijk je eigen wikisite hosten met MediaWiki.