MediaWiki

De Le Wiki de Lug
Aller à la navigation Aller à la recherche

Alpine Linux

Source Autre Source

Installation dépendances

# apk update && apk upgrade
# apk add curl lighttpd php php-dom php-json php-pgsql php-cgi php-mbstring php-xml php-ctype php-fileinfo php-iconv php-zlib php-gd php-session php7-intl php7-pecl-apcu php7-mysqli php7-xmlreader php7-xmlwriter php7-pecl-memcached memcached git imagemagick diffutils mariadb mariadb-common mariadb-client

Configuration de MariaDB

On active le serveur :

# service mariadb setup
# rc-update add mariadb default
# service mariadb start

On sécurise MariaDB :

# mysql_secure_installation
Switch to unix_socket authentication [Y/n] y
Change the root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
... Success!

On configure la base de donnée pour acceuillir MediaWiki :

# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE mediawiki;
MariaDB [(none)]> CREATE USER 'mediawiki'@'localhost' IDENTIFIED BY 'monsupermotdepasse';
MariaDB [(none)]> GRANT ALL ON mediawiki.* TO 'mediawiki'@'localhost';
MariaDB [(none)]> quit;

Installation de MediaWiki

On récupère la dernière version à cette adresse et on place MediaWiki dans l'arborescence du serveur Web :

# wget https://releases.wikimedia.org/mediawiki/1.36/mediawiki-1.36.1.zip
# unzip mediawiki-1.36.1.zip
# mv mediawiki-1.36.1 /var/www/localhost/htdocs/mediawiki
# rm mediawiki-1.36.1.zip

On attribue les droits :

# chown -R lighttpd /var/www/localhost/htdocs/mediawiki

On édite la configuration de "lighttpd" pour activer "mod_fastcgi.conf" :

# vi /etc/lighttpd/lighttpd.conf
...
# uncomment for php/fastcgi support
   include "mod_fastcgi.conf"
# uncomment for php/fastcgi fpm support
...

A la fin de ce même fichier, on protège le dossier "images" de l'éxécution de scripts, par sécurité, en ajoutant :

...
$HTTP["url"] =~  "^/mediawiki/images/" {
    fastcgi.server = ()
} 

On active memcached maintenant et au redemarrage :

 # service memcached start && rc-update add memcached default

On lance le serveur "lighttpd" immédiatement et au démarrage :

# service lighttpd start && rc-update add lighttpd default

Configuration de MediaWiki

On se rend à l'adresse "http://ADRESSE_IP_SERVEUR/mediawiki/mw-config/index.php" :

  • On configure l'environnement linguistique..

Choix du langage..

  • On vérifie que tous les prérequis sont satisfait :

Vérification des prérequis..

  • Paramètre de la base de données :

Réglages de MariaDB..

  • On peut laisser par défaut cette option et continuer :

Option par défaut..

  • On configure le nom du Wiki et le compte administrateur, ici "admin" pour plus de simplicité :

Nom Wiki et compte admin..

  • La page suivante comporte de nombreuses options à régler à sa guise, en fin de page on active le téléversement des fichiers, "Instant Commons" et on active "memcached" :

Une page d'option bien fournit..

  • On confirme que la configuration est terminée pour lancer l'installation :

On est la pour ça!

  • Le script d'installation confirme que tout s'est déroulé comme prévu :

L'installation est presque terminé!

  • Le serveur vous envoie le fichier "LocalSettings.php" à placer dans "/var/www/localhost/htdocs/mediawiki/" :

Envoie de "LocalSettings.php"

Une méthode simple est de copier-coller le contenu du fichier :

# vi /var/www/localhost/htdocs/mediawiki/LocalSettings.php
Copier-Coller de LocalSettings.php
# chown lighttpd LocalSettings.php
  • Par sécurité on lance le redémarrage de l'installation pour effacer les options sélectionner et rendre le contenu de "LocalSettings.php" inaccessible :

On lance le redémarrage de l'installation..

  • On confirme l'effacement des données et l'installation est terminé :

On confirme l'éffacement..

Sécuriser lighttpd

On créé le certificat :

# apk update && apk upgrade
# apk add openssl
# openssl req -newkey rsa:2048 -x509 -keyout /etc/lighttpd/server.pem -out /etc/lighttpd/server.pem -days 365 -nodes
# chmod 400 /etc/lighttpd/server.pem

On édite la configuration du serveur :

