MediaWiki est un logiciel wiki open-source écrit en PHP. Il vous permet de créer votre propre site Web 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, il est utilisé par de nombreuses entreprises pour gérer leurs pages wiki. Il fournit un outil polyvalent et gratuit pour publier du contenu sur Internet.
Dans ce tutoriel, nous allons vous montrer comment installer MediaWiki avec le serveur Web Nginx et Let's Encrypt SSL sur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04.
- Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Tout d'abord, mettez à jour les packages système vers la version mise à jour en exécutant la commande suivante :
apt-get update -y
Une fois tous les packages mis à jour, vous pouvez passer à l'étape suivante.
Installer Nginx, MariaDB et PHP
MediaWiki nécessite le serveur Web Nginx, le serveur de base de données MariaDB, PHP et d'autres extensions. Vous pouvez 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 tous les packages installés, installez Composer avec la commande suivante :
apt-get install composer -y
Ensuite, éditez le fichier php.ini et modifiez les paramètres par défaut :
nano /etc/php/7.4/fpm/php.ini
Modifiez les lignes suivantes :
memory_limit = 512M post_max_size =32M upload_max_filesize = 32M date.timezone = Asia/Kolkata
Enregistrez et fermez le fichier puis redémarrez le PHP-FPM pour appliquer les modifications :
systemctl restart php7.4-fpm
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Créer une base de données MariaDB
MediaWiki utilise MariaDB comme base de données, vous devrez donc créer une base de données et un utilisateur pour MediaWiki.
Tout d'abord, connectez-vous à MariaDB avec la commande suivante :
mysql
Une fois connecté, créez 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, videz les privilèges et quittez MariaDB avec la commande suivante :
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Télécharger MediaWiki
Première. allez sur le site Web MediaWiki et choisissez la dernière version de MediaWiki. Ensuite, exécutez la commande suivante pour le télécharger sur votre serveur :
wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.2.zip
Une fois le téléchargement terminé, décompressez le fichier téléchargé avec la commande suivante :
unzip mediawiki-1.35.2.zip
Ensuite, déplacez le répertoire extrait vers le répertoire racine Web de Nginx avec la commande suivante :
mv mediawiki-1.35.2 /var/www/html/mediawiki
Ensuite, changez le répertoire vers MediaWiki et installez toutes les dépendances PHP avec la commande suivante :
cd /var/www/html/mediawiki
composer install --no-dev
Une fois toutes les dépendances installées, définissez les autorisations 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 vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer Nginx pour MediaWiki
Ensuite, vous devrez créer un fichier de configuration d'hôte virtuel Nginx pour MediaWiki. Vous pouvez le créer avec la commande suivante :
nano /etc/nginx/conf.d/wiki.conf
Ajoutez 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; } }
Enregistrez et fermez le fichier puis vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -t
Vous devriez voir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Ensuite, redémarrez le service Nginx pour appliquer les modifications :
systemctl restart nginx
Vous pouvez également vérifier l'état du Nginx avec la commande suivante :
systemctl status nginx
Vous devriez voir le résultat suivant :
? 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 MediaWiki
Maintenant, ouvrez votre navigateur Web et saisissez l'URL http://wiki.example.com . Vous serez redirigé vers la page suivante :
Maintenant, cliquez sur configurer le wiki bouton. Vous devriez voir la page suivante :
Ici, choisissez la langue de votre wiki et cliquez sur Continuer bouton. Vous devriez voir la page suivante :
Maintenant, cliquez sur Continuer bouton. Vous devriez voir la page suivante :
Maintenant, fournissez les détails de votre base de données et cliquez sur Continuer bouton. Vous devriez voir la page suivante :
Sélectionnez utiliser le même compte que pour l'installation et cliquez sur Continuer bouton. Vous devriez voir la page suivante :
Maintenant, indiquez le nom de votre site wiki, votre nom d'utilisateur et votre mot de passe. Ensuite, cliquez sur Continuer bouton. Vous devriez voir la page suivante :
Cliquez sur Continuer bouton pour lancer l'installation. Vous devriez voir la page suivante :
Cliquez sur Continuer bouton. Une fois l'installation terminée, vous devriez voir la page suivante :
Maintenant, cliquez sur le bouton de téléchargement pour télécharger le LocalSettings.php fichier sur votre système. Ensuite, copiez ce fichier sur votre serveur dans le répertoire racine de MediaWiki et définissez l'autorisation appropriée avec la commande suivante :
chown www-data:www-data /var/www/html/mediawiki/LocalSettings.php
Ensuite, retournez dans votre navigateur Web et cliquez sur entrer dans votre wiki . Vous devriez voir le tableau de bord MediaWiki sur la page suivante :
Sécuriser MediaWiki avec Let's Encrypt SSL
Ensuite, vous devrez installer le package client Certbot pour installer la gestion de Let's Encrypt SSL.
Tout d'abord, installez le Certbot avec la commande suivante :
apt-get install python3-certbot-nginx -y
Une fois l'installation terminée, exécutez la commande suivante pour installer Let's Encrypt SSL sur votre site Web :
certbot --nginx -d wiki.example.com
Il vous sera demandé de fournir une adresse e-mail valide et d'accepter les conditions d'utilisation 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, choisissez 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
Tapez 2 et appuyez sur Entrée pour terminer l'installation. Vous devriez 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, votre site Web est sécurisé avec Let's Encrypt SSL. Vous pouvez y accéder en toute sécurité à l'aide de l'URL https://wiki.example.com.
Conclusion
Toutes nos félicitations! vous avez installé avec succès MediaWiki avec Nginx et Let's Encrypt SSL sur Ubuntu 20.04. Vous pouvez désormais facilement héberger votre propre site wiki avec MediaWiki.