GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer MediaWiki avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04

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.


Ubuntu
  1. Comment installer Nextcloud avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

  2. Comment installer Magento 2 avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

  3. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  4. Comment installer Drupal 8 avec Nginx, PHP-FPM et SSL sur Ubuntu 15.10

  5. Comment installer OpenCart 2 avec Nginx et SSL sur Ubuntu 15.10

Comment installer NodeBB Forum avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

Comment installer TYPO3 CMS avec Lets Encrypt SSL sur Ubuntu 20.04

Comment installer Concrete5 CMS avec Apache et Lets Encrypt SSL gratuit sur Ubuntu 20.04

Comment installer ProjectSend avec Apache et Lets Encrypt SSL sur Ubuntu 20.04

Comment installer Moodle avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04

Comment installer Gitea avec Nginx et Lets Encrypt SSL gratuit sur Ubuntu 20.04