# vi /etc/lighttpd/lighttpd.conf
...
server.modules = (
    "mod_openssl",
#    "mod_rewrite",
...
...
server.port             = 443
ssl.engine    = "enable"
ssl.pemfile   = "/etc/lighttpd/server.pem"

On relance le service :

# service lighttpd restart

On adapte le fichier "LocalSettings.php" :

# vi /var/www/localhost/htdocs/mediawiki/LocalSettings.php
...
## The protocol and server name to use in fully-qualified URLs
$wgServer = "https://ADRESSE_IP_SERVEUR";
...

Vhost Reverse-Proxy Nginx

server {
listen 80;
    listen [::]:80;
    server_name     monwiki.exemple.net;
   # return 404;
    return 301 https://$host$request_uri;
}

server {
#client_max_body_size 20M;
server_name     monwiki.exemple.net;
    error_page 403  https://monwiki.exemple.net;

    location / {
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header X-Forwarded-Proto $scheme;
             proxy_set_header X-Forwarded-Protocol $scheme;
             proxy_set_header X-Forwarded-Host $http_host;

             proxy_pass https://ADRESSE_IP_SERVEUR;
    }

    listen [::]:443 ssl; # managed by Certbot
    listen 443 ssl; # managed by Certbot



    ssl_certificate /etc/letsencrypt/live/monwiki.exemple.net/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/monwiki.exemple.net/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    add_header Strict-Transport-Security "max-age=31536000" always;
    ssl_trusted_certificate /etc/letsencrypt/live/monwiki.exemple.net/chain.pem;
    ssl_stapling on;
    ssl_stapling_verify on;

}

On adapte le fichier "LocalSettings.php" :

Import de fonctions

Source utile

Réglages de base

Activer Import & ImageMagick

# vi /var/www/mediawiki/LocalSettings.php
$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";
# apt install imagemagick

Activer "IstantCommons

source

# vi /var/www/mediawiki/LocalSettings.php
$wgUseInstantCommons = true;

CSS Wikipedia

  1. Se connecter sur son Wiki (avec droit d'éditiont)
  2. Se rendre à l'adresse "https://mon-mediawiki.com/index.php?title=MediaWiki:Common.css"
  3. cliquer sur "Edit" et remplacer par ce code-ci!
  4. Il faudra vider le cache de son navigateur / recharger avec Ctrl + F5

Installation extension "TemplateStyles"

source

# cd /tmp/
# wget https://extdist.wmflabs.org/dist/extensions/TemplateStyles-REL1_35-7a40a6a.tar.gz
# tar -xzf TemplateStyles-REL1_35-7a40a6a.tar.gz -C /var/www/mediawiki/extensions
# chown -R www-data. /var/www/mediawiki/extensions/TemplateStyles
# echo 'wfLoadExtension( 'TemplateStyles' );' >> /var/www/mediawiki/LocalSettings.php

Installation extension "Scribunto"

Source

# cd /tmp/
# wget https://extdist.wmflabs.org/dist/extensions/Scribunto-REL1_35-d21b655.tar.gz
# tar -xzf Scribunto-REL1_35-d21b655.tar.gz -C /var/www/mediawiki/extensions/Scribunto/
# chown -R www-data. /var/www/mediawiki/extensions/Scribunto
# echo 'wfLoadExtension( 'Scribunto' );' >> /var/www/mediawiki/LocalSettings.php
# echo '$wgScribuntoDefaultEngine = 'luastandalone';' >> /var/www/mediawiki/LocalSettings.php
# chmod a+x /var/www/mediawiki/extensions/Scribunto/includes/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua

Activer "ParserFunctions"

# echo 'wfLoadExtension( 'ParserFunctions' );' >> /var/www/mediawiki/LocalSettings.php
# echo '$wgPFEnableStringFunctions = true;' >> /var/www/mediawiki/LocalSettings.php

Exemple Serveur Wikipedia et barre de progression

100 % la preuve par l'exemple!

   

Export chez Wikipedia

Page d'export soit "/Spécial:Exporter"

J'ai exporté les modèles suivant :

Modèle:Progression
Modèle:0/4
Modèle:1/4
Modèle:2/4
Modèle:3/4
Modèle:4/4
Modèle:Avancement
Modèle:Barre de progression

Exemple export pour barres de progression

Import sur son wiki

Allez sur la page spécial "Importer des pages" soit "/Special:Import"

Exemple export pour barres de progression

Erreur "The content model 'sanitized-css' is not registered on this wiki."

Échec de l’importation : The content model 'sanitized-css' is not registered on this wiki. See https://www.mediawiki.org/wiki/Content_handlers to find out which extensions handle this content model.

Installer l'extension "TemplateStyles"

Erreur "The content model 'Scribunto' is not registered on this wiki."

Échec de l’importation : The content model 'Scribunto' is not registered on this wiki. See https://www.mediawiki.org/wiki/Content_handlers to find out which extensions handle this content model.

Installer l'extension "Scribunto"


(erreur d'affichage "{{#expr".. etc)

Activer "ParserFunctions"

Bandeau d'information/avertissement

J'ai exporté tous les modules "Lua" via cette page.

Module:Format
Module:Date
Module:MagicDate
Module:Test
Module:ControlArgs
Module:Documentation module
Module:Bandeau

On pense a cocher "Inclure les modèles"

Puis ces modèles :

Modèle:Méta bandeau
Modèle:Méta bandeau d'avertissement
Modèle:Méta bandeau de section


On pense a cocher "Inclure les modèles"

Astuces de personnalisation

Source

Nom du Wiki

# vi /var/www/mediawiki/LocalSettings.php
$wgSitename = "Le nom de mon Wiki";

Il faut placer son logo dans "/var/www/mediawiki/skins/common/images/"

# mkdir -p /var/www/mediawiki/skins/common/images

On copie son image (ex: logo.png) dans /var/www/mediawiki/skins/common/images/

# chown -R www-data. /var/www/mediawiki/skins/common
# vi /var/www/mediawiki/LocalSettings.php
...
$wgLogo = "/skins/common/images/logo.png";
...

Edition disponible uniquement pour les utilisateur authentifiés

# echo '$wgGroupPermissions['*']['edit'] = false;' >> /var/www/mediawiki/LocalSettings.php