2

Installer MediaWiki avec Nginx, php7 et MariaDB sous debian 8

Un mémo sur comment installer manuellement MediaWiki sur un serveur Debian Jessie avec Nginx, php7 et MariaDB.

Installation du serveur Web complet : Nginx, Php7 et MariaDB

  • Ajout des dépôts :
    • Nginx :
    • echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" > /etc/apt/sources.list.d/nginx.list
      wget -O - http://nginx.org/keys/nginx_signing.key | apt-key add -
      
    • Php7 :
    • echo "deb http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/dotdeb.list
      wget https://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg
      
  • Mise à jour des dépôts :
  • apt update
  • Installation du combo web Nginx + Phph7 + MariaDB et dépendances php pour MediaWiki:
  • apt install nginx php7.0-fpm php7.0-mysql  php7.0-mbstring php7.0-xml php7.0  mariadb-server

Téléchargement de MediaWiki

  • Se rendre dans le répertoire /var/www/html/ :
  • cd /var/www/html/
  • Télécharger la dernière version en date de l’archive du MediaWiki :
  • wget https://releases.wikimedia.org/mediawiki/1.28/mediawiki-1.28.1.tar.gz
  • Décompresser l’archive :
  • tar xzvf mediawiki-1.28.1.tar.gz
  • Renommer le dossier :
  • mv mediawiki-1.28.1 mediawiki
  • Donner les droits au serveur web sur ce répertoire :
  • chown -R www-data:www-data mediawiki

Configurer PHP 7

  • Modification de php.ini :
  • nano /etc/php/7.0/fpm/php.ini
  • Modifier la ligne 768 :
  • cgi.fix_pathinfo=0
  • Modification de www.conf :
    nano /etc/php/7.0/fpm/pool.d/www.conf
    • odifier la ligne 36
    • listen = /run/php/php7.0-fpm.sock

      par

      listen = 127.0.0.1:9000

Configurer Nginx en TLS avec Let’s Encrypt

Cette partie n’est pas obligatoire mais fortement conseiller pour avoir une connexion sécurisée sur le wiki. Pour Configurer Nginx en écoute sur le port 443 (TLS) il faut paser par l’étape d’installer Let’s Encrypt ou se créer un certificat TLS auto-signé.

  • Installation de Let’s Encrypt :
    • Ajout du dépôt backports :
    • echo "deb http://ftp.us.debian.org/debian/ jessie-backports main" > /etc/apt/sources.list.d/backports.list
    • Mettre à jour la liste des paquets :
    • apt update
    • Installer le paquets python-certbot :
    • apt install -t python-certbot jessie-backports
  • Créer le certificat TLS pour le domaine :
  • certbot certonly -d domaine.tld --rsa-key-size 4096 --standalone
  • Créer une clé Diffie-Hellman (pour un peu plus de sécurité) :
  • openssl dhparam -out /etc/ssl/private/dhparams.pem 4096

    Configuration du serveur block nginx sur le port TLS par défaut

  • Créer le serveur block nginx pour le MediaWiki :
  • nano /etc/nginx/conf.d/mediawiki.conf

    le contenu :

    server {
        listen       80;
        server_name  wiki.domaine.tld;
        return       301 https://wiki.domaine.tld$request_uri;
    }
    server {
        listen 443 ssl http2;
        server_name wiki.domaine.tld;
        root /var/www/html/mediawiki;
        index index.html index.php;
        client_max_body_size 5m;
        client_body_timeout 60;
    
    ssl_certificate /etc/letsencrypt/live/wiki.domaine.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wiki.domaine.tld/privkey.pem;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_dhparam /etc/ssl/private/dhparams.pem;
    ssl_buffer_size 16k;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/letsencrypt/live/wiki.domaine.tld/fullchain.pem;
    resolver 127.0.0.1 208.67.222.222;
    
        location / {
            try_files $uri $uri/ @rewrite;
        }
    
        location @rewrite {
            rewrite ^/(.*)$ /index.php?title=$1&$args;
        }
    
        location ^~ /maintenance/ {
            return 403;
        }
    
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_pass 127.0.0.1;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    
        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            try_files $uri /index.php;
            expires max;
            log_not_found off;
        }
    
        location = /_.gif {
            expires max;
            empty_gif;
        }
    
        location ^~ /cache/ {
            deny all;
        }
    
        location /dumps {
            root /var/www/html/mediawiki/local;
            autoindex on;
        }
    }
    
  • Redémarrer les services nginx et php7-fpm :
  • systemctl restart nginx
    systremctl restart php7.0-fpm restart
    

Installation de MediaWiki

  • Ouvrir un navigateur internet et saisir l’url du serveur web : https://wiki.domaine.tld et cliquer sur ‘Set up the wiki’ :
  • Choisir les paramètres de langages et cliquer sur « Continuer »:
  • Vérification liées à l’environnement, si tout est ok cliquer sur « Continuer » :
  • Configuration de la base de données :
  • Paramètres de la base de données :
  • Configurer le nom du wiki et son utilisateur :

    • A ce stade il est possible de terminer l’installation :
  • Installation :
  • Installation terminée, mais faut encore télécharger le fichier LocalSettings.php et le placer à la racine de l’installation de mediawiki sur le serveur :
  • Copier le fichier LocalSettings.php sur le serveur :
  • scp ~/Téléchargements user@wiki.domaine.tld:/var/www/html/mediawiki/
  • Une fois le fichier copier sur le serveur, cliquer sur « accéder à votre wiki » :
  • Installation de MediaWiki terminée :
  • Il ne reste plus qu’à personnaliser le MediaWiki :

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

2 commentaires

  1. Error 500 juste après ‘Set up the wiki’ :'(

  2. hummm, si j’ai le temps je refais l’install pour voir ou ça coince…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.