Comment installer MediaWiki avec Nginx et Let’s Encrypt SSL sur Ubuntu 20.04

MediaWiki est un logiciel wiki open-source écrit en PHP. Il te permet de créer ton propre site wiki auto-hébergé sur le serveur. C’est l’une des plateformes wiki les plus populaires en raison de sa simplicité et de sa personnalisation. Actuellement, elle est utilisée par de nombreuses entreprises pour gérer leurs pages wiki. Il constitue un outil polyvalent et gratuit pour publier du contenu sur Internet.

Dans ce tutoriel, nous allons te montrer comment installer MediaWiki avec le serveur Web Nginx et Let’s Encrypt SSL sur Ubuntu 20.04.

Conditions préalables

  • Un serveur fonctionnant sous Ubuntu 20.04.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur le serveur.

Pour commencer

Tout d’abord, mets les paquets système à la version mise à jour en exécutant la commande suivante :

apt-get update -y

Une fois que tous les paquets sont mis à jour, tu peux passer à l’étape suivante.

Installe Nginx, MariaDB et PHP

MediaWiki nécessite le serveur Web Nginx, le serveur de base de données MariaDB, PHP et d’autres extensions. Tu peux tous les installer avec la commande suivante :

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

Une fois que tous les paquets sont installés, installe le Composer avec la commande suivante :

apt-get install composer -y

Ensuite, édite le fichier php.ini et modifie les paramètres par défaut :

nano /etc/php/7.4/fpm/php.ini

Change les lignes suivantes :

memory_limit = 512M
post_max_size =32M
upload_max_filesize = 32M
date.timezone = Asia/Kolkata

Enregistre et ferme le fichier puis redémarre le PHP-FPM pour appliquer les modifications :

systemctl restart php7.4-fpm

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Créer une base de données MariaDB

MediaWiki utilise MariaDB comme backend de base de données. Tu devras donc créer une base de données et un utilisateur pour MediaWiki.

Tout d’abord, connecte-toi à MariaDB avec la commande suivante :

mysql

Une fois que tu es connecté, crée une base de données et un utilisateur avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE mediadb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mediadb.* TO 'mediauser'@'localhost' IDENTIFIED BY 'password';

Ensuite, vide les privilèges et quitte la MariaDB avec la commande suivante :

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Télécharge MediaWiki

Tout d’abord, va sur le site Web de MediaWiki et choisis la dernière version de MediaWiki. Ensuite, exécute la commande suivante pour le télécharger sur ton serveur :

wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.2.zip

Une fois le téléchargement terminé, décompresse le fichier téléchargé avec la commande suivante :

unzip mediawiki-1.35.2.zip

Ensuite, déplace le répertoire extrait vers le répertoire racine du site Web de Nginx avec la commande suivante :

mv mediawiki-1.35.2 /var/www/html/mediawiki

Ensuite, change le répertoire en MediaWiki et installe toutes les dépendances PHP avec la commande suivante :

cd /var/www/html/mediawiki
composer install --no-dev

Une fois que toutes les dépendances sont installées, définis la permission et la propriété appropriées avec la commande suivante :

chown -R www-data:www-data /var/www/html/mediawiki
chmod -R 755 /var/www/html/mediawiki

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configure Nginx pour MediaWiki

Ensuite, tu devras créer un fichier de configuration d’hôte virtuel Nginx pour MediaWiki. Tu peux le créer avec la commande suivante :

nano /etc/nginx/conf.d/wiki.conf

Ajoute les lignes suivantes :

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;
        }
}

Enregistre et ferme le fichier puis vérifie que Nginx n’a pas d’erreur de syntaxe avec la commande suivante :

nginx -t

Tu devrais voir la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarre le service Nginx pour appliquer les modifications :

systemctl restart nginx

Tu peux aussi vérifier l’état de Nginx avec la commande suivante :

systemctl status nginx

Tu devrais voir la sortie suivante :

? 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.

Accéder à l’interface Web de MediaWiki

Maintenant, ouvre ton navigateur Web et tape l’URL http://wiki.example.com. Tu seras redirigé vers la page suivante :

MediaWiki

Maintenant, clique sur le bouton Configurer le wiki. Tu devrais voir la page suivante :

Sélectionne la langue

Ici, choisis la langue de ton wiki et clique sur le bouton Continuer. Tu devrais voir la page suivante :

Accept license

Maintenant, clique sur le bouton Continuer. La page suivante devrait s’afficher :

Paramètres de la base de données MySQL

Maintenant, donne les détails de ta base de données et clique sur le bouton Continuer. Tu devrais voir la page suivante :

Installation de MediaWiki

Choisis d’utiliser le même compte que pour l’installation et clique sur le bouton Continuer. Tu devrais voir la page suivante :

Nom du wiki

Maintenant, indique le nom de ton site wiki, ton nom d’utilisateur et ton mot de passe. Ensuite, clique sur le bouton Continuer. Tu devrais voir la page suivante :

Lance la procédure d'installation

Clique sur le bouton Continuer pour lancer l’installation. Tu devrais voir la page suivante :

L'installation s'est terminée avec succès

Clique sur le bouton Continuer. Une fois l’installation terminée, tu devrais voir la page suivante :

Paramètres locaux

Maintenant, clique sur le bouton Télécharger pour télécharger le fichier LocalSettings.php sur ton système. Ensuite, copie ce fichier sur ton serveur à l’intérieur du répertoire racine de MediaWiki et définis les autorisations appropriées avec la commande suivante :

chown www-data:www-data /var/www/html/mediawiki/LocalSettings.php

Ensuite, retourne dans ton navigateur Web et clique sur entrer dans ton wiki. Tu devrais voir le tableau de bord de MediaWiki sur la page suivante :

MediaWiki installé

Sécurise MediaWiki avec Let’s Encrypt SSL

Ensuite, tu devras installer le paquet client Certbot pour installer et gérer le SSL Let’s Encrypt.

Tout d’abord, installe le Certbot avec la commande suivante :

apt-get install python3-certbot-nginx -y

Une fois l’installation terminée, exécute la commande suivante pour installer le SSL Let’s Encrypt sur ton site Web :

certbot --nginx -d wiki.example.com

Il te sera demandé de fournir une adresse e-mail valide et d’accepter les conditions de service comme indiqué ci-dessous :

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

Ensuite, choisis de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Tape 2 et appuie sur Entrée pour terminer l’installation. Tu devrais voir le résultat suivant :

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.

Maintenant, ton site Web est sécurisé avec Let’s Encrypt SSL. Tu peux y accéder en toute sécurité en utilisant l’URL https://wiki.example.com.

Conclusion

Félicitations ! Tu as réussi à installer MediaWiki avec Nginx et Let’s Encrypt SSL sur Ubuntu 20.04. Tu peux maintenant facilement héberger ton propre site wiki avec MediaWiki.

Vous aimerez aussi...