SME-201.02 MediaWiki-1.31.1

From SME Server
Jump to navigationJump to search

Description générale


SME-201.2-001-MediaWiki-LogoSME.png
SME-201.2-002-MediaWiki-LogoMediaWiki.png
SME-201.2-003-MediaWiki-LogoSMW.png



Ce document décrit l'installation et la configuration de MediaWiki-1.31.1 LTS de même que les extensions Semantic MediaWiki (SMW) et CharInsert sur un Serveur SME-9.2 configuré selon la documentation: SME-101.02 Serveur SME.

SME-201.2-004-MediaWiki-diag.png


MediaWiki

Référence: https://fr.wikipedia.org/wiki/MediaWiki.

MediaWiki est un moteur de wiki pour le Web. Il est utilisé par l’ensemble des projets de la Wikimedia Foundation, ainsi que par l’ensemble des wikis hébergés chez Wikia et par de nombreux autres wikis. Conçu pour répondre aux besoins de Wikipédia, ce moteur est en 2008 également utilisé par des entreprises comme solution de gestion des connaissances et comme système de gestion de contenu. Des associations, comme Wikitravel, Mozilla ou Ékopedia, l'ont adopté.

MediaWiki est écrit en PHP et peut aussi bien fonctionner avec le système de gestion de base de données MySQL que PostgreSQL. C'est un logiciel LIBRE distribué selon les termes de la GPL.

À savoir

Diagramme réseau

SME-201.2-005-MediaWiki-diag-reseau.png

Document de référence

Working with MediaWiki par Yaron Koren ©2012 by Yaron Koren.


Serveur SME-9.2

dorgee.micronator-101.com

Serveur passerelle pour les connexions à l'Internet.

Serveur DHCP pour tout le réseau.


mediawiki.micronator-101.com

Serveur virtuel sous VirtualBox-5.2.8 r121009 (Qt5.6.2).


i-bay Primary

Site WordPress — WooCommerce de la boutique en ligne.

Icone-AstuceAPT.png  Si cette i-bay est vide, voir le chapitre: #Lien de redirection dans l'i-bay Primary.


i-bay wiki

I-bay qui contient le site MediaWiki.


Station de travail

Windows-8.1, on utilisera cette station pour tous les tests.


Espace de noms

Un espace de noms est un ensemble de pages ayant le même préfixe dans leur titre. Par exemple, la page Aide:Espace de noms appartient à l’espace de noms Aide:. L’espace de noms par défaut est l’espace principal. Il rassemble les articles et forme l’encyclopédie proprement dite. Une définition plus large est présentée dans l'article Espace de noms.

Référence: http://fr.wikipedia.org/wiki/Aide:Espace_de_noms.


Éditeur de texte

Ne modifiez pas LocalSettings.php avec des éditeurs de documents comme Notepad, TextEdit ou d'autres qui ajoutent une marque d'ordre d'octets (byte order marks) aux fichiers et qui casse le programme PHP du wiki. Utilisez plutôt un éditeur de code tel Vim, Notepad++ ou Atom. Ces éditeurs gèrent l'encodage des fichiers de manière appropriée; ils peuvent aussi être utilisés pour réparer les fichiers précédemment cassés par des éditeurs de documents.


Notepad++

Voir le Cahier-1: SME-101.01 Logiciels de la station de travail, à la section: NotePad++, pour l'installation et la configuration de cet éditeur.


Description

Référence: https://notepad-plus-plus.org/fr/.

Notepad++ est un éditeur de code source qui prend en charge plusieurs langages. Ce programme, codé en C++ avec STL et win32 api, a pour vocation de fournir un éditeur de code source de taille réduite mais très performant. En optimisant de nombreuses fonctions, tout en conservant une facilité d’utilisation et une certaine convivialité, Notepad++ contribue à la limitation des émissions de dioxyde de carbone dans le monde; en effet, en réduisant l’utilisation du CPU, la consommation d’énergie des ordinateurs chute considérablement, en conséquence de quoi, la terre est plus verte.


Téléchargement

Site de téléchargement: https://notepad-plus-plus.org/fr/.


Documentation

Guide pratique (1er août 2013): http://nliautaud.developpez.com/tutoriels/web/notepadplusplus-guide-pratique/.

Aide-mémoire des principales commande: https://drive.google.com/file/d/0B86nuTd5nMTKaENHcmliUC1kdnc/edit.


Prérequis

Installation d'un Serveur SME

Voir le Cahier SME-101.02: Serveur SME.


Mise à jour du Serveur

Avant de commencer quoi que ce soit, il est toujours préférable de mettre à jour le Serveur SME; voir le Cahier SME-101.02: Serveur SME, au chapitre Mise à jour.


Certificat Let's Encrypt

On peut installer un certificat de sécurité SSL de Let's Encrypt; voir le Cahier SME-101.04: Certificat Let's Encrypt.

Icone-AstuceAPT.png  Si le Serveur SME est LOCAL ou virtuel sur le réseau LOCAL, voir le Cahier SME-201.05.3: Odoo-11 & serveur de test/dev à la section Obtention d'un certificat pour un serveur local.


Accès à distance

SME-201.2-006-MediaWiki-acces-distance.png
  • - On vérifie la configuration de l'accès à distance.
    - Si ces paramètres ne sont pas tels qu'indiqués ci-contre, on les modifie dans le gestionnaire Server Manager.


Usager michelandre

SME-201.2-007-MediaWiki-usager.png
  • On s'assure que l'usager michelandre existe.


Messagerie électronique

SME-201.2-008-MediaWiki-courriel.png
  • Si ces paramètres ne sont pas tels qu'indiqués ci-contre, on les modifie dans le gestionnaire.


Installation de la Collection PHP70

Version PHP actuelle pour un Serveur SME-9.2.

# rpm -qa | grep php
...
php-gd-5.3.3-49.el6.x86_64
php-5.3.3-49.el6.x86_64
php-mysql-5.3.3-49.el6.x86_64
...

Comme on le voit, notre version php-5.3.3-49 de PHP est légèrement vieillotte.


MediaWiki demande une version plus récente de PHP que celle fournie avec SME-9.2; on installe donc la Contrib "PHP Software Collections" qui fourni une version plus récente tout en gardant la version originalement installée.


PHP Software Collections

Référence: https://wiki.contribs.org/PHP_Software_Collections.

Icone-SeTirerDembarrasAPT.png  Les développeurs de RedHat ont pensé qu'un inconvénient, avec la version 5 de PHP, allait survenir tôt ou tard et ont écrit les paquets des Collections. Les développeurs de SME ont donc crée une Contrib qui règle le contre-temps des versions PHP. Cette Contrib est disponible depuis février 2015.


Description de la Contrib

Icone-AsurveillerAPT-1.png  Disponible pour SME-9.x/64 seulement.

Le but de cette Contrib est d'installer PHP-5.4, PHP-5.5, PHP-5.6, PHP-7.0 et PHP-7.1, parallèlement à la version installée par défaut avec SME-9.x/64, sans devoir supprimer ou modifier cette dernière. Cette Contrib utilise les RPM du référentiel remi-safe qui sont en fait les mêmes que ceux sur le site Web officiel mais, ils ont l'avantage de fournir plus de choix.

Tous les RPM PHP sont installés dans le répertoire /opt, ce qui empêche toutes interférences ou conflits avec l'installation par défaut.


Prérequis pour l'installation de PHP Software Collections

Il faut inscrire les référentiels remi-safe et epel dans la BD de yum pour pouvoir installer la Collection PHP.


Référentiel remi-safe

Référence: https://wiki.contribs.org/Remi-safe.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

/sbin/e-smith/db yum_repositories set remi-safe repository \
Name 'Remi - safe' \
BaseURL 'http://rpms.famillecollet.com/enterprise/$releasever/safe/$basearch/' \
EnableGroups no \
GPGCheck yes \
GPGKey http://rpms.famillecollet.com/RPM-GPG-KEY-remi \
Visible yes \
status disabled


Vérification.

# db yum_repositories show remi-safe
remi-safe=repository
    BaseURL=http://rpms.famillecollet.com/enterprise/$releasever/safe/$basearch/
    EnableGroups=no
    GPGCheck=yes
    GPGKey=http://rpms.famillecollet.com/RPM-GPG-KEY-remi
    Name=Remi - safe
    Visible=yes
    status=disabled


†† Référentiel epel

Référence: https://wiki.contribs.org/Epel#tab=For_SME_9_x.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

/sbin/e-smith/db yum_repositories set epel repository \
Name 'Epel' \
BaseURL 'http://download.fedoraproject.org/pub/epel/$releasever/$basearch' \
MirrorList 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch' \
EnableGroups no \
GPGCheck yes \
GPGKey http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL \
Exclude perl-Razor-Agent \
Visible no \
status disabled


Vérification.

# db yum_repositories show epel
epel=repository
    BaseURL=http://download.fedoraproject.org/pub/epel/$releasever/$basearch
    EnableGroups=no
    Exclude=perl-Razor-Agent
    GPGCheck=yes
    GPGKey=http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL
    MirrorList=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch
    Name=Epel
    Visible=no
    status=disabled


On signale les changements.

# signal-event yum-modify


Installation de la Contrib

Icone-NoteAPT.png  Nous installons de la manière avancée, c'est à dire avec plus de RPM pour une utilisation ultérieure de ceux-ci si nécessaire.

Icone-AsurveillerAPT-1.png  Peut prendre un certain temps...

# yum install -y --enablerepo=smecontribs,epel  smeserver-php-scl php56-php-pecl-rar  php56-php-libvirt php56-php-magickwand 
...
Installation de   125 paquet(s)

Taille totale des téléchargements : 45 M
Taille d'installation : 124 M
...
Installé:
  smeserver-php-scl.noarch 0:0.4-17.el6.sme

Dépendance(s) installée(s) :
  audit-libs-python.x86_64 0:2.4.5-6.el6
  enchant.x86_64 1:1.5.0-5.el6
...
  tcl.x86_64 1:8.5.7-6.el6

Terminé !

==============================================================
WARNING: You now need to run BOTH of the following commands
to ensure consistent system state:

signal-event post-upgrade; signal-event reboot

You should run these commands unless you are certain that
yum made no changes to your system.
==============================================================


PHP71 par défaut après une connexion

Référence: http://appdev.oit.umn.edu/2015/02/11/scl/

On crée le fichier d'activation qui sera lu lors d'un connexion au Serveur SME.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat > /etc/profile.d/activer-php71.sh <<'EOT'
#!/bin/bash
source /opt/remi/php71/enable
if "$X_SCLS" != *php71* ; then
src="`scl enable php71 'echo $X_SCLS'`"
pkgs=(${src// / })
uniq=($(printf "%s\n" "${pkgs[@]}" | sort -u));
export X_SCLS="${uniq[@]}"
fi
EOT


On rend le fichier exécutable.

# chmod +x /etc/profile.d/activer-php71.sh


On vérifie.

# ls -als /etc/profile.d/activer-php71.sh
4 -rwxr-xr-x 1  root root 215 25 nov.  04:49 /etc/profile.d/activer-php71.sh


Si vous ne souhaitez pas redémarrer votre serveur

# signal-event php-update; config set UnsavedChanges no


Sinon...

On signale les changements et on réamorce.

# signal-event post-upgrade ; signal-event reboot


SME-201.2-009-MediaWiki-amorcage-1.png
  • Icone-AsurveillerAPT-1.png Un réamorçage avec une mise à jour de la configuration peut prendre quelque temps. Soyons patients!



Vérification

On se logue et on vérifie l'installation.

# rpm -qa  >  grep scl-
scl-utils-20120927-29.el6_9.x86_64
smeserver-php-scl-0.4-17.el6.sme.noarch


Collections installées.

# scl -l
php54
php55
php56
php70
php71


Quel est le chemin de la version PHP par défaut?

# which php
/opt/remi/php71/root/usr/bin/php


Quelle est sa version?

# php --version
PHP 7.1.23 (cli) (built: Oct 10 2018 11:30:01) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies


Mise à jour de la Contrib

Icone-NoteAPT.png  Pour la mise à jour de la Contrib PHP SCL, voir le chapitre #Mise à jour des Collections Red Hat.


Activation de la version PHP-7.1 pour les i-bays

SME-201.2-011-MediaWiki-php-b.png
SME-201.2-010-MediaWiki-php-a.png



SME-201.2-013-MediaWiki-php-d.png
SME-201.2-012-MediaWiki-php-c.png
  • On choisit la version la plus récente, c.-à-d. PHP71  >  Enregistrer.
  • On s'assure du succès de l'opération.



Ajustement des paramètres PHP

Les valeurs de certains paramètres de PHP ne sont pas suffisants pour certaines extensions. Ces paramètres sont: MemoryLimit, PostMaxSize et UploadMaxFilesize. Il faut les ajuster.

# config show php71
php71=configuration
    AllowUrlFopen=Off
    MaxExecutionTime=30
    MaxFileUpload=20
    MaxInputTime=60
    MemoryLimit=128M
    PhpModule=enabled
    PostMaxSize=20M
    UploadMaxFilesize=10M


Icone-AsurveillerAPT-1.png  Nous allons ajuster: MemoryLimit (256M) > PostMaxSize (52M) > UploadMaxFilesize (50M).

Icone-SeTirerDembarrasAPT.png  Il faut obligatoirement que le paramètre PostMaxSize soit plus grand que celui de UploadMaxFilesize. Si on modifie l'un, il faut vérifier l'autre pour que la correspondance des grandeurs soit respectée.


MemoryLimit

Chaque fois qu'un client fait une requête au serveur Web, PHP génère un processus PHP. Le travail de ce processus est de générer du code HTML qu'il envoie au client. Le processus fournit un temps d'exécution à un script qui crée la réponse à la requête. La limite de mémoire MemoryLimit est la quantité maximale de mémoire que ce processus peut utiliser. Si la limite est atteinte ou dépassée, le processus échoue et Apache signale une erreur HTTP 500.

On ajuste le paramètre MemoryLimit pour PHP-7.1.

# config setprop php71 MemoryLimit 256M


SME-201.2-014-MediaWiki-php-e.png
  • Pour certaines extensions telles que WooCommerce, WordPress, MediaWiki, etc... on peut leur autoriser le téléversement de fichiers et la grandeur de ceux-ci ne peut dépasser la limite définie par le paramètre UploadMaxFilesize de PHP.



UploadMaxFilesize On ajuste le paramètre UploadMaxFilesize pour PHP-7.1.

# config setprop php71 UploadMaxFilesize 50M


PostMaxSize

Référence: http://php.net/manual/en/ini.core.php#ini.post-max-size.

Le paramètre PostMaxSize définit la taille maximale autorisée pour les données d'un post. Ce paramètre affecte également le téléchargement de fichiers. Pour télécharger des fichiers volumineux, cette valeur doit absolument être toujours supérieure à UploadMaxFilesize.

On ajuste le paramètre PostMaxSize pour PHP-7.1.

# config setprop php71 PostMaxSize 52M


On signale les changements pour qu'ils deviennent permanents.

# signal-event php-update


On vérifie le tout.

# config show php71
php71=configuration
    AllowUrlFopen=Off
    MaxExecutionTime=30
    MaxFileUpload=20
    MaxInputTime=60
    MemoryLimit=256M
    PhpModule=disabled
    PostMaxSize=52M
    UploadMaxFilesize=50M

Icone-AsurveillerAPT-1.png  Comme on le voit ci-dessus, les grandeurs maximales sont maintenant de: MemoryLimit (256M) > PostMaxSize (52M) > UploadMaxFilesize (50M).


Paramètres de php.ini

Fragments, paramètres et variables
Fragment (fichier) 20ResourceLimits 60FileUploads 40DataHandling
Nom du paramètre memory_limit upload_max_filesize post_max_size
Nom de la valeur (variable) MemoryLimit UploadMaxFilesize PostMaxSize
Valeur initiale 32M 10M 20M
Valeur finale 256M 50M 52M


Limite de mémoire pour PHP

Si on installe un site Web qui utilise PHP, il se peut que ce dernier manque de mémoire pour exécuter certains scripts. Par défaut la limite de mémoire allouée à PHP est de 32M.

Dans le fichier /etc/php.ini, il existe déjà un paramètre memory_limit.

# cat /etc/php.ini | grep -i  memory_limit
memory_limit                    = 32M

La valeur limite de ce paramètre est définie par un "fragment" du gabarit standard de php.ini.


Affichage des fragments du gabarit standard de php.ini

Les fragments du gabarit standard de php.ini sont situés dans le répertoire /etc/e-smith/templates/etc/php.ini/.

# ls -als  /etc/e-smith/templates/etc/php.ini/
total 136
4 drwxr-xr-x  2 root root 4096 19 juin  21:06 .
4 drwxr-xr-x 81 root root 4096 22 févr.  2015 ..
4 -rw-r--r--  1 root root    6 15 mars   2002 00PHP
4 -rw-r--r--  1 root root  986 13 févr.  2013 10LanguageOptions
4 -rw-r--r--  1 root root  152 13 févr.  2013 15ExposePHP
4 -rw-r--r--  1 root root  214  7 oct.   2008 20ResourceLimits
4 -rw-r--r--  1 root root  375  7 oct.   2008 30ErrorHandling
4 -rw-r--r--  1 root root  558 29 juin   2015 40DataHandling
4 -rw-r--r--  1 root root  626  7 oct.   2008 50PathsDirectories
4 -rw-r--r--  1 root root  155  7 oct.   2008 60FileUploads
4 -rw-r--r--  1 root root   58  7 oct.   2008 65FopenWrappers
4 -rw-r--r--  1 root root   30 13 févr.  2013 70TimeZone
4 -rw-r--r--  1 root root   55  7 oct.   2008 80ModuleSettings01Syslog
4 -rw-r--r--  1 root root  126  7 oct.   2008 80ModuleSettings02mailfunction
4 -rw-r--r--  1 root root  156  7 oct.   2008 80ModuleSettings03Debugger
4 -rw-r--r--  1 root root   11  7 oct.   2008 80ModuleSettings04Logging
4 -rw-r--r--  1 root root    8  7 oct.   2008 80ModuleSettings05Java
4 -rw-r--r--  1 root root   52  7 oct.   2008 80ModuleSettings06SQL
4 -rw-r--r--  1 root root  273  7 oct.   2008 80ModuleSettings07ODBC
4 -rw-r--r--  1 root root  346  7 oct.   2008 80ModuleSettings08MySQL
4 -rw-r--r--  1 root root  140  7 oct.   2008 80ModuleSettings09mSQL
4 -rw-r--r--  1 root root  147  7 oct.   2008 80ModuleSettings10PostgresSQL
4 -rw-r--r--  1 root root  275  7 oct.   2008 80ModuleSettings11Sybase
4 -rw-r--r--  1 root root  233  7 oct.   2008 80ModuleSettings12Sybase-CT
4 -rw-r--r--  1 root root   53  7 oct.   2008 80ModuleSettings13bcmath
4 -rw-r--r--  1 root root   12  7 oct.   2008 80ModuleSettings14browscap
4 -rw-r--r--  1 root root  482  7 oct.   2008 80ModuleSettings15Informix
4 -rw-r--r--  1 root root  861  7 oct.   2008 80ModuleSettings16Session
4 -rw-r--r--  1 root root  274  7 oct.   2008 80ModuleSettings17MSSQL
4 -rw-r--r--  1 root root   13  7 oct.   2008 80ModuleSettings18Assertion
4 -rw-r--r--  1 root root  268  7 oct.   2008 80ModuleSettings19IngresII
4 -rw-r--r--  1 root root  172  7 oct.   2008 80ModuleSettings20VerisignPayflowPro
4 -rw-r--r--  1 root root   55  7 oct.   2008 80ModuleSettings21Sockets
4 -rw-r--r--  1 root root  404 15 mars   2002 template-begin


Icone-NoteAPT.png  Lorsqu'un Serveur SME démarre, il passe dans ce répertoire en assemblant (expanding) tous ses fragments (fichiers) pour créer le fichier de configuration de PHP, c'est à dire: /etc/php.ini.

Cette méthode est particulière à SME; ainsi, si on modifie la valeur d'un paramètre quelconque, lorsque le Serveur SME redémarre, il revient toujours aux valeurs standards des paramètres.

Si on modifie directement la valeur d'un paramètre dans un de ces fichiers, elle sera perdue lors d'un réamorçage du Serveur SME.


Recherche du fragment

On recherche le fragment qui contient le paramètre memory_limit.

# grep -i "memory_limit"  /etc/e-smith/templates/etc/php.ini/*
/etc/e-smith/templates/etc/php.ini/20ResourceLimits:memory_limit                         = {

Le fragment en question est le fichier 20ResourceLimits.


On affiche ce fragment.

# cat /etc/e-smith/templates/etc/php.ini/20ResourceLimits
max_execution_time                     = {
    my $et = $php{MaxExecutionTime} || "30";
    $OUT .= "$et";
}
memory_limit                           = {
    my $ml = $php{MemoryLimit} || "32M";
    $OUT .= "$ml";
}

On voit que la valeur limite est présentement de 32M. Nous allons l'ajuster à 256M.


Icone-AstuceAPT.png  Pour modifier la valeur d'un paramètre de façon permanente, il faut utiliser un gabarit personnalisé.

Icone-SeTirerDembarrasAPT.png  Nous allons donc ajouter un gabarit personnalisé pour ajuster la variable Memory_Limit. Avec un tel gabarit, la modification sera permanente et le demeurera, même après un réamorçage ou une mise à jour du Serveur SME.


Création d'un gabarit personnalisé

  • - Icone-NoteAPT.png Les fragments d'un gabarit personnalisé ont préséance sur les fragments d'un gabarit standard lors de l'assemblage d'un fichier de configuration.
    - Si le fragment personnalisé possède le même nom que celui d'un fragment standard, l'assemblage remplacera le fragment standard.
  • Si le fragment personnalisé possède un nom différent, l'assemblage l'ajoutera en tant que fragment supplémentaire au fichier de configuration.
  • L'assemblage inclut les fragments dans l'ordre du numéro au début de leur nom.


On crée un répertoire pour un gabarit personnalisé pour php.ini.

# mkdir -p /etc/e-smith/templates-custom/etc/php.ini


On copie le fragment standard dans le répertoire du gabarit personnalisé afin d'en créer un fragment personnalisé possédant le même nom. On pourra alors modifier la valeur de la variable MemoryLimit de ce fragment homonyme.

# cp /etc/e-smith/templates/etc/php.ini/20ResourceLimits  /etc/e-smith/templates-custom/etc/php.ini/20ResourceLimits


On vérifie.

# ls -ls /etc/e-smith/templates-custom/etc/php.ini/20ResourceLimits
4 -rw-r--r-- 1 root root 214 25 nov.  04:54 /etc/e-smith/templates-custom/etc/php.ini/20ResourceLimits


MemoryLimit

Modification du fragment personnalisé

On modifie la valeur de MemoryLimit à l'aide de l'utilitaire sed.

# sed -i 's/"32M";/"256M";/'  /etc/e-smith/templates-custom/etc/php.ini/20ResourceLimits


On vérifie.

# cat /etc/e-smith/templates-custom/etc/php.ini/20ResourceLimits
max_execution_time                     = {
    my $et = $php{MaxExecutionTime} || "30";
    $OUT .= "$et";
}
memory_limit                           = {
    my $ml = $php{MemoryLimit} || "256M";
    $OUT .= "$ml";
}


UploadMaxFilesize

Recherche du fragment

On recherche le fragment qui contient le paramètre upload_max_filesize.

# grep  -i "upload_max_filesize"  /etc/e-smith/templates/etc/php.ini/*
/etc/e-smith/templates/etc/php.ini/60FileUploads:upload_max_filesize                    = {

Le fragment en question est le fichier 60FileUploads.


On affiche ce fragment.

# cat /etc/e-smith/templates/etc/php.ini/60FileUploads
file_uploads                           = On
upload_max_filesize                    = {
    my $mf = $php{UploadMaxFilesize} || "10M";
    $OUT .= "$mf";
}

On voit que la valeur limite est présentement de 10M. Nous allons l'ajuster à 50M pour pouvoir téléverser des fichiers plus volumineux.

Icone-SeTirerDembarrasAPT.png  Il faut obligatoirement que la valeur de memory_limit soit plus grande que celle de upload_max_filesize. Si on modifie l'une, il faut vérifier l'autre pour que la correspondance des grandeurs soit respectée.

Icone-AsurveillerAPT-1.png  memory_limit (256M) > upload_max_filesize (50M).


On copie le fragment standard de la variable UploadMaxFilesize dans le répertoire du gabarit personnalisé.

# cp /etc/e-smith/templates/etc/php.ini/60FileUploads  /etc/e-smith/templates-custom/etc/php.ini/60FileUploads


On vérifie.

# ls -ls /etc/e-smith/templates-custom/etc/php.ini/60FileUploads
4 -rw-r--r-- 1 root root 155 25 nov.  04:55 /etc/e-smith/templates-custom/etc/php.ini/60FileUploads


Modification du fragment personnalisé

On modifie la valeur maximale à l'aide de l'utilitaire sed.

# sed -i 's/10M/50M/'  /etc/e-smith/templates-custom/etc/php.ini/60FileUploads


On vérifie.

# cat /etc/e-smith/templates-custom/etc/php.ini/60FileUploads
file_uploads                           = On
upload_max_filesize                    = {
    my $mf = $php{UploadMaxFilesize} || "50M";
    $OUT .= "$mf";
}


PostMaxSize

Recherche du fragment

On recherche le fragment qui contient le paramètre post_max_size.

# grep  -i "post_max_size"  /etc/e-smith/templates/etc/php.ini/*
/etc/e-smith/templates/etc/php.ini/40DataHandling:post_max_size                         = {

Le fragment en question est le fichier 40DataHandling.


On affiche ce fragment.

# cat /etc/e-smith/templates/etc/php.ini/40DataHandling
mysql.allow_persistent                 = On
variables_order                        = "EGPCS"
register_globals                       = Off
register_argc_argv                     = On
post_max_size                          = {
    my $ms = $php{PostMaxSize} || "20M";
    $OUT .= "$ms";
}
magic_quotes_gpc                       = Off
magic_quotes_runtime                   = Off
magic_quotes_sybase                    = Off
auto_prepend_file                      =
auto_append_file                       =
default_mimetype                       = "text/html"

On voit que la valeur limite est présentement de 20M. Nous allons l'ajuster à 52M pour qu'elle soit plus grande que celle de la valeur de UploadMaxFilesize.

Icone-SeTirerDembarrasAPT.png  Il faut obligatoirement que la valeur du paramètre post_max_size soit plus grand que celle du paramètre upload_max_filesize. Si on modifie l'une, il faut vérifier l'autre pour que la correspondance des grandeurs soit respectée..


Création d'un gabarit personnalisé

Nous avons déjà créé le répertoire du gabarit personnalisé pour le fragment de php.ini lors de la modification de la variable MemoryLimit. Il contient déjà deux fragments.

# ls -ls /etc/e-smith/templates-custom/etc/php.ini
4 -rw-r--r-- 1 root root 215 25 nov.  04:55 20ResourceLimits
4 -rw-r--r-- 1 root root 155 25 nov.  04:55 60FileUploads


On copie le fragment standard du paramètre upload_max_filesize dans le répertoire du gabarit personnalisé.

# cp /etc/e-smith/templates/etc/php.ini/40DataHandling  /etc/e-smith/templates-custom/etc/php.ini/40DataHandling


On vérifie.

# ls -ls /etc/e-smith/templates-custom/etc/php.ini/40DataHandling
4 -rw-r--r-- 1 root root 558 25 nov.  05:02 /etc/e-smith/templates-custom/etc/php.ini/40DataHandling


Modification du fragment personnalisé

On modifie la valeur maximale à l'aide de l'utilitaire sed.

# sed -i 's/20M/52M/' /etc/e-smith/templates-custom/etc/php.ini/40DataHandling


On vérifie.

# grep -i PostMaxSize /etc/e-smith/templates-custom/etc/php.ini/40DataHandling
    my $ms = $php{PostMaxSize} || "52M";


Signalisation des modifications

On signale les modifications et on réamorce pour que les fragments du gabarit personnalisé soient incorporés au fichier php.ini de manière permanente.

# signal-event post-upgrade ; signal-event reboot


SME-201.2-015-MediaWiki-php-f-1.png
  • - Le serveur réamorce et va assembler tous les fragments, incluant les notres, de tous les gabarits.
    - Icone-NoteAPT.png Le choix des fragments des gabarits personnalisés ont préséance sur les fragments standards lors de l'assemblage des fichiers de configuration.



Vérification des paramètres de php.ini

Après le réamorçage, on se logue et on vérifie le fichier de configuration /etc/php.ini afin de voir si les fragments personnalisés contenant nos changements y ont été incorporés.

Icone-SeTirerDembarrasAPT.png  Si PuTTY ne peut vous reloguer, on réamorce encore une fois le serveur virtuel. Ce "bogue" provient de la variable AutoBlock du démon sshd.

# cat /etc/php.ini | grep -i  memory_limit
memory_limit                           = 256M


# cat /etc/php.ini | grep -i  post_max_size
post_max_size                          = 52M


# cat /etc/php.ini | grep -i upload_max_filesize
upload_max_filesize                    = 50M


Icone-AsurveillerAPT-1.png  Comme on le voit ci-dessus, les grandeurs maximales sont maintenant de 256M, 52M et 50MB. Les relations ont été respectées: memory_limit (256M) > post_max_size (52M) > upload_max_filesize (50MB).


Collection MySQL57

Version MySQL actuelle pour un Serveur SME-9.2.

# rpm -qa | grep mysql-server
mysql-server-5.1.73-8.el6_8.x86_64

Comme on le voit, notre version 5.1.73-8 de MySQL est légèrement vieillotte elle aussi.


MySQL57 Software Collections

Référence: https://wiki.contribs.org/Software_Collections:MySQL57.

Icone-NoteAPT.png  Nous allons installer la Collection MySQL57 qui fourni une version plus récente tout en gardant la version originalement installée.


Référentiel centos-sclo-rh

Pour installer un logiciel, il faut indiquer à yum de quelle URL il doit le télécharger. Pour ce faire, il faut configurer une description du référentiel décrivant la source du téléchargement.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

/sbin/e-smith/db yum_repositories set centos-sclo-rh repository          \
Name 'Centos - RH Software Collections'                                  \
BaseURL 'http://mirror.centos.org/centos/$releasever/sclo/$basearch/rh/' \
EnableGroups no                                                          \
Visible yes                                                              \
status disabled


On vérifie.

# db yum_repositories show centos-sclo-rh
centos-sclo-rh=repository
    BaseURL=http://mirror.centos.org/centos/$releasever/sclo/$basearch/rh/
    EnableGroups=no
    Name=Centos - RH Software Collections
    Visible=yes
    status=disabled


On signale la modification.

# signal-event yum-modify


Icone-AstuceAPT.png  Attendre 20-30 secondes pour que yum ait terminé sa mise à jour.


Installation de la Collection RH-MySQL57

# yum install -y --enablerepo=smecontribs smeserver-mysql57
...
Installation de    10 paquet(s)

Taille totale des téléchargements : 32 M
Taille d'installation : 138 M
...
Installé:
  smeserver-mysql57.noarch 0:2.0.0-11.el6.sme

Dépendance(s) installée(s) :
  rh-mysql57.x86_64 0:2.3-3.el6
  rh-mysql57-lz4.x86_64 0:r131-5.el6
  rh-mysql57-mecab.x86_64 0:0.996-1.el6.8
  rh-mysql57-mysql.x86_64 0:5.7.16-1.el6
  rh-mysql57-mysql-common.x86_64 0:5.7.16-1.el6
  rh-mysql57-mysql-config.x86_64 0:5.7.16-1.el6
  rh-mysql57-mysql-errmsg.x86_64 0:5.7.16-1.el6
  rh-mysql57-mysql-server.x86_64 0:5.7.16-1.el6
  rh-mysql57-runtime.x86_64 0:2.3-3.el6

Terminé !

==============================================================
WARNING: You now need to run BOTH of the following commands
to ensure consistent system state:

signal-event post-upgrade; signal-event reboot
You should run these commands unless you are certain that
yum made no changes to your system.
==============================================================


Signalisation des modifications

# signal-event post-upgrade ; signal-event reboot


Icone-NoteAPT.png  Plus tard, lors de la création de la base de donnée pour l'installation de MediaWiki, nous allons accéder à MySQLl57 par son connecteur logiciel[1] (socket). Voir le paragraphe #Création de la base de données pour MediaWiki.


Avertissements

Lors du dernier signal-event post-upgrade; signal-event reboot, des avertissements peuvent s'afficher à propos de MySQL. On peut les ignorer; ils ne reviendront pas la prochaine fois de l'utilisation de cette commande.


Vérification de la version MySQL de la Collection RH-MySQL57

Le chemin de la collection est: /opt/rh/rh-mysql57.

# ls -ls /opt/rh/rh-mysql57/root/usr/bin/mysql
3784 -rwxr-xr-x 1 root root 3872720 16 nov.   2016 /opt/rh/rh-mysql57/root/usr/bin/mysql


On affiche la version MySQL de la Collection RH-MySQL57.

# /opt/rh/rh-mysql57/root/usr/bin/mysql --version
/opt/rh/rh-mysql57/root/usr/bin/mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper


On vérifie si le démon mysql57-mysqld est lancé.

# ps aux  >  grep mysql57
root       828  0.0  0.0    108    28 ?        Ss   05:14   0:00 runsv mysql57-mysqld
smelog     890  0.0  0.0   3940   392 ?        S    05:14   0:00 /usr/local/bin/multilog t s5000000 /var/log/mysql57-mysqld
mysql     1860  0.2  4.7 1262156 191884 ?      Sl   05:15   0:00 /opt/rh/rh-mysql57/root/usr/libexec/mysqld --defaults-file=/opt/rh/rh-mysql57/root/etc/my.cnf --basedir=/opt/rh/rh-mysql57/root/usr --datadir=/opt/rh/rh-mysql57/root/var/lib/mysql --user=mysql --pid-file=/var/run/rh-mysql57-mysqld/mysqld.pid --socket=/var/lib/mysql/mysql57.sock --lc-messages-dir=/opt/rh/rh-mysql57/root/usr/share/rh-mysql57-mysql/english/
root      2801  0.0  0.0 103340   928 pts/0    S+   05:21   0:00 grep mysql57


On vérifie la présence du connecteur mysql.sock.

# ls -als /var/lib/mysql/mysql57.sock
0 srwxrwxrwx 1 mysql mysql 0 25 nov.  05:16 /var/lib/mysql/mysql57.sock


Création de la base de données pour MediaWiki

On accède à mysql57 par son connecteur logiciel.

# /opt/rh/rh-mysql57/root/usr/bin/mysql  --socket=/var/lib/mysql/mysql57.sock
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


On crée la base de données (dans notre exemple, on utilise MediaWikiBD).

mysql> CREATE DATABASE MediaWikiBD;
Query OK, 1 row affected (0.00 sec)
mysql>


Icone-AsurveillerAPT-1.png  Si on utilise l'ancienne manière de donner des droits et créer l'usager dans la même commande, MySQL émettra un avertissement

mysql> GRANT ALL ON MediaWikiBD.* TO usager_MWBD@localhost IDENTIFIED BY 'mdp_MediaWikiBD';

Query OK, 0 rows affected, 1 warning (0,00 sec)

mysql>

Icone-NoteAPT.png  Cette façon de faire est "obsolète".


On affiche l'avertissement.

mysql> SHOW WARNINGS;

...
| Warning | 1287 | Using GRANT statement to modify existing user's properties other than privileges is deprecated and will be removed in future release. Use ALTER USER statement for this operation. |
...
mysql>


Nouvelle manière pour GRANT

  • On crée l'usager usager_MWBD et on lui donne le mot de passe mdp_MediaWikiBD.
mysql> CREATE USER 'usager_MWBD'@'localhost' IDENTIFIED BY 'mdp_MediaWikiBD';

Query OK, 0 rows affected (0,00 sec)

mysql>

Icone-AsurveillerAPT-1.png  Pour l'usager de la BD de MediaWiki, il faut choisir un mot de passe robuste: au moins 7 caractères, minuscules, majuscules, chiffres et signes non-alphanumériques. Il ne faut pas prendre notre exemple de mot de passe.


  • C'est seulement après la création de l'utilisateur, qu'on lui donne tous les droits sur la BD MediaWikiBD.
mysql> GRANT ALL ON MediaWikiBD.* TO 'usager_MWBD'@'localhost';


Query OK, 0 rows affected (0,00 sec)

mysql>

Icone-AsurveillerAPT-1.png  Notez le nom de la base de données: MediaWikiBD, le nom de l'usager: usager_MWBD et son mot de passe: mdp_MediaWikiBD; ils serviront plus tard lors de l'installation de MediaWiki.


On doit exécuter la commande FLUSH PRIVILEGES pour indiquer à MySQL qu'il doit recharger les droits.

mysql> FLUSH PRIVILEGES;


Query OK, 0 rows affected (0.00 sec)

mysql>


On vérifie que la base de données a bien été créée.

mysql> show databases;


+--------------------+
| Database           |
+--------------------+
| information_schema |
| MediaWikiBD        |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql>


On vérifie les privilèges de l'usager usager_MWBD.

mysql> show grants for usager_MWBD@localhost;


+----------------------------------------------------------------------+
| Grants for usager_MWBD@localhost                                     |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'usager_MWBD'@'localhost'                      |
| GRANT ALL PRIVILEGES ON `MediaWikiBD`.* TO 'usager_MWBD'@'localhost' |
+----------------------------------------------------------------------+
2 rows in set (0,00 sec)

mysql>


On quitte MySQL.

mysql> quit;


Bye
[root@mediawiki ~]#


Installation de git

On installe git qui nous aidera pour les mises à jour de notre version MediaWiki.

# yum install -y git
...
Installation de     2 paquet(s)

Taille totale des téléchargements : 4.6 M
Taille d'installation : 15 M
...
Installé:
  git.x86_64 0:1.7.1-9.el6_9

Dépendance(s) installée(s) :
  perl-Git.noarch 0:1.7.1-9.el6_9

Terminé !


Préparation de l'i-bay

Habituellement, l'i-bay Primary est réservée pour l'installation de WordPress et de WooCommerce pour un site de commerce en ligne.

Pour cette raison, on crée une i-bay dédiée à MediaWiki et qu'on nomme wiki.


Création de l'i-bay wiki

SME-201.2-018-MediaWiki-ibay-c.png
SME-201.2-017-MediaWiki-ibay-b-2.png
SME-201.2-016-MediaWiki-ibay-a.png
  • On se logue dans le gestionnaire Server Manager en allant à: https://FQDN-ou-adresse-ip/server-manager.
  • On se logue obligatoirement avec admin  >  on entre le mot de passe utilisé lors de l'installation du Serveur SME  >  Login.
  • I-bays  >  Ajouter une i-bay.



SME-201.2-020-MediaWiki-ibay-E.png
SME-201.2-017-MediaWiki-ibay-b-4.png
  • - Icone-NoteAPT.png Ne pas utiliser de caractères accentués.
    - Ajouter.
  • On s'assure du succès de l'opération.



Fichier index.html

On se rend dans le répertoire racine de l'i-bay wiki.

# cd /home/e-smith/files/ibays/wiki/html/


On affiche le contenu du répertoire racine de l'i-bay.

# ls -als
total 12
4 drwxr-s--- 2 admin www  4096 25 nov.  06:24 .
4 drwxr-xr-x 6 root  root 4096 11 oct.  19:24 ..
4 -rw-r----- 1 admin www   260 25 nov.  06:24 index.html


Icone-SeTirerDembarrasAPT.png  On supprime le fichier index.html car, il entrerait en conflit avec index.php de MediaWiki.

# rm index.html
rm : supprimer fichier « index.html » ? o

On vérifie.

# ls -als
total 8
4 drwxr-s--- 2 admin www  4096 25 nov.  06:25 .
4 drwxr-xr-x 6 root  root 4096 11 oct.  19:24 ..


Répertoire temporaire de téléchargement

On doit spécifier un répertoire temporaire à l'i-bay wiki pour le téléchargement de fichiers par MediaWiki.

Icone-AsurveillerAPT-1.png  Ce répertoire servira pour tous les programmes PHP installés dans l'i-bay wiki et ses sous-répertoires, lorsque ceux-ci auront besoin d'un répertoire temporaire pour effectuer leurs téléchargements.

Icone-NoteAPT.png  Si ce répertoire n'existe pas, certains CMS pourraient afficher le message suivant:

"Le fichier que vous voulez téléverser semble vide.
Ceci peut être dû à une erreur dans le nom du fichier.
Veuillez vérifier que vous désirez vraiment téléverser ce fichier"


Si on ajoute une seconde installation MediaWiki dans une autre i-bay, il faut exécuter cette commande en spécifiant le nom de cette autre i-bay dans la commande.


On active la propriété.

# db accounts setprop wiki PHPBaseDir  /home/e-smith/files/ibays/wiki:/tmp


On signale le changement pour qu'il devienne permanent.

# signal-event ibay-modify  wiki


BD de comptes

On ajuste les propriétés de la BD de comptes pour l'i-bay wiki.

  • Permettre à Apache de lire les fichiers .htaccess (s'ils sont présents) de l'i-bay wiki et de ses sous-répertoires.
# db accounts setprop wiki AllowOverride all


  • Permettre à Apache de suivre les liens symboliques des répertoires.
# db accounts setprop wiki FollowSymLinks enabled


  • Défendre à Apache d'afficher le contenu des répertoires.
# db accounts setprop wiki Indexes disabled


On signale les modifications pour qu'elles deviennent permanentes.

# signal-event ibay-modify wiki


On vérifie tous les paramètres de l'i-bay wikii.

# db accounts show wiki
wiki=ibay
    AllowOverride=all
    CgiBin=enabled
    FollowSymLinks=enabled
    Gid=5001
    Group=admin
    Indexes=disabled
    Name=MediaWiki
    PHPBaseDir=/home/e-smith/files/ibays/wiki:/tmp
    PasswordSet=no
    PublicAccess=global
    SSL=enabled
    Uid=5001
    UserAccess=wr-admin-rd-group


Tous les prérequis sont remplis, nous sommes prêt pour l'installation de MediaWiki.


Installation de MediaWiki

Choix de la version

Avec un fureteur sur la station de travail, on se rend au site de téléchargement de MediaWiki: https://www.mediawiki.org/wiki/Download/fr.

SME-201.2-021-MediaWiki-Installation-A.png
  • - À la date d'aujourd'hui, c'est la version 1.31.1 qui est la dernière version stable. C'est une LTS[2] (Long Term Support).
    - Les prérequis sont affichés.



Vérification des version PHP et MySQL

Version de PHP

Icone-AsurveillerAPT-1.png  S'il faut utiliser PHP-7.1 dans une commande spécifique, il faut spécifier le chemin complet.

# /opt/remi/php71/root/usr/bin/php --version
PHP 7.1.23 (cli) (built: Oct 10 2018 11:30:01) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies


Version de PHP pour l'ibay wiki

SME-201.2-022-MediaWiki-Installation-B.png



Au paragraphe #Ajustement des paramètres PHP, nous avons spécifié les paramètres spécifiques pour PHP-7.1.

# config show php71
php71=configuration
    AllowUrlFopen=Off
    MaxExecutionTime=30
    MaxFileUpload=20
    MaxInputTime=60
    MemoryLimit=256M
    PhpModule=disabled
    PostMaxSize=52M
    UploadMaxFilesize=50M


Version de MySQL

Icone-AsurveillerAPT-1.png  S'il faut utiliser MySQL-5.7 dans une commande spécifique, il faut absolument spécifier le chemin complet.

# /opt/rh/rh-mysql57/root/usr/bin/mysql --version
/opt/rh/rh-mysql57/root/usr/bin/mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper


Icone-AsurveillerAPT-1.png  Pour se connecter à MySQL-5.7, il faut spécifier le connecteur /var/lib/mysql/mysql57.sock.

/opt/rh/rh-mysql57/root/usr/bin/mysql --socket=/var/lib/mysql/mysql57.sock


i-bay d'installation

Si ce n'est déjà fait, à la console du Serveur SME, on se rend dans le répertoire racine de l'i-bay wiki.

# cd /home/e-smith/files/ibays/wiki/html/


On vérifie.

# pwd
/home/e-smith/files/ibays/wiki/html


On s'assure que le répertoire soit totalement vide.

# ls -als
4 drwxr-s--- 2 admin www  4096 25 nov.  06:25 .
4 drwxr-xr-x 6 root  root 4096 11 oct.  19:24 ..


Nous sommes prêts pour le téléchargement.


Téléchargement

Référence: https://www.mediawiki.org/wiki/Download_from_Git/fr.

La première étape consiste à faire un clone du répertoire de MediaWiki. Cette opération prend un moment.

Si vous voulez réduire le nombre de révisions qui sont clonées, ajoutez --depth=1 à la commande ci-dessus.

À la console du serveur, on entre la commande ci-dessous pour que git fasse le téléchargement. Ne pas oublier le "." à la fin de la commande.

 git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git --branch REL1_31 --depth=1 .
Initialized empty Git repository in /home/e-smith/files/ibays/wiki/html/.git/
remote: Counting objects: 72040, done
remote: Finding sources: 100% (72040/72040)
remote: Getting sizes: 100% (41484/41484)
remote: Compressing objects:  99% (1734238/1734239)
Receiving objects: 100% (72040/72040), 104.45 MiB | 548 KiB/s, done.
remote: Total 72040 (delta 58049), reused 39651 (delta 30115)
Resolving deltas: 100% (58049/58049), done.


Mise à jour des modules

Les branches de publication contiennent un tas de sous-modules Git, pour les extensions et les skins couramment utilisés (la branche master ne les possède pas).

On met à jour les sous-modules.

# git submodule update --init
Submodule 'extensions/CategoryTree' (https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTree) registered for path 'extensions/CategoryTree'
Submodule 'extensions/Cite' (https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite) registered for path 'extensions/Cite'
Submodule 'extensions/CiteThisPage' (https://gerrit.wikimedia.org/r/mediawiki/extensions/CiteThisPage) registered for path 'extensions/CiteThisPage'
Submodule 'extensions/CodeEditor'
...
Submodule path 'skins/Vector': checked out 'f0327dc5558395186eddd3911508817482cd4bc4'
Initialized empty Git repository in /home/e-smith/files/ibays/wiki/html/vendor/.git/
remote: Counting objects: 4297, done
remote: Finding sources: 100% (29/29)
remote: Getting sizes: 100% (28/28)
remote: Compressing objects: 100% (839504/839504)
remote: Total 21986 (delta 2), reused 21974 (delta 0)
Receiving objects: 100% (21986/21986), 19.92 MiB | 541 KiB/s, done.
Resolving deltas: 100% (14691/14691), done.
Submodule path 'vendor': checked out '5f60e30d272ea5327b407e625b4398952d49f8cf'


Ajustement des droits

On ajuste le propriétaire et le groupe.

# chown -R admin:www * .*


On enlève tous les droits à "other".

# chmod -R o-rwx * .*


On vérifie.

# ls -als
total 1328
  4 drwxr-s--- 16 admin www   4096 25 nov.  06:58 .
  4 drwxr-x---  6 admin www   4096 11 oct.  19:24 ..
  8 -rw-r-----  1 admin www   4697 25 nov.  06:55 api.php
136 -rw-r-----  1 admin www 136895 25 nov.  06:55 autoload.php
  4 drwxr-s---  2 admin www   4096 25 nov.  06:55 cache
  4 -rw-r-----  1 admin www    116 25 nov.  06:55 CODE_OF_CONDUCT.md
  4 -rw-r-----  1 admin www   3573 25 nov.  06:55 composer.json
  4 -rw-r-----  1 admin www    102 25 nov.  06:55 composer.local.json-sample
 20 -rw-r-----  1 admin www  19421 25 nov.  06:55 COPYING
 12 -rw-r-----  1 admin www  11526 25 nov.  06:55 CREDITS
  4 drwxr-s---  8 admin www   4096 25 nov.  06:55 docs
  4 -rw-r-----  1 admin www    207 25 nov.  06:55 .eslintrc.json
  4 drwxr-s--- 24 admin www   4096 25 nov.  06:58 extensions
  4 -rw-r-----  1 admin www     95 25 nov.  06:55 FAQ
  4 drwxr-s---  8 admin www   4096 25 nov.  06:57 .git
  4 -rw-r-----  1 admin www    258 25 nov.  06:55 .gitattributes
  4 -rw-r-----  1 admin www   1041 25 nov.  06:55 .gitignore
  4 -rw-r-----  1 admin www   3962 25 nov.  06:55 .gitmodules
  4 -rw-r-----  1 admin www     97 25 nov.  06:55 .gitreview
  4 -rw-r-----  1 admin www   3499 25 nov.  06:55 Gruntfile.js
872 -rw-r-----  1 admin www 888845 25 nov.  06:55 HISTORY
  4 drwxr-s---  2 admin www   4096 25 nov.  06:55 images
  8 -rw-r-----  1 admin www   7705 25 nov.  06:55 img_auth.php
  4 drwxr-s--- 71 admin www   4096 25 nov.  06:55 includes
  4 -rw-r-----  1 admin www   1579 25 nov.  06:55 index.php
  4 -rw-r-----  1 admin www   3681 25 nov.  06:55 INSTALL
  4 -rw-r-----  1 admin www   2042 25 nov.  06:55 jsduck.json
  4 drwxr-s---  6 admin www   4096 25 nov.  06:55 languages
  4 -rw-r-----  1 admin www   1950 25 nov.  06:55 load.php
 24 -rw-r-----  1 admin www  23988 25 nov.  06:55 .mailmap
 12 drwxr-s--- 17 admin www  12288 25 nov.  06:55 maintenance
  4 drwxr-s---  4 admin www   4096 25 nov.  06:55 mw-config
  4 -rw-r-----  1 admin www   4059 25 nov.  06:55 opensearch_desc.php
  4 -rw-r-----  1 admin www   1149 25 nov.  06:55 package.json
  8 -rw-r-----  1 admin www   4428 25 nov.  06:55 .phpcs.xml
 12 -rw-r-----  1 admin www  12026 25 nov.  06:55 profileinfo.php
  4 -rw-r-----  1 admin www   1529 25 nov.  06:55 README
  0 lrwxrwxrwx  1 admin www      6 25 nov.  06:55 README.mediawiki -> README
 32 -rw-r-----  1 admin www  29473 25 nov.  06:55 RELEASE-NOTES-1.31
  4 drwxr-s---  5 admin www   4096 25 nov.  06:55 resources
  4 -rw-r-----  1 admin www    199 25 nov.  06:55 SECURITY
  4 drwxr-s---  2 admin www   4096 25 nov.  06:55 serialized
  4 drwxr-s---  5 admin www   4096 25 nov.  06:58 skins
  4 -rw-r-----  1 admin www   1703 25 nov.  06:55 StartProfiler.sample
  4 -rw-r-----  1 admin www    125 25 nov.  06:55 .stylelintrc.json
  4 drwxr-s---  9 admin www   4096 25 nov.  06:55 tests
  4 -rw-r-----  1 admin www   1087 25 nov.  06:55 thumb_handler.php
 24 -rw-r-----  1 admin www  22633 25 nov.  06:55 thumb.php
  4 -rw-r-----  1 admin www   2487 25 nov.  06:55 .travis.yml
 12 -rw-r-----  1 admin www  12247 25 nov.  06:55 UPGRADE
  4 drwxr-s--- 12 admin www   4096 25 nov.  06:59 vendor


Installation de MediaWiki

On se rend sur notre site: http://FQDN_ou_adresse_ip/wiki.

SME-201.2-024-MediaWiki-Installation-D.png
SME-201.2-023-MediaWiki-Installation-C.png
  • On clique set up the wiki.
  • On choisit la langue du wiki  >  Continuer.



SME-201.2-025-MediaWiki-Installation-E.png
  • L’environnement a été vérifié. Vous pouvez installer MediaWiki.  >  Continuer →.



SME-201.2-027-MediaWiki-Installation-G.png
SME-201.2-026-MediaWiki-Installation-F.png
  • - On prend le défaut pour le type de base de donnée.
    - "Nom d’hôte de la base de données:" On indique le chemin du connecteur logiciel de mysql57 qui est: localhost:/var/lib/mysql/mysql57.sock

  • - On peut utiliser un préfixe pour les tables mais, ce n'est pas nécessaire si on n'installe qu'un seul site MediaWiki sur notre serveur.
    - On entre les paramètres utilisés au paragraphe #Création de la base de données pour MediaWiki:
    MediaWikiBD, usager_MWBD et mdp_MediaWikiBD  >  Continuer →.



SME-201.2-029-MediaWiki-Installation-I.png
SME-201.2-028-MediaWiki-Installation-H.png
  • On prend les défauts  >  Continuer →.
  • On entre le nom désiré pour notre wiki.



SME-201.2-031-MediaWiki-Installation-K.png
SME-201.2-030-MediaWiki-Installation-J.png
  • - On entre le nom de l'administrateur de notre wiki et son mot de passe puis, on le confirme.
    - On entre l'adresse courriel de l'administrateur.
  • - Pour faciliter la configuration, cocher "Me poser davantage de questions."
    - Continuer.

Icone-AsurveillerAPT-1.png Si vous n'avez pas de certificat SSH d'une Autorité de Certification (CA) reconnue, il vaut mieux utiliser une adresse courriel autre que celle du serveur car, vous ne pourrez accéder à Webmail; ce dernier n'autorise que les connexions sécurisées.

Icone-AstuceAPT.png  Pour un certificat de Let's Encrypt sur un serveur local, voir le Cahier SME-201.5.3: Odoo-11 & serveur de test/dev à la section Obtention d'un certificat pour un serveur local.


SME-201.2-033-MediaWiki-Installation-M.png
SME-201.2-032-MediaWiki-Installation-L.png
  • On choisit le profil des droits d'utilisateurs.
  • On choisit notre licence.



SME-201.2-035-MediaWiki-Installation-O.png
SME-201.2-034-MediaWiki-Installation-N.png
  • - On choisit admin@192.168.1.11 pour les retours de courriels.
    - Au choix, on active les notifications.
  • On choisit les habillages.



SME-201.2-036-MediaWiki-Installation-Q.png
SME-201.2-035-MediaWiki-Installation-P.png
  • On choisit les extensions désirées.
  • - On coche Activer le téléchargement de fichiers.
    - Pour l'instant, le logo par défaut sera utilisé.



SME-201.2-038-MediaWiki-Installation-S.png
SME-201.2-037-MediaWiki-Installation-R.png
  • - On choisit de ne pas utiliser de mise en cache.
    - Continuer →.
  • Continuer →.



SME-201.2-040-MediaWiki-Installation-U.png
SME-201.2-039-MediaWiki-Installation-T.png
  • Continuer →.
  • On sauvegarde le fichier de configuration  >  OK.



Téléversement du fichier de configuration

SME-201.2-041-MediaWiki-Installation-V.png
  • On téléverse le fichier de configuration, qu'on vient de sauvegarder, à la racine de notre site. Pour ce faire, on peut utiliser Filezilla ou WinSCP.


Ajustement des droits

Si nous n'y sommes pas déjà, on se rend à la racine de notre site pour ajuster le propriétaire et les droits de notre site.

# cd /home/e-smith/files/ibays/wiki/html/


On vérifie.

# pwd
/home/e-smith/files/ibays/wiki/html


On ajuste Récursivement le propriétaire des fichiers et répertoires de notre site.

Pour l'i-bay wiki ce sera admin:www.

# chown -R admin:www * .*


On enlève Récursivement tous les droits à "other".

# chmod -R o-rwx * .*


On vérifie.

# ls -als
total 1336
  4 drwxr-s--- 16 admin www   4096 25 nov.  07:35 .
  4 drwxr-x---  6 admin www   4096 11 oct.  19:24 ..
  8 -rw-r-----  1 admin www   4697 25 nov.  06:55 api.php
...
  4 -rw-r-----  1 admin www    207 25 nov.  06:55 .eslintrc.json
...
  8 -rw-r-----  1 admin www   5604 25 nov.  07:32 LocalSettings.php
...
  4 -rw-r-----  1 admin www    125 25 nov.  06:55 .stylelintrc.json
...
  4 drwxr-s---  1 admin www   4096 25 nov.  06:59 vendor


Répertoire images

On donne le droit d'écriture et le bit SetGID au groupe pour le répertoire images et ses sous-répertoires afin de permettre le téléchargement de fichiers et d'images.

 # find /home/e-smith/files/ibays/wiki/html/images -type d -exec chmod g+ws {} \; 2>&1

Icone-SeTirerDembarrasAPT.png  Si, plus tard, on rencontre des problèmes de téléchargements de fichiers ou d'images, on peut répéter cette commande.


On vérifie.

# ls -alsd images/
4 drwxrws--- 2 admin www 4096 25 nov.  06:55 images/


Accès et login à MediaWiki

SME-201.2-042-MediaWiki-Installation-W.png
  • On retourne à l'écran d'installation et on clique accéder à votre wiki.



SME-201.2-044-MediaWiki-Installation-Y.png
SME-201.2-043-MediaWiki-Installation-X.png
  • Se connecter.
  • On se logue.



SME-201.2-045-MediaWiki-Installation-Z.png
  • Victoire totale, notre site est fonctionnel.



Configuration

SME-201.2-048-MediaWiki-Config-C.png
SME-201.2-047-MediaWiki-Config-B-1.png
SME-201.2-046-MediaWiki-Config-A.png

Préparation

  • - Si nous avons installé MediaWiki plus d'une fois à cause d'une erreur, si nous avons changé d'adresse IP sur le serveur ou sur la station de travail ou pour quelque raison que ce soit, il vaut mieux être prudent et vidanger l'historique du fureteur avant de se rendre sur notre wiki.
    - On efface tout ce que notre fureteur ait pu retenir avant de se brancher.
     
  • On donne l'adresse à FireFox afin de se connecter à notre wiki.
  • On se logue.



SME-201.2-049-MediaWiki-Config-D.png

Confirmation de l'adresse courriel

  • Préférences pour confirmer notre adresse courriel.
• L'adresse courriel est facultative mais, elle est nécessaire pour réinitialiser votre mot de passe si vous veniez à l'oublier.
• Vous pourriez aussi choisir de laisser les autres vous contacter sur votre page de discussion utilisateur, sans qu'il ne soit nécessaire de révéler votre identité.


SME-201.2-051-MediaWiki-Config-F.png
SME-201.2-050-MediaWiki-Config-E.png
  • Onglet Informations personnelles  >  cadre "Options des courriels"  >  cliquez Confirmez votre adresse de courriel.
  • Envoyer un code de confirmation.



SME-201.2-053-MediaWiki-Config-H.png
SME-201.2-052-MediaWiki-Config-G.png
  • MediaWiki affiche que le courriel de confirmation a été envoyé.
  • Dans le courriel qu'on reçoit, on clique le lien de confirmation.



SME-201.2-055-MediaWiki-Config-J.png
SME-201.2-054-MediaWiki-Config-I.png
  • MediaWiki affiche que notre adresse courriel a été confirmée.
  • Dans Préférences, onglet Informations personnelles  >  cadre "Options des courriels"  >  une ligne indique que notre adresse courriel a été confirmée.


Services Proxy

Si on a suivi la documentation d'installation du Serveur SME-9.2, les services mandataires sont déjà désactivés.

SME-201.2-056-MediaWiki-Config-K.png
  • À faire, si on n'a pas suivi la documentation d'installation.

On se logue dans le gestionnaire du serveur: http://FQDN_ou_adresse_IP/server-manager  >  Sécurité  >  Services proxy.


• État du service Proxy HTTP

Cette page va vous permettre de définir le fonctionnement des Services Proxy.

Votre serveur intègre un Proxy transparent et un cache pour le trafic HTTP. Il est activé par défaut sauf, dans le cas où le serveur est configuré en mode "Serveur uniquement". Si ce serveur est utilisé comme serveur de messagerie, les requêtes des hôtes du réseau LOCAL à destination des serveurs SMTP externes seront redirigées par défaut vers ce serveur.

Le service Proxy HTTP permet de réduire votre consommation de bande passante en mettant en cache les pages récemment visitées.


• État du service Proxy SMTP

Le service Proxy SMTP transparent permet de réduire le trafic lié aux virus à partir des hôtes infectés en forçant tout le trafic SMTP sortant à traverser ce serveur. Si vous souhaitez utiliser un autre serveur SMTP et que ce serveur est votre passerelle vers celui-ci, désactivez ce Proxy. Régler ce proxy à "bloqué" empêche tout trafic vers d'autres serveurs, c'est le réglage par défaut. Le proxy intercepte/bloque seulement le trafic SMTP normal (port 25).


SME-201.2-057-MediaWiki-Config-L.png
  • Icone-AsurveillerAPT-1.png Après avoir désactivé ces mandataires et cliqué Enregistrer, on s'assure du succès de l'opération.



Logo de notre wiki

Le format maximum pour un logo avec l'habillage Vector est de 160x160px. Les formats pour Standard et Classic est de 135x135px. Dans les habillages Vector et MonoBook, un logo trop grand sera coupé tandis que pour Standard et Classic, il s'étendra légèrement à l'intérieur du périmètre du contenu.

Icone-AsurveillerAPT-1.png  Il ne faut tout simplement pas écraser le fichier wiki.png par notre logo car à la prochaine mise à jour, celle-ci va écraser ce fichier.


SME-201.2-059-MediaWiki-Config-N.png
SME-201.2-058-MediaWiki-Config-M.png

Importation du fichier de notre logo

  • Importer un fichier.
  • - Parcourir.
    - Icone-NoteAPT.png On peut remarquer la Taille maximale du fichier: 50 Mio qu'on a configurée au paragraphe #Ajustement des paramètres PHP.



SME-201.2-061-MediaWiki-Config-P.png
SME-201.2-060-MediaWiki-Config-O.png
  • - On se rend dans le répertoire contenant le fichier de notre logo, sur notre station de travail, on le sélectionne  >  Ouvrir.
    - Notre logo apparaît.
  • - On ajoute une description.
    - On décoche Suivre ce fichier.
    - Importer le fichier.



SME-201.2-062-MediaWiki-Config-Q.png

Le chemin relatif de notre logo

  • On claque sur le nom du fichier  >  Copier l'adresse du lien.
- On voit où se trouve le fichier de notre logo.

http://192.168.1.11/wiki/images/6/61/Logo_RF-232_160px_transparent.png

- Le répertoire racine de notre site est: http://192.168.1.11/wiki/.
- Le chemin relatif est donc: /images/6/61/Logo_RF-232_160px_transparent.png.



On spécifie le chemin relatif de notre logo, à la fin du fichier de configuration LocalSettings.php.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/wiki/html/LocalSettings.php <<'EOT'

#####  ***********************
# Le logo de RF-232
$wgLogo = "{$wgScriptPath}/images/6/61/Logo_RF-232_160px_transparent.png";

EOT


On vérifie.

# tail -5 /home/e-smith/files/ibays/wiki/html/LocalSettings.php
#####  ***********************
# Le logo de RF-232
$wgLogo = "{$wgScriptPath}/images/6/61/Logo_RF-232_160px_transparent.png";


SME-201.2-063-MediaWiki-Config-P.png
  • - On rafraîchit la page d'Accueil.

    - Petite victoire, notre logo apparaît.



SME-201.2-064-MediaWiki-Config-Q-1.png

Importation de fichiers

Sur la page d'accueil, on clique Importer un fichier.

  • - Icone-NoteAPT.png  Remarquez les "Formats de fichiers autorisés", seulement: png, gif, jpg, jpeg et webp.
    • Nous réglerons ce détail dans un prochain paragraphe.

    - Parcourir  >  sélectionner l'image  >  Ouvrir  >  entrer une description.

    - Décocher Suivre ce fichier.

    - Importer le fichier.



SME-201.2-065-MediaWiki-Config-R.png
  • Le fichier a été importé.



Répertoires d'importation

Après quelques importations d'images, MediaWiki a créé plusieurs sous-répertoires pour les y emmagasiner et il en a fait de même pour leurs miniatures (thumb).

# ls -als /home/e-smith/files/ibays/wiki/html/images/*
4 -rw-r----- 1 admin www   84 25 nov.  06:55 /home/e-smith/files/ibays/wiki/html/images/README

/home/e-smith/files/ibays/wiki/html/images/6:
total 16
4 drwxr-sr-x 4 www   www 4096 25 nov.  18:30 .
4 drwxrws--- 6 admin www 4096 25 nov.  18:16 ..
4 drwxr-sr-x 2 www   www 4096 25 nov.  18:16 61
4 drwxr-sr-x 2 www   www 4096 25 nov.  18:30 6a

/home/e-smith/files/ibays/wiki/html/images/archive:
total 12
4 drwxr-sr-x 3 www   www 4096 25 nov.  18:16 .
4 drwxrws--- 6 admin www 4096 25 nov.  18:16 ..
4 drwxr-sr-x 4 www   www 4096 25 nov.  18:30 6

/home/e-smith/files/ibays/wiki/html/images/lockdir:
total 8
4 drwxr-sr-x 2 www   www 4096 25 nov.  18:30 .
4 drwxrws--- 6 admin www 4096 25 nov.  18:16 ..

/home/e-smith/files/ibays/wiki/html/images/thumb:
total 12
4 drwxr-sr-x 3 www   www 4096 25 nov.  18:16 .
4 drwxrws--- 6 admin www 4096 25 nov.  18:16 ..
4 drwxr-sr-x 4 www   www 4096 25 nov.  18:30 6


Formats de fichiers autorisés

SME-201.2-066-MediaWiki-Config-S.png
  • Par défaut, les seuls formats de fichiers autorisés sont: png, gif, jpg, jpeg et webp.
• Pour remédier à cette situation, il faut éditer le fichier LocalSettings.php.



On ajoute, à la fin du fichier LocalSettings.php, les lignes des paramètres (rouge) avec celles de leur commentaire (bleu).

Icone-NoteAPT.png  On ajoute à la fin du fichier, les paramétrages spécifiques (pour bien différencier l'installation par défaut des réglages et extensions spécifiques) afin de faciliter la maintenance.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/wiki/html/LocalSettings.php <<'EOT'

##### ***********************
# 2018-05-19_22h48 HNE //  Michel-André
# On ajoute à la fin du fichier les paramétrages spécifiques (pour bien différencier
# l'installation par défaut des réglages et extensions spécifiques) afin de faciliter
# la maintenance.

# Limite de taille de fichier, ici 50MB
$wgMaxUploadSize = 1024*1024*50;

# Doit-on vérifier l'extension du nom de fichier à l'upload? oui
$wgCheckFileExtensions = true;

# Les extensions autorisées
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ppt', 'pdf', 'psd', 'mp3', 'xls', 'xlsx', 'swf', 'doc','docx', 'odt', 'odc', 'odp', 'odg', 'mpp', 'webp');

# Les extensions spécifiquement interdites
# HTML may contain cookie-stealing JavaScript and web bugs
# PHP scripts may execute arbitrary code on the server
# Other types that may be interpreted by some servers
# May contain harmful executables for Windows victims
$wgFileBlacklist = array( 'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht', 'php', 'phtml', 'php3', 'php4', 'php5', 'phps', 'shtml', 'jhtml', 'pl', 'py', 'cgi', 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' );

EOT


Icone-NoteAPT.png  Ici, la limite est de 50MB.

...
# Limite de taille de fichier, ici 50MB
$wgMaxUploadSize = 1024*1024*50;
...


Icone-AsurveillerAPT-1.png  On peut spécifier un nombre plus grand dans le fichier LocalSettings.php mais, la véritable limite est celle spécifiée par UploadMaxFilesize au paragraphe #UploadMaxFilesize.

# config setprop php71 UploadMaxFilesize 50M


On vérifie notre ajout au fichier LocalSettings.php.

# tail -23 /home/e-smith/files/ibays/wiki/html/LocalSettings.php
#####  ***********************
# 2016-05-05_18h40 HAE //  Michel-André
# On ajoute à la fin du fichier les paramétrages spécifiques (pour bien différencier
# l'installation par défaut des réglages et extensions spécifiques) afin de faciliter
# la maintenance.

# Limite de taille de fichier, ici 50MB
$wgMaxUploadSize = 1024*1024*50;

# Doit-on vérifier l'extension du nom de fichier à l'upload? oui
$wgCheckFileExtensions = true;

# Les extensions autorisées
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ppt', 'pdf', 'psd', 'mp3', 'xls', 'xlsx', 'swf', 'doc','docx', 'odt', 'odc', 'odp', 'odg', 'mpp', 'webp');

# Les extensions spécifiquement interdites
# HTML may contain cookie-stealing JavaScript and web bugs
# PHP scripts may execute arbitrary code on the server
# Other types that may be interpreted by some servers
# May contain harmful executables for Windows victims
$wgFileBlacklist = array( 'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht', 'php', 'phtml', 'php3', 'php4', 'php5', 'phps', 'shtml', 'jhtml', 'pl', 'py', 'cgi', 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' );


SME-201.2-067-MediaWiki-Config-T-3.png

On vérifie dans MediaWiki.

  • Accueil  >  Importer un fichier.



Notre site MediaWiki est fonctionnel.


Semantic MediaWiki (SMW)

Semantic MediaWiki (SMW)

Référence: http://semantic-mediawiki.org/wiki/Help:Pr%C3%A9sentation_de_Semantic_MediaWiki

Semantic MediaWiki (SMW) est une extension de MediaWiki – l'application wiki bien connue sur laquelle repose Wikipédia – qui permet de rechercher, organiser, baliser, naviguer, évaluer et partager le contenu d'un wiki. Alors que les wikis traditionnels ne peuvent contenir que du texte ne pouvant être ni compris, ni évalué par les ordinateurs, SMW ajoute des annotations sémantiques permettant à un wiki de fonctionner comme une base de données collaborative. Semantic MediaWiki, qui a été diffusé pour la première fois en 2005, évolue aujourd'hui grâce à plus de dix développeurs et est utilisé sur des centaines de sites. De plus, un grand nombre d'extensions liées ont été créées permettant d'étendre la capacité de modifier, afficher et naviguer au travers des données stockées par SMW: le terme "Semantic MediaWiki" est quelquefois utilisé pour désigner la famille complète des extensions.


Là où SMW est utile

Semantic MediaWiki introduit certaines balises supplémentaires dans le texte wiki qui permettent aux utilisateurs d'ajouter des "annotations sémantiques" au wiki. Bien qu'à première vue, ceci tend à rendre les choses plus complexes, cela peut: considérablement simplifier la structure du wiki, aider les utilisateurs à trouver un maximum d'informations en un minimum de temps ainsi qu'augmenter la qualité générale et la cohérence du wiki.


LocalSettings.php

Paramètre $wgShellLocale

Il nous faut changer le paramètre $wgShellLocale dans le fichier LocalSettings.php de MediaWiki.

Référence: https://www.semantic-mediawiki.org/wiki/Help:Installation/General_notes.

Si vous utilisez MediaWiki 1.30.x et supérieur (notre cas avec 1.31.1), il est recommandé de changer le paramètre de configuration $wgShellLocale (MediaWiki.org) en C.UTF-8, tel que recommandé par les principaux développeurs de MediaWiki.


On se rend dans le répertoire racine de notre wiki.

# cd /home/e-smith/files/ibays/wiki/html/


On vérifie.

# pwd
/home/e-smith/files/ibays/wiki/html


On fait une sauvegarde du fichier.

# cp LocalSettings.php LocalSettings.php_avant-Semantic


On vérifie.

# ls -als LocalSettings.php*
8 -rw-r----- 1 admin www 6886 25 nov.  20:24 LocalSettings.php
8 -rw-r----- 1 root  www 6886 25 nov.  20:24 LocalSettings.php_avant-Semantic


On affiche le paramètre.

# cat LocalSettings.php | grep wgShellLocale
$wgShellLocale = "en_US.utf8";


On change la valeur du paramètre de:  en_US.utf8  à  C.UTF-8.

# sed -i 's/en_US.utf8/C.UTF-8/' LocalSettings.php


On vérifie.

# cat LocalSettings.php | grep wgShellLocale
$wgShellLocale = "C.UTF-8";


Composer

Référence: https://www.semantic-mediawiki.org/wiki/Help:Installation/fr.

La méthode recommandée pour installer Semantic MediaWiki est de le faire avec "Composer".


mbstring

L'extension mbstring permet l'utilisation de fonctions PHP multi-octets.


On s'assure que l'extension mbstring est présente dans PHP71.

# php --re mbstring | head -n 1
Extension [ <persistent> extension #31 mbstring version 7.1.23 ] {


Installeur

On s'assure qu'on est bien dans le répertoire racine de notre wiki.

# pwd
/home/e-smith/files/ibays/wiki/html


On télécharge l'installeur de Composer.

# wget http://getcomposer.org/installer
--2018-11-25 23:48:24--  http://getcomposer.org/installer
Résolution de getcomposer.org... 142.44.245.229, 2607:5300:201:2100::4:d105
Connexion vers getcomposer.org|142.44.245.229|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 263621 (257K) [application/octet-stream]
Sauvegarde en : «installer»

100%[==================================================>] 263 621     1,22M/s   ds 0,2s

2018-11-25 23:48:24 (1,22 MB/s) - «installer» sauvegardé [263621/263621]


On vérifie.

# ls -als installer
260 -rw-r--r-- 1 root www 263621 24 sept. 10:59 installer


On installe Composer.

# php installer
All settings correct for using Composer
Downloading...

Composer (version 1.7.3) successfully installed to: /home/e-smith/files/ibays/wiki/html/composer.phar
Use it: php composer.phar


On vérifie l'installation.

# ls -als composer.phar
1832 -rwxr-xr-x 1 root www 1875478 25 nov.  23:48 composer.phar


On supprime le fichier installeur.

# rm installer
rm : supprimer fichier « installer » ? o


Installation de Semantic MediaWiki avec Composer

Préparation

Icone-SeTirerDembarrasAPT.png  On peut ignorer l'avertissement car nous utilisons les options: --no-plugins et --no-scripts. Pour plus de détails, voir: https://getcomposer.org/root.

# php composer.phar install --no-plugins --no-scripts
Do not run Composer as root/super user! See https://getcomposer.org/root for details
> ComposerHookHandler::onPreUpdate
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 48 installs, 2 updates, 0 removals
  - Updating pear/pear-core-minimal (v1.10.3 => v1.10.6): Downloading (100%)
  - Updating pear/net_socket (v1.2.1 => v1.2.2): Downloading (100%)
  - Installing jakub-onderka/php-parallel-lint (v0.9.2): Downloading (100%)
...
phpunit/phpunit suggests installing ext-xdebug (*)
Writing lock file
Generating optimized autoload files
> ComposerVendorHtaccessCreator::onEvent


Installation de la version 3.0 de SMW

# php composer.phar require mediawiki/semantic-media-wiki "~3.0"
Do not run Composer as root/super user! See https://getcomposer.org/root for details
./composer.json has been updated
> ComposerHookHandler::onPreUpdate
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 23 installs, 1 update, 0 removals
  - Installing composer/installers (v1.6.0): Downloading (100%)
  - Installing symfony/css-selector (v3.4.18): Downloading (100%)
  - Installing serialization/serialization (3.2.2): Downloading (100%)
  - Installing data-values/interfaces (0.2.5): Downloading (100%)
  - Installing data-values/data-values (2.1.1): Downloading (100%)
  - Installing data-values/validators (0.1.3): Downloading (100%)
  - Installing data-values/common (0.4.2): Downloading (100%)
  - Installing param-processor/param-processor (1.4.0): Downloading (100%)
  - Installing wikimedia/textcat (1.2.0): Downloading (100%)
  - Installing onoi/tesa (0.1.0): Downloading (100%)
  - Installing onoi/shared-resources (0.4.3): Downloading (100%)
  - Installing onoi/message-reporter (1.3.0): Downloading (100%)
  - Installing onoi/cache (1.2.0): Downloading (100%)
  - Installing onoi/http-request (1.3.1): Downloading (100%)
  - Installing onoi/event-dispatcher (1.0.0): Downloading (100%)
  - Installing onoi/callback-container (2.0.0): Downloading (100%)
  - Installing onoi/blob-store (1.2.1): Downloading (100%)
  - Installing mediawiki/parser-hooks (1.5.0): Downloading (100%)
  - Installing react/promise (v2.7.0): Downloading (100%)
  - Installing guzzlehttp/streams (3.0.0): Downloading (100%)
  - Installing guzzlehttp/ringphp (1.1.1): Downloading (100%)
  - Installing elasticsearch/elasticsearch (v6.0.1): Downloading (100%)
  - Installing mediawiki/semantic-media-wiki (3.0.0): Downloading (100%)
mediawiki/semantic-media-wiki suggests installing mediawiki/semantic-result-formats (Provides additional result formats for queries of structured data)
Writing lock file
Generating optimized autoload files
> ComposerVendorHtaccessCreator::onEvent


Activation de SMW

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/wiki/html/LocalSettings.php <<'EOT'

#####  ***********************
# EXTENSION:SemanticMediaWiki
# Semantic MediaWiki introduit certaines balises supplémentaires dans le texte wiki qui
# permettent aux utilisateurs d'ajouter des "annotations sémantiques" au wiki.
require_once "$IP/extensions/SemanticMediaWiki/SemanticMediaWiki.php";
enableSemantics( '192.168.1.11' );

EOT

On vérifie.

# tail -7 LocalSettings.php
#####  ***********************
# EXTENSION:SemanticMediaWiki
# Semantic MediaWiki introduit certaines balises supplémentaires dans le texte wiki qui
# permettent aux utilisateurs d'ajouter des "annotations sémantiques" au wiki.
require_once "$IP/extensions/SemanticMediaWiki/SemanticMediaWiki.php";
enableSemantics( '192.168.1.11' );


setupStore.php

Configuration du système de stockage SMW actuellement sélectionné dans LocalSettings.php.

# cd /home/e-smith/files/ibays/wiki/html/extensions/SemanticMediaWiki/maintenance


Installation et mise à niveau de la base de données

Icone-NoteAPT.png  Veiller noter que cette commande nécessite d'avoir la permission de modifier/créer des tables de base de données.

# php setupStore.php
Selected storage engine: "SMWSQLStore3" (or an extension thereof)

Setting up standard database configuration for SMW ...

Checking table smw_object_ids ...
   Table not found, now creating...
   ... done.
Checking index structures for table smw_object_ids ...
...
Database initialized completed.

Running table optimization (this may take a moment) ...

Checking table smw_object_ids ...
   ... analyze, optimize done.
...
Optimization completed.

Adding property statistics rebuild job ...
   ... done.

Adding entity disposer job ...
   ... done.

Setting upgrade key ...
   ... done.

Import of default.json ...
   ... creating MediaWiki:Smw import skos contents ...
   ... creating MediaWiki:Smw import foaf contents ...
   ... creating MediaWiki:Smw import owl contents ...
   ... creating Attribut:Foaf:knows contents ...
   ... creating Attribut:Foaf:name contents ...
   ... creating Attribut:Foaf:homepage contents ...
   ... creating Attribut:Owl:differentFrom contents ...
   ... done.

Import processing completed.


Fonctions administrateur et base de données

Deux étapes sont nécessaires:

  1. Installation et mise à niveau de la base de données.
  2. Réparation et mise à niveau des données.


1. Installation et mise à niveau de la base de données

Cette étape a été complétée à la section précédente #setupStore.php par le lancement de la commande php setupStore.php.


2. Réparation et mise à niveau des données

SME-201.2-068-MediaWiki-SMW-A.png
  • On recherche la page Special:SemanticMediaWiki pour effectuer les étapes de configuration.



SME-201.2-069-MediaWiki-SMW-B.png
  • - À l'onglet Maintenance, sous "Réparation de données et mise à jour", on clique Commencer la mise à jour des données.

    - Cette seconde requête prend un certain temps (plus de 20-30 minutes).

    - Icone-NoteAPT.png SMW peut être utilisé avant la fin de cette étape mais, on n'aura pas encore accès à toutes les données (par exemple les pages catégorie).



SME-201.2-072-MediaWiki-SMW-E.png
SME-201.2-071-MediaWiki-SMW-D.png
SME-201.2-070-MediaWiki-SMW-C.png

Après quelques minutes, on rafraîchit la page pour voir la progression.


SME-201.2-073-MediaWiki-SMW-F.png
  • Une fois l'opération terminée, l'écran ci-contre apparaît.



Vérification de l'installation

Si on n'est pas certain du bon déroulement des opérations, on peut vérifier avec: Accueil  >  Pages spéciales  >  "Données et outils"  >  Version  >  cadre "Extensions installées".

SME-201.2-074-MediaWiki-SMW-G.png


Création d'une page classique

Nous allons créer une page classique que nous appellerons TestSMW.

SME-201.2-076-MediaWiki-SMW-I.png
SME-201.2-075-MediaWiki-SMW-H.png
  • On recherche cette page.
  • - Comme elle n'existe pas, Mediawiki nous offre de la créer.
    - On clique TestSMW.



  • On entre le texte ci-dessous pour vérifier que Semantic Mediawiki affichera la propriété Dummypage lorsqu'on cherchera les propriétés de cette page:
Property test: [[testproperty::Dummypage]]


SME-201.2-077-MediaWiki-SMW-J.png
  • On donne une description dans le "Résumé" et on clique Prévisualiser.



SME-201.2-079-MediaWiki-SMW-L.png
  • Notre page apparaît et Semantic MediaWiki af­fiche les propriétés de la page.



SME-201.2-081-MediaWiki-SMW-N.png
SME-201.2-080-MediaWiki-SMW-M.png
  • Après avoir enregistré la page, on peut aussi cliquer sur le lien Chercher les pro­pri­é­tés dans la barre d'ou­tils à gauche.
  • Cette vue af­fi­che "Testproperty" avec la valeur Dummypage.



Semantic Mediawiki (SMW) fonctionne parfaitement.


CharInsert

Introduction

CharInsert est une extension qui crée des liens JavaScript qui, lorsque cliqués, insèrent du texte prédéfini dans la boîte d'édition. Ces liens sont surtout utilisés par MediaWiki:Edittools.

SME-201.2-082-MediaWiki-CharInsert-A.png
  • Ci-contre, les boutons que nous voulons ultimement obtenir pour faciliter la création de pages.


Téléchargement

Adresse de téléchargement: https://www.mediawiki.org/wiki/Special:ExtensionDistributor/CharInsert.

SME-201.2-083-MediaWiki-CharInsert-B.png
  • On télécharge le fichier de l'extension dans un répertoire sur le poste de travail.



SME-201.2-084-MediaWiki-CharInsert-C.png
  • On téléverse le fichier tar.gz sur le serveur, dans le répertoire des extensions: /home/e-smith/files/ibays/wiki/html/extensions.



Si ce n'est déjà fait, on ouvre une session PuTTY vers le serveur et on se rend dans le répertoire des extensions.

# cd /home/e-smith/files/ibays/wiki/html/extensions/


On vérifie.

# pwd
/home/e-smith/files/ibays/wiki/extensions


On vérifie que l'extension a bien été téléversée dans ce répertoire.

# ls -asl CharInsert-REL1_31-b5f34be.tar.gz
24 -rw-r--r-- 1 root www 22356 26 nov.  01:46 CharInsert-REL1_31-b5f34be.tar.gz


Extraction du fichier tar.gz

On extraie.

# tar -zxvf CharInsert-REL1_31-b5f34be.tar.gz
CharInsert/
CharInsert/modules/
CharInsert/modules/ext.charinsert.css
...
CharInsert/CODE_OF_CONDUCT.md
CharInsert/.jshintrc
CharInsert/CharInsert.php


On vérifie.

# ls -lsd CharInsert/
4 drwxr-xr-x 6 998 998 4096 18 avril  2018 CharInsert/


On supprime le fichier tar.gz.

# rm CharInsert-REL1_31-b5f34be.tar.gz
rm : supprimer fichier « CharInsert-REL1_31-b5f34be.tar.gz » ? o


On ajuste Récursivement le propriétaire et le groupe.

# chown -R admin:www CharInsert


On enlève Récursivement tous les droits à "other".

# chmod -R o-rwx CharInsert


On vérifie,

# ls -alsd CharInsert
4 drwxr-x--- 6 admin www 4096 17 18 avril  2018 CharInsert


LocalSettings.php

Il faut maintenant modifier le fichier LocalSettings.php pour indiquer à MediaWiki qu'une nouvelle extension est disponible.

On se rend dans le répertoire racine du wiki.

# cd /home/e-smith/files/ibays/wiki/html/


On fait une sauvegarde du fichier qu'on s'apprête à modifier.

# cp LocalSettings.php LocalSettings.php_avant_CharInsert


On vérifie.

# ls -ls LocalSettings.php_avant_CharInsert
8 -rw-r----- 1 root www 7221 26 nov.  01:53 LocalSettings.php_avant_CharInsert


Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/wiki/html/LocalSettings.php <<'EOT'

#####  ***********************
# EXTENSION:CHARINSERT
# CharInsert is an extension that creates JavaScript links that when clicked, insert
# predefined text into the text box.
require_once( "$IP/extensions/CharInsert/CharInsert.php" );

EOT


On vérifie.

# tail -7 LocalSettings.php
#####  ***********************
# EXTENSION:CHARINSERT
# CharInsert is an extension that creates JavaScript links that when clicked, insert
# predefined text into the text box.
require_once( "$IP/extensions/CharInsert/CharInsert.php" );


Vérification sur le site

Acceuil  >  Pages spéciales  >  "Données et outils"  >  Version  >  "Extensions installées"  >  "Greffons de l'analyseur syntaxique".

SME-201.2-085-MediaWiki-CharInsert-D.png


En bas de la page, sous "Balises étendues de l'analyseur syntaxique", on voit aussi <charinsert>.

SME-201.2-086-MediaWiki-CharInsert-E.png


Édition des pages nécessaires à CharInsert

Il nous faut maintenant éditer toutes les pages nécessaires à la définition de notre greffon.


Page MediaWiki:Edittools

Sur la même page, nous cliquons insertion de caractères absents des claviers usuels.

SME-201.2-087-MediaWiki-CharInsert-F.png


La page s'affiche; c'est l'installation de l'extension CharInsert qui l'a créée. Elle est vide.

Cliquer Modifier pour éditer la page.

SME-201.2-088-MediaWiki-CharInsert-G.png


On est prêt à entrer le texte de cette page...

SME-201.2-089-MediaWiki-CharInsert-H.png


Icone-SeTirerDembarrasAPT.png  Nous allons copier le contenu de la page originale du site de mediawiki.org et le coller sur notre page.

On ouvre un nouvel onglet dans le navigateur, on se rend au site http://www.mediawiki.org et on lance la recherche de la page Mediawiki:Edittools.

SME-201.2-090-MediaWiki-CharInsert-I.png


SME-201.2-092-MediaWiki-CharInsert-K.png
SME-201.2-091-MediaWiki-CharInsert-J.png
  • On clique View source.
  • On sélectionne tout le texte [Ctl + A], on le copie [CTL + C]...



... et on le colle [CTL + V], dans la page MediaWiki:Edittools de notre site. On entre un commentaire et on clique Enregistrer.

SME-201.2-093-MediaWiki-CharInsert-L.png


Ce qui nous donne la page suivante.

SME-201.2-094-MediaWiki-CharInsert-M.png


Icone-NoteAPT.png  N'ayez crainte, plus loin, lorsque nous aurons terminé, la page apparaîtra telle que ci-dessous.

SME-201.2-095-MediaWiki-CharInsert-N.png




Page MediaWiki:Gadgets-definition

La liste des gadgets disponibles est définie par la page MediaWiki:Gadgets-definition. C'est l'installation de l'extension CharInsert qui a aussi créé cette page.

Nous allons éditer notre page MediaWiki:Gadgets-definition qui ne contiendra qu'une seule ligne et qui définira le gadget Edittools.

Exemple de cette future page. (Voir plus loin pour le texte à copier/coller.)

SME-201.2-096-MediaWiki-CharInsert-O.png


Syntaxe

Format de la ligne de cette page.

* nom_du_gadget [options (peut être omis)] | nom-page1-utilisée | nom-page2-utilisée...


Une ligne de définition commence par un ou plusieurs * (le caractère astérisque).

  • Premier champ "nom_du_gadget" est le nom interne du gadget.

Forme générale: nom_du_gadget

Exemple: Edittools.


  • Deuxième champ (Options)

Forme générale: [option-1 | option-2 | ... option-N].

Exemple: [ResourceLoader|Default].

Nom Paramètres Description Depuis
ResourceLoader Aucun Marque les scripts du gadget comme étant compatible avec ResourceLoader. ?
dependencies Noms des modules ResourceLoader séparés par une virgule Voir la liste des modules disponibles par défaut. Notez que cette option n'a pas d'effet si le gadget en question n'a pas de ressource compatible ResourceLoader (i.e. pas de style ni de script marqué comme compatible). ?
rights Noms des privilèges séparés par une virgule Rend le gadget visible dans les préférences uniquement aux utilisateurs qui ont les privilèges. ?
default Aucun Rend le gadget actif par défaut pour tout le monde (même les IPs!). Les utilisateurs enregistrés peuvent toujours le désactiver dans leurs préférences. 1.18


  • Troisième champ (Pages JavaScript ou CSS).

Le troisième champ fait référence aux pages de codes JavaScript ou CSS qui construisent le gadget. Les noms de ces pages doivent respectivement se terminer par .js ou .css. Un gadget peut utiliser n'importe quelle quantité de pages de code. Du code commun peut être inséré dans une page de code utilisée par plusieurs gadgets.

Forme générale: nom-page1-utilisée | nom-page2-utilisée...

Exemple: Edittools.js.


Exemple de mediawiki.org

Voici un extrait de la page MediaWiki:Gadgets-definition du site https://www.mediawiki.org/; vous pouvez la consulter en cherchant MediaWiki:Gadgets-definition puis cliquer View source.

...
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
* Edittools[ResourceLoader|default]|Edittools.js
* HotCat[ResourceLoader]|HotCat.js
...


Édition de la page MediaWiki:Gadgets-definition

Sur notre site, on cherche la page: MediaWiki:Gadgets-definition. C'est l'installation de l'extension CharInsert qui l'a aussi créée.

SME-201.2-097-MediaWiki-CharInsert-P.png
  • Cliquer Modifier.



SME-201.2-098-MediaWiki-CharInsert-Q.png
  • - On entre le texte suivant:

* Edittools[ResourceLoader|default]|Edittools.js

- On donne une description:

Le premier greffon

- On clique Enregistrer.



SME-201.2-099-MediaWiki-CharInsert-R.png
  • Voilà, la page a été modifiée.



SME-201.2-100-MediaWiki-CharInsert-S.png

Vérification sur le site

  • On clique Préférences  >  Gadgets.
    • Icone-NoteAPT.png&nbspLe gadget est bien là et il est coché car, on a spécifié l'option default, sur la ligne qu'on a insérée pour la page MediaWiki:Gadgets-definition. Cette option rend le gadget actif par défaut, pour tout le monde.
    • Icone-NoteAPT.png L'onglet "Gadgets" n'apparaîtra dans la page Spécial:Préférences qu'après avoir édité la page MediaWiki:Gadgets-definition et il faut que cette dernière contienne au moins une ligne pour définir un gadget valide.
    • Icone-AstuceAPT.png Sur la page Spécial:Préférence, un utilisateur pourra sélectionner les gadgets qu'il désire utiliser.




Page MediaWiki:Gadget-Edittools

Le premier champ, "nom_du_gadget", d'une ligne de la page MediaWiki:Gadgets-definition est le nom interne du gadget. Ce champ réfère à une page qui explique en quelques mots ce que fait ce gadget.

Le nom de cette page prend la forme suivante: MediaWiki:Gadget-nom_du_gadget.

Icone-NoteAPT.png  L'espace de noms MediaWiki: est implicite et il n'est pas écrit dans le premier champ de la ligne mais, il faut l'utiliser pour éditer la page.

Icone-AsurveillerAPT-1.png  Le nom interne du gadget doit commencer par une lettre ([A-Za-z]) suivi par n'importe quelle suite de lettres, chiffres ([0-9]), traits d’union ("-"), tirets bas ("_"), deux-points (":"), et points (".").

Pour notre gadget, le nom de la page sera: MediaWiki:Gadget-Edittools. On utilise la syntaxe MediaWiki pour la description du gadget.

SME-201.2-101-MediaWiki-CharInsert-T.png
  • Sur notre site, on cherche la page: MediaWiki:Gadget-Edittools



SME-201.2-102-MediaWiki-CharInsert-U.png
  • La page n'existe pas; on clique le nom de la page pour la créer.



SME-201.2-103-MediaWiki-CharInsert-V.png
  • On entre la ligne suivante.

'''''EditTools''''' est un gadget qui enrichit l'édition de texte en regroupant les sections sous un menu déroulant et en convertissant les balises de la syntaxe en boutons cliquables.

- On donne une description:

Le premier greffon

- On clique Enregistrer.



Vérification sur le site

On se rend sur Préférences  >  Gadgets.

Le gadget est toujours là et maintenant, la nouvelle description s'affiche.

SME-201.2-104-MediaWiki-CharInsert-W.png




Page MediaWiki:Gadget-Edittools.js

SME-201.2-105-MediaWiki-CharInsert-Y.png
SME-201.2-105-MediaWiki-CharInsert-X.png
  • Sur notre site, on cherche la page: MediaWiki:Gadget-Edittools.js
  • Créer.



Icone-SeTirerDembarrasAPT.png  Comme précédemment, nous allons copier la page originale du site http://www.mediawiki.org et la coller dans notre nouvelle page MediaWiki:Gadget-Edittools.js.

SME-201.2-106-MediaWiki-CharInsert-Z.png
  • On se rend sur le site http://www.mediawiki.org, on cherche MediaWiki:Gadget-Edittools.js  >  View source, on sélectionne tout le texte [Ctl + A] et on le copie [Ctl + C].



SME-201.2-107-MediaWiki-CharInsert-AA.png
  • - On revient sur notre site, on colle le texte [Ctl + V] sur notre page MediaWiki:Gadget-Edittools.js.
    - On entre une description: Pour le greffon Edittools.
    - Enregistrer.



Vérification finale

SME-201.2-108-MediaWiki-CharInsert-AB.png
  • - Sur notre site, à la page d'acceuil, on clique Modifier.
    - Les boutons cliquables des balises sont là et ils sont bien définis.
    - Le menu déroulant (Standard) est là, lui aussi.

    Icone-AstuceAPT.png Si les icônes n'apparaissent pas, rafraîchir la page du navigateur.



Avec les extensions CharInsert et WikiEditor, nous avons maintenant encore plus de choix pour le formatage de nos pages.


Masquer une révision (RevisionDelete)

Référence: https://www.mediawiki.org/wiki/Help:RevisionDelete

Référence: https://www.mediawiki.org/wiki/Manual:RevisionDelete

Référence: https://www.mediawiki.org/wiki/Manual:RevisionDelete/fr

Cacher une version de l'historique d'une page est possible grâce à la fonctionnalité de RevisionDelete, ajoutée au code de base de MediaWiki au milieu de l'année 2009. Cette fonctionnalité est disponible aux administrateurs et, peut être donnée aux usagers d'un groupe auquel a été attribué la permission deleterevision. Cette permission n'est offerte à aucun usager dans la configuration par défaut de MediaWiki.

Cette fonctionnalité a la faculté de masquer/afficher: la révision elle-même, le nom de l'usager qui a fait l'édition de la page, l'édition du résumé ou toute combinaison de ces trois paramètres.

Lorsque masqué, le contenu de la révision ne peut être vu par aucun usager si celui-ci ne possède pas le droit deleterevision. Essayer de comparer cette révision avec une autre ou tenter d'y accéder avec &oldid=page donnera une erreur disant que la révision a été enlevée des archives publiques. Il en sera de même pour la recherche, par l'individu impliqué, d'une entrée masquée dans le journal et ne retournera aucun résultat.

Icone-NoteAPT.png  Le masquage d'une révision demeure appliqué à une page, même si cette dernière a été supprimée.

Si la page est restaurée après une suppression, les révisions qui ont été masquées auparavant avec RevisionDelete, resteront masquées.

Icone-SeTirerDembarrasAPT.png  La révision courante ne peut être supprimée. Il faut en faire une nouvelle révision puis, supprimer la précédente page courante.


Propriétés de RevisionDelete

Voici les changements qu'on peut apporter à la visibilité d'une révision de page; on peut masquer:

  • le texte de la révision,
  • l'édition du résumé,
  • nom/adresse IP de l'usager.

Les révisions masquées vont quand même apparaître dans l'historique de la page mais, les parties masquées et leurs contenus vont être inaccessibles au public. Un groupe d'usagers peut être créé et lui accorder le pouvoir de rendre ces parties inaccessibles même aux administrateurs.

Pour la partie technique de ces fonctionnalités, voir:https://www.mediawiki.org/wiki/Bitfields_for_rev_deleted.


Activation

Pour l'activation de RevisionDelete, on doit insérer quelque(s) paramètre(s) dans le fichier LocalSettings.php.

Masquer une révision par un usager

Icone-AsurveillerAPT-1.png  L'octroi de ce privilège aux usagers n'est pas recommandé.

 $wgGroupPermissions['user']['deleterevision'] = true;


Masquer une révision aux usagers

 $wgGroupPermissions['sysop']['deleterevision'] = true;


LocalSettings.php

Si ce n'est déjà fait, on se rend dans le répertoire racine de notre wiki.

# cd /home/e-smith/files/ibays/wiki/html/


On fait une sauvegarde du fichier qu'on s'apprête à modifier.

# cp LocalSettings.php LocalSettings.php_avant_deleterevision


On vérifie.

# ls -ls LocalSettings.php_avant_deleterevision
8 -rw-r----- 1 root root 7462 26 nov.  04:59 LocalSettings.php_avant_deleterevision


Ce paramètre va donner le droit "RevisionDelete" à tous les administrateurs (sysop).

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/wiki/html/LocalSettings.php <<'EOT'

#####  ***********************
# RevisionDelete
#
# Ce paramètre va donner le droit RevisionDelete à tous les administrateurs. Si on ajoute
# cette ligne dans LocalSettings.php, tout administrateur qui est logué va voir une case à
# cocher sur chaque ligne des révisions de même qu'un bouton au-dessus et en dessous des
# révisions qui affichera "Masquer/afficher les versions sélectionnées".
# Les versions et événements supprimés seront encore présents dans l'historique de la page
# et dans les journaux mais, leur contenu textuel sera inaccessible au public. Les autres
# administrateurs du Wiki de Micronator pourront toujours accéder au contenu caché et le
# restaurer à travers cette même interface, à moins que des restrictions supplémentaires ne
# soient mises en place. Contrairement à ce qu'indique le nom de cette page, les nformations
# ne sont pas effacées mais simplement cachées à la vue des usagers.
$wgGroupPermissions['sysop']['deleterevision'] = true;

EOT


On vérifie.

[root@mediawiki wiki]# tail -16 LocalSettings.php
#####  ***********************
# RevisionDelete
#
# Ce paramètre va donner le droit RevisionDelete à tous les administrateurs. Si on ajoute
# cette ligne dans LocalSettings.php, tout administrateur qui est logué va voir une case à
# cocher sur chaque ligne des révisions de même qu'un bouton au-dessus et en dessous des
# révisions qui affichera "Masquer/afficher les versions sélectionnées".
# Les versions et événements supprimés seront encore présents dans l'historique de la page
# et dans les journaux mais, leur contenu textuel sera inaccessible au public. Les autres
# administrateurs du Wiki de Micronator pourront toujours accéder au contenu caché et le
# restaurer à travers cette même interface, à moins que des restrictions supplémentaires ne
# soient mises en place. Contrairement à ce qu'indique le nom de cette page, les nformations
# ne sont pas effacées mais simplement cachées à la vue des usagers.
$wgGroupPermissions['sysop']['deleterevision'] = true;


Masquer une révision de la page "Test"

Icone-NoteAPT.png  Les exemples de ce chapitre sont ceux de la version 0.2.0 / 2018-07-11 de ce document.

Après avoir ajouté ces lignes dans LocalSettings.php, tout administrateur qui est logué va voir une case à cocher sur chaque ligne des révisions de même qu'un bouton au-dessus et en dessous des révisions qui affichera "Masquer/afficher les versions sélectionnées".

SME-201.2-109-MediaWiki-MasquerRevision-A.png
  • Icone-AsurveillerAPT-1.png  On crée la page Test et on la modifie à quelques reprises puis, on la recherche.



On clique Afficher l'historique.

SME-201.2-110-MediaWiki-MasquerRevision-B.png


On peut sélectionner une version et la masquer en cliquant Afficher/masquer les versions sélectionnées.

SME-201.2-111-MediaWiki-MasquerRevision-C.png


On sélectionne une version et on clique Afficher/masquer les versions sélectionnées.

SME-201.2-112-MediaWiki-MasquerRevision-D.png


Cocher les restrictions de visibilité qu'on veut masquer, donner une raison et Appliquer à la révision sélectionnée.

SME-201.2-113-MediaWiki-MasquerRevision-E.png


On confirme en cliquant Appliquer à la révision sélectionné.

SME-201.2-114-MediaWiki-MasquerRevision-F.png


Icone-NoteAPT.png  Contrairement à ce qui est indiqué sur cette page, les informations ne sont pas supprimées mais, simplement cachées à la vue des usagers.

Icone-NoteAPT.png  Les versions et les événements supprimés seront encore présents dans l'historique de la page et dans les journaux mais, leurs contenus textuels seront inaccessibles au public. Les administrateurs du Wiki pourront toujours accéder au contenu caché et le restaurer à travers cette même interface, à moins que des restrictions supplémentaires ne soient mises en place.

Losqu'une révision est masquée dans son intégralité, celle-ci est affichée, comme ci-dessous, avec une ligne barrée et grisée pour tous ses éléments.

SME-201.2-115-MediaWiki-MasquerRevision-G.png


Entrée dans le journal

SME-201.2-117-MediaWiki-MasquerRevision-I.png
SME-201.2-116-MediaWiki-MasquerRevision-H.png
  • Acceuil  >  Pages spéciales  >  cadre "Outils pour les pages"  >  Voir les pages supprimées.
  • journal des suppressions.



Le journal affiche qu'on a modifié la visibilité d'une révision sur la page Test: contenu masqué, résumé de modification masqué et nom d'utilisateur masqué.‎ Il donne aussi la raison donnée pour le masquage (Pour un test).

SME-201.2-118-MediaWiki-MasquerRevision-J.png


Masquer plusieurs révisions

Si on sélectionne plus d'une révisions...

SME-201.2-119-MediaWiki-MasquerRevision-K.png


... une page un peu plus complexe s'affichera.

SME-201.2-120-MediaWiki-MasquerRevision-L.png


Droits des groupes d'utilisateurs

Acceuil  >  Pages spéciales  >  "Utilisateurs et droits rattachés"  >  Droits des groupes d'utilisateurs  >  Administrateurs.

Une nouvelle ligne a été ajoutée.

 Administrateurs (liste des membres)  ...
  • Supprimer ou restaurer une version particulière d'une page (deleterevision)

...


Ajouts au menu principal

Introduction

On veut ajouter une nouvelle ligne au menu principal.

  • Nom de la nouvelle page: AideDeRF232
  • Titre de la nouvelle ligne du menu: Aide pour RF-232

Icone-AstuceAPT.png  Ici, nous utilisons une orthographe différente pour faire une distinction arbitraire entre le Nom et le Titre pour accentuer leur différence lors de l'ajout du lien de cette page au menu principal. Voir #Ajout d'une nouvelle ligne au menu.

Création de la page

Icone-NoteAPT.png  Les exemples de ce chapitre sont ceux de la version 0.2.0 / 2018-07-11 de ce document.

On crée une nouvelle page contenant des liens d'aide qu'on nomme: AideDeRF232 et on y ajoute des liens vers des pages d'aide.


SME-201.2-122-MediaWiki-Menu-B.png
SME-201.2-121-MediaWiki-Menu-A.png
  • Rechercher AideRF232.
  • Cliquer AideDeRF232 pour créer la page.



Faire une liste à puces (*) de liens d'aide.

Icone-SeTirerDembarrasAPT.png  Si on ne fait pas une liste à puces, l'interligne devient trop grand. (On peut aussi utiliser <nowiki> qui est moins esthétique.)

Prendre tout l'encadré et le coller dans la nouvelle page  >  Enregistrer.

* [http://www.mediawiki.org/wiki/Sysadmin_hub/fr Inst MAJ config]
* [http://meta.wikimedia.org/wiki/Help:Editor/fr Manuel de l'éditeur]
* [http://www.mediawiki.org/wiki/Manual:LocalSettings.php/fr LocalSettings.php]
* [http://meta.wikimedia.org/wiki/Help:Wikitext_examples/fr Syntaxe wiki]
* [http://meta.wikimedia.org/wiki/Help:Table/fr Les tableaux]
* [http://meta.wikimedia.org/wiki/Help:Link/fr Les liens]
* [http://www.mediawiki.org/wiki/Manual:Security Security]
* [http://dev.mysql.com/doc/refman/5.5/en/grant.html GRANT Syntax]
* [http://www.mediawiki.org/wiki/Manual:Configuring_file_uploads Téléchargements]
* [http://www.mediawiki.org/wiki/Manual:LocalSettings.php#Security Upload location]
* [http://www.mediawiki.org/wiki/Extension:Configure Extension:Configure]
* [http://www.mediawiki.org/wiki/Help:Assigning_permissions permissions]
* [http://www.mediawiki.org/wiki/Help:User_rights User rights]
* [https://commons.wikimedia.org/wiki/File%3ACheatsheet-en.svg CheatSheet]
* [https://www.mediawiki.org/wiki/Extension:Interwiki#Download Extension:Interwiki]


SME-201.2-123-MediaWiki-Menu-C.png
  • Ce qui donnera la page ci-contre.
    Icone-SeTirerDembarrasAPT.png On clique quelques liens pour vérifier qu'ils fonctionnent correctement.



Ajout d'une nouvelle ligne au menu

SME-201.2-124-MediaWiki-Menu-D-1.png
  • - Pour éditer le menu, il faut rechercher la page en incluant son espace de noms: MediaWiki:Sidebar.
    - La page MediaWiki:Sidebar apparaît; pour l'éditer, on clique Modifier.



SME-201.2-125-MediaWiki-Menu-E.png
  • - On ajoute la nouvelle ligne au menu dans le format: Nom-de-la-page|Titre du menu. (Ne pas oublier "|").

* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help
** AideDeRF232|Aide pour RF-232
* SEARCH
* TOOLBOX
* LANGUAGES

     - Prévisualiser  >  Enregistrer.


SME-201.2-127-MediaWiki-Menu-F.png
SME-201.2-126-MediaWiki-Menu-F.png
  • La nouvelle ligne est ajoutée au menu principal.
  • Lorsqu'on clique Aide pour RF-232, la page des liens d'aide apparaît.



Ajout d'un nouveau bloc au menu

Au lieu d'ajouter une ligne, on aurait pu ajouter un nouveau bloc au menu principal.

SME-201.2-129-MediaWiki-Menu-H.png
  • - On recherche la page MediaWiki:Sidebar et on la modifie tel que ci-dessous.

* navigation
** mainpage|mainpage-description
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help
* SME
** AideDeRF232|Aide pour RF-232
* SEARCH
* TOOLBOX
* LANGUAGES

     - Un nouveau bloc apparaît dans les menus.


Ouverture dans une nouvelle fenêtre: "_blank"

Référence: http://www.mediawiki.org/wiki/Manual:Opening_external_links_in_a_new_window


Assigner une nouvelle cible par défaut aux liens externes (faire ouvrir les liens dans une nouvelle fenêtre).

Ajouter l'entrée suivante au fichier LocalSettings.php.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/wiki/html/LocalSettings.php <<'EOT'

#####  ***********************
# Pour faire ouvrir les liens dans une nouvelle fenêtre.
#
$wgExternalLinkTarget = '_blank';

EOT


Si la valeur est mise à "false" alors, aucun attribut n'est utilisé avec les liens externes. (Ce comportement devient le même que celui de "_self").

Icone-NoteAPT.png Ne s'applique pas au Menu Principal.

Lorsque la valeur est changée, les affichages doivent être rafraîchis pour rendre l'assignation effective.

Consulter aussi les liens suivants:


Mise à jour de Mediawiki

Restez à jour

Icone-AsurveillerAPT-1.png  Ici, mise à jour ne signifie pas de passer à une version supérieure de MediaWiki mais, seulement une mise à jour des fichiers de la banche actuelle.


Mise à jour

On se rend dans le répertoire racine de notre MediaWiki.

# cd /home/e-smith/files/ibays/wiki/html


On vérifie.

# pwd
/home/e-smith/files/ibays/wiki/html


Icone-NoteAPT.png  L'exemple de ce chapitre est celui de la version 0.2.0 / 2018-07-11 de ce document.

On met à jour. Toutes les dernières modifications concernant la branche que nous utilisons seront appliquées.

# git pull
remote: Counting objects: 635177, done
remote: Finding sources: 100% (625627/625627)
remote: Getting sizes: 100% (28172/28172)
remote: Compressing objects:  99% (176792/176793)
Receiving objects: 100% (625627/625627), 157.89 MiB | 1.78 MiB/s, done.
remote: Total 625627 (delta 535547), reused 620175 (delta 531693)
Resolving deltas: 100% (535547/535547), completed with 3815 local objects.
From https://gerrit.wikimedia.org/r/p/mediawiki/core
   9b3790c..36261d1  REL1_29    -> origin/REL1_29
   4d7d88b..6ffba8b  REL1_30    -> origin/REL1_30
   2bf035f..959e09c  REL1_31    -> origin/REL1_31
   1828e90..b24fafd  master     -> origin/master
   2d1623c..d45b951  wmf/1.32.0-wmf.12 -> origin/wmf/1.32.0-wmf.12
Updating 2bf035f..959e09c
Fast-forward
 includes/PHPVersionCheck.php |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


On met à jour les sous-modules.

# git submodule update --init

Rien n'est retourné, il n'existe aucune mise à jour pour les sous-modules.


Mise à jour des Collections Red Hat

Les Contribs peuvent être mises à jour à la console du serveur.

PHP

Lancement de la mise à jour

Icone-NoteAPT.png   Les sorties des commandes ci-dessous proviennent de la documentation originale qui a servie pour cette marche à suivre.

Référence: https://wiki.contribs.org/PHP_Software_Collections#Update.

# yum update -y smeserver-php-scl php54* php55* php56* php70* php71* --enablerepo=smecontribs
Modules complémentaires chargés : fastestmirror, smeserver
...

============================================================================================
 Paquet                    Architecture  Version                     Dépôt            Taille
============================================================================================
Mise à jour:
 php54-php-pear            noarch        1:1.10.4-1.el6.remi         remi-safe        369 k
 php54-php-pecl-zip        x86_64        1.14.0-1.el6.remi           remi-safe         39 k
 php55-php-pear            noarch        1:1.10.4-1.el6.remi         remi-safe        369 k
 php55-php-pecl-zip        x86_64        1.14.0-1.el6.remi           remi-safe         39 k
 php56-php-pear            noarch        1:1.10.4-1.el6.remi         remi-safe        369 k
 php56-php-pecl-zip        x86_64        1.14.0-1.el6.remi           remi-safe         39 k

Résumé de la transaction
============================================================================================
Mise à jour de     6 paquet(s)

Taille totale des téléchargements : 1.2 M
Téléchargement des paquets :
(1/6): php54-php-pear-1.10.4-1.el6.remi.noarch.rpm                   | 369 kB     00:01
(2/6): php54-php-pecl-zip-1.14.0-1.el6.remi.x86_64.rpm               |  39 kB     00:00
...
Lancement de la transaction
  Mise à jour   : php54-php-pecl-zip-1.14.0-1.el6.remi.x86_64                          1/12
  Mise à jour   : 1:php54-php-pear-1.10.4-1.el6.remi.noarch                            2/12
...
Mis à jour :
  php54-php-pear.noarch 1:1.10.4-1.el6.remi  php54-php-pecl-zip.x86_64 0:1.14.0-1.el6.remi
  php55-php-pear.noarch 1:1.10.4-1.el6.remi  php55-php-pecl-zip.x86_64 0:1.14.0-1.el6.remi
  php56-php-pear.noarch 1:1.10.4-1.el6.remi  php56-php-pecl-zip.x86_64 0:1.14.0-1.el6.remi

Icone-NoteAPT.png  Ci-dessus, seules des mises à jour pour PHP54/55/56 étaient disponibles et aucune pour PHP70/71.

Icone-SeTirerDembarrasAPT.png  On peut omettre l'option -y et yum demandera si on veut mette a jour. Il suffit de répondre o ou n pour oui ou non.


Icone-AsurveillerAPT.png  Si aucune mise à jour n'était disponible, on obtiendrait le message: Aucun paquet marqué pour mise à jour.

yum update -y smeserver-php-scl php54* php55* php56* php70* php71* --enablerepo=smecontribs

Modules complémentaires chargés : fastestmirror, smeserver
Configuration du processus de mise à jour
Loading mirror speeds from cached hostfile
* base: centos.mirror.ca.planethoster.net
* smeaddons: mirror.canada.pialasse.com
* smecontribs: mirror.canada.pialasse.com
* smeextras: mirror.canada.pialasse.com
* smeos: mirror.canada.pialasse.com
* smeupdates: mirror.canada.pialasse.com
* updates: mirror.netaddicted.ca
Aucun paquet marqué pour mise à jour


Signalisation des changements

Icone-AstuceAPT.png  On peut attendre après la mise à jour de MySQL57 pour signaler les changements.

Si une mise à jour avait été installée, on la signalerait et on réamorcerait.

# signal-event post-upgrade; signal-event reboot


On vérifie certaines des mises à jour.

# rpm -qa |  grep php-pecl-zip
php71-php-pecl-zip-1.14.0-1.el6.remi.x86_64
php70-php-pecl-zip-1.14.0-1.el6.remi.x86_64
php56-php-pecl-zip-1.14.0-1.el6.remi.x86_64
php55-php-pecl-zip-1.14.0-1.el6.remi.x86_64
php54-php-pecl-zip-1.14.0-1.el6.remi.x86_64


MySQL57

Lancement de la mise à jour

# yum update -y  --enablerepo=smecontribs,centos-sclo-rh smeserver-mysql57
Modules complémentaires chargés : fastestmirror, smeserver
Configuration du processus de mise à jour
Loading mirror speeds from cached hostfile
 * base: mirror.netflash.net
 * smeaddons: mirror.canada.pialasse.com
 * smecontribs: mirror.canada.pialasse.com
 * smeextras: mirror.canada.pialasse.com
 * smeos: mirror.canada.pialasse.com
 * smeupdates: mirror.canada.pialasse.com
 * updates: mirror.netflash.net
centos-sclo-rh                                                       | 2.9 kB     00:00
centos-sclo-rh/primary_db                                            | 1.2 MB     00:00
Aucun paquet marqué pour mise à jour

Présentement, il n'y a aucune mise à jour de disponible. S'il y en avait, la commande ci-dessus les installerait.


Signalisation des changements

Si une mise à jour avait été installée, on la signalerait et on réamorcerait.

# signal-event post-upgrade; signal-event reboot


Courriel de mises à jour disponibles

On peut modifier le statut de certains référentiels locaux, de disabled à enabled, pour ainsi recevoir automatiquement un courriel lorsque des mises à jour sont disponibles pour PHP70 ou MySQL57.

Icone-AsurveillerAPT-1.png  Veuillez ne pas activer le dépôt epel par défaut, car vous pourriez endommager votre système ou au moins le processus de mise à jour.


SME-201.2-131-MediaWiki-MAJ-B.png
SME-201.2-130-MediaWiki-MAJ-A.png
  • Server Manager  >  Mise à jour logicielle  >  Modifier les paramètres de mise à jour.
  • [CTL] clic sur "Centos - RH Software Collections" et "Remi -Safe" pour les activer.



SME-201.2-133-MediaWiki-MAJ-D.png
SME-201.2-132-MediaWiki-MAJ-C.png
  • - "Centos - RH Software Collections" et "Remi -Safe" deviennent bleu pour indiquer qu'ils sont activés.
    - Enregistrer.
  • - Les nouveaux paramètres on été enregistrés.
    - Modifier les paramètre de mise à jour pour mettre à jour tous les référentiels locaux.



SME-201.2-135-MediaWiki-MAJ-F.png
SME-201.2-134-MediaWiki-MAJ-E.png
  • Enregistrer pour lancer la mise à jour de tous les référentiels locaux.
  • Les référentiels locaux on été mis à jour et ils indiquent que des mises à jour logicielles sont disponibles.



SME-201.2-137-MediaWiki-MAJ-H.png
SME-201.2-136-MediaWiki-MAJ-G.png
  • - Des mises à jour pour PHP71 et MySQL57 sont disponibles.
    - Installer les mises à jour sélectionnées.
  • Reconfigurer.



SME-201.2-138-MediaWiki-MAJ-I.png
  • - Après un réamorçage, on retourne dans Server Manager et on voit que le système est à jour et que toutes les mises à jour ont été installées.
    - Icone-NoteAPT.png Désormais, le courriel quotidien, envoyé à l'utilisateur "admin" signalant l'existence de mises à jour disponibles pour le Serveur SME, inclura aussi celles disponibles pour PHP70 et MySQL57.



Lien de redirection dans l'i-bay Primary

Description

SME-201.2-139-MediaWiki-Redirection-A.png
  • Si nous n'avons aucun site dans l'i-bay Primary et que nous spécifions seulement http://FQDN_ou_ip/ sans spécifier wiki, nous verrons s'afficher le contenu du fichier par défaut, index.htm, sous /home/e-smith/files/ibays/Primary/html.



Icone-AsurveillerAPT-1.png  Même si nous supprimons ce fichier et qu'il n'y a aucun autre fichier index.* tel que index.php, le fichier index.htm sera recréé si nous exécutons signal-event post-upgrade ; signal-event reboot lors de l'ajout d'une Contrib ou après une mise à jour du Serveur SME.

Contenu du répertoire après les commandes: signal-event post-upgrade ; signal-event reboot.

# ls -als /home/e-smith/files/ibays/Primary/html
total 12
4 drwxr-s--- 2 admin shared 4096 11 oct.  19:25 .
4 drwxr-xr-x 5 root  root   4096 11 oct.  19:25 ..
4 -rw-r----- 1 admin shared  202 21 nov.   2005 index.htm


Icone-SeTirerDembarrasAPT.png  Pour remédier à la situation, nous allons créer un fichier .htaccess qui redirigera tous les accès à Primary (http://FQDN_ou_IP/) vers l'i-bay wiki.


BD de comptes

On ajuste les propriétés de la BD de comptes pour l'i-bay Primary.

  • Permettre à Apache de lire notre futur fichier .htaccess de l'i-bay Primary.
# db accounts setprop Primary AllowOverride all


  • Permettre à Apache de suivre les liens symboliques des répertoires de l'i-bay Primary.
# db accounts setprop Primary FollowSymLinks enabled


  • Défendre à Apache d'afficher le contenu des répertoires.
# db accounts setprop Primary Indexes disabled


On signale les modifications pour qu'elles deviennent permanentes.

# signal-event ibay-modify Primary


On vérifie.

# db accounts show Primary
Primary=ibay
    AllowOverride=all
    CgiBin=enabled
    FollowSymLinks=enabled
    Group=shared
    Indexes=disabled
    Modifiable=no
    Name=Primary i-bay
    PasswordSet=no
    Passwordable=no
    PublicAccess=global
    Removable=no
    UserAccess=wr-admin-rd-group


Création du fichier .htaccess

Icone-NoteAPT.png  Le fichier .htaccess, si présent dans le répertoire racine, est le premier fichier à être lu lors de l'accès à un site Web.


Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/Primary/html/.htaccess <<'EOT'
#####  ***********************
# Pour rediriger tout le traffic, qui arriverait dans la racine de l'i-bay Primary,
# vers l'i-bay wiki.
#
# Pour un domaine FQDN, changer "192.168.1.11" par "mon_domaine.com" (sans guillemets).
#

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} 192.168.1.11 [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ /wiki/$1 [L]

EOT

On vérifie.

# cat /home/e-smith/files/ibays/Primary/html/.htaccess
#####  ***********************
# Pour rediriger tout le traffic, qui arriverait dans la racine de l'i-bay Primary,
# vers l'i-bay wiki.
#
# Pour un domaine FQDN, changer "192.168.1.11" par "mon_domaine.com" (sans guillemets).
#

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} 192.168.1.11 [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ /wiki/$1 [L]


On ajuste le propriétaire et le groupe du fichier .htaccess (admin:shared pour Primary et admin:www pour toutes les autres i-bays).

# chown admin:shared /home/e-smith/files/ibays/Primary/html/.htaccess


On ajuste les droits.

# chmod 640 /home/e-smith/files/ibays/Primary/html/.htaccess


On vérifie.

# ls -als /home/e-smith/files/ibays/Primary/html/.htaccess
4 -rw-r----- 1 admin shared 377 26 nov.  05:35 /home/e-smith/files/ibays/Primary/html/.htaccess


Vérification de la redirection

SME-201.2-141-MediaWiki-Redirection-C.png
SME-201.2-140-MediaWiki-Redirection-B.png
  • On vidange l'historique de notre navigateur.
  • Effacer maintenant.



SME-201.2-142-MediaWiki-Redirection-D.png
  • On se rend à l'URL http://192.168.1.11 et on est automatiquement redirectionné vers la page d'accueil de notre MediaWiki.



Domaine FQDN

Si nous possédons un nom de domaine FQDN, nous pouvons simplement en spécifier l'i-bay dans le gestionnaire Server Manager.

SME-201.2-144-MediaWiki-Redirection-F.png
SME-201.2-143-MediaWiki-Redirection-E.png
  • Domaines  >  Modifier.
  • - i-bay = MediaWiki.
    - Serveurs DNS du domaine = Résolu localement
    - Modifier.


Icone-AsurveillerAPT-1.png Pour les "Serveurs DNS du domaine", il faut toujours utiliser "Serveurs DNS de l'Internet" pour un site dans l'i-bay Primary et "Résolu localement" pour tous les sites dans une autre i-bay, qu'ils aient un domaine FQDN ou non.


SME-201.2-146-MediaWiki-Redirection-H.png
SME-201.2-145-MediaWiki-Redirection-G.png
  • On s'assure du succès de l'opération.
  • - On entre https://www.micronator-101.com.
    - La page d'accueil de notre site s'affiche.


    Le nom de l'i-bay n'apparaît plus dans l'URL.
     Icone-NoteAPT.png Il n'est plus nécessaire d'utiliser le fichier .htaccess dans l'i-bay Primary.



Tout fonctionne correctement.


Répertoires spéciaux à sauvegarder

Référence: Adding/Excluding Directories and Files from the backup list.

Icone-NoteAPT.png  Les exemples de ce chapitre sont ceux de la version 0.2.0 / 2018-07-11 de ce document.


Répertoires et fichiers à inclure dans la sauvegarde

Les sous-répertoires de /etc ne sont pas tous inclus dans la sauvegarde standard du Serveur SME. Le répertoire /opt qui contient les collections PHP et MySQL n'est pas sauvegardé du tout.

Nous allons créer un gabarit personnalisé pour ajouter, dans la sauvegarde standard du Serveur SME, certains répertoires particuliers.


Répertoires

  • /opt → répertoires des collections.
  • /etc/dehydrated → le répertoire des certificats Let's Encrypt (si utilisé).


Création d'un gabarit personnalisé

On crée le répertoire pour le gabarit personnalisé.

# mkdir -p /etc/e-smith/templates-custom/etc/dar/DailyBackup.dcf


On sécurise.

# chmod 600 /etc/e-smith/templates-custom/etc/dar/DailyBackup.dcf


On vérifie.

# ls -lsd /etc/e-smith/templates-custom/etc/dar/DailyBackup.dcf
4 drw------- 2 root root 4096 18 juin  15:03 /etc/e-smith/templates-custom/etc/dar/DailyBackup.dcf


On crée le fichier 41go-into et on y insère le contenu de l'encadré ci-dessous pour indiquer d'inclure les fichiers et répertoire désirés.

Icone-SeTirerDembarrasAPT.png  Contrairement à ce qui est décrit dans la Contrib, il faut aussi utiliser --go-into pour les fichiers.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat > /etc/e-smith/templates-custom/etc/dar/DailyBackup.dcf/41go-into <<'EOT'
#
# Indique à la sauvegarde standard du Serveur SME d'inclure les fichiers et
# répertoires/sous-répertoires dans la sauvegarde standard.
#
# Michel-André: 2018-11-28_12h38.

# Répertoires
--go-into opt

# Fichiers 
# Décommenter si un certificat Let's Encrypt est utilisé par le Serveur SME.
# --go-into etc/dehydrated
# --go-into usr/bin/dehydrated
# --go-into usr/bin/dehydrated_hooks
# --go-into usr/bin/dehydrated_revoke

EOT

Icone-AsurveillerAPT-1.png  Il n'y a pas de caractère " / " (barre oblique) au début des chemins des fichiers et répertoires.


On vérifie.

# cat /etc/e-smith/templates-custom/etc/dar/DailyBackup.dcf/41go-into
#
# Indique à la sauvegarde standard du Serveur SME d'inclure les fichiers et
# répertoires/sous-répertoires dans la sauvegarde standard.
#
# Michel-André: 2018-11-28_12h38.

# Répertoires
--go-into opt

# Fichiers 
# Décommenter si un certificat Let's Encrypt est utilisé par le Serveur SME.
# --go-into etc/dehydrated
# --go-into usr/bin/dehydrated
# --go-into usr/bin/dehydrated_hooks
# --go-into usr/bin/dehydrated_revoke

Icone-AsurveillerAPT-1.png  Il peut y avoir une ligne vide avant le premier "#". Ci-dessus, nous avons inséré une ligne vide pour faciliter la copie de la commande.


On développe le gabarit personnalisé.

# expand-template /etc/dar/DailyBackup.dcf


On vérifie que le répertoire ait bien été incorporé dans DailyBackup.dcf.

# cat /etc/dar/DailyBackup.dcf | grep opt
--go-into opt


Lancement de la sauvegarde

On peut générer une sauvegarde régulière du Serveur SME qui sera lancée dans quelques minutes.

Icone-AstuceAPT.png  Autrement, on peut utiliser la commande ci-dessous pour lancer immédiatement une sauvegarde.

Il faut que les sauvegardes soient activées pour utiliser cette commande.

# /sbin/e-smith/do_backupwk

Icone-AsurveillerAPT-1.png  Comme on le voit ci-dessus, l'invite ne revient pas. Elle le fera seulement après la fin de do_backupwk.


Avec une autre session PuTTY, on peut vérifier si la sauvegarde est en exécution.

# ps aux | grep dar
root      2733  0.3  0.3 173544 12536 pts/0    S+   15:13   0:00 /usr/bin/perl -w /etc/e-smith/events/actions/workstation-backup-dar DailyBackup
root      2767 63.0  0.8 163512 35316 pts/0    RL+  15:13   0:20 /usr/bin/dar -Q -asecu --create /mnt/smb/odoo-11.micronator-101.org/full-20180618151337 -B /etc/dar/DailyBackup.dcf
root      2768  0.0  0.2 173544 10448 ?        Ss   15:13   0:00 /usr/bin/perl -w /etc/e-smith/events/actions/workstation-backup-dar DailyBackup
root      2790  0.0  0.0 103340   884 pts/1    S+   15:14   0:00 grep dar
[root@mediawiki ~]#


Icone-SeTirerDembarrasAPT.png  Si on veut utiliser la même connexion et retrouver l'invite tout de suite après le lancement de la commande, on ajoute le caractère " & " (sans guillemets) à la fin de la ligne de commande pour une exécution en arrière-plan.

# /sbin/e-smith/do_backupwk &
 
 [1] 2360
#


On peut suivre la sauvegarde en utilisant l'utilitaire top.

# top -d 1
top - 15:17:04 up 1:26 min,  2 users,  load average: 0.08, 0.21, 0.19
Tasks: 211 total,   2 running, 209 sleeping,   0 stopped,   0 zombie
Cpu(s): 95.4%us,  4.6%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4054564k total,  3242588k used,   811976k free,   182112k buffers
Swap:  1675260k total,        0k used,  1675260k free,  2048212k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2768 root      20   0  130m 5480 2124 R 90.3  0.1   0:02.35 dar
    1 root      20   0 19352 1536 1228 S  0.0  0.0   0:00.87 init
...

Icone-NoteAPT.png  Comme on le voit, DAR est très énergivore de temps CPU.


Après la sauvegarde, DAR met à jour le catalogue des sauvegardes.

# ps aux  >  grep dar_manager
root      2797 91.6  1.1 173856 45292 pts/0    RL+  15:18   0:11 /usr/bin/dar_manager -Q -B /mnt/smb/mediawiki.micronator-101.com/dar-catalog -D 1
root      2803  0.0  0.0 103344   888 pts/2    S+   15:18   0:00 grep dar_manager


Vérification

SME-201.2-147-MediaWiki-Sauvegarde-A-1.png
  • - On vérifie le répertoire "Sauvegarde" sur le poste de travail.
    - DAR a créé le répertoire mediawiki.micronator-101.com dans ce répertoire.



SME-201.2-149-MediaWiki-Sauvegarde-C-1.png
SME-201.2-148-MediaWiki-Sauvegarde-B-1.png
  • On examine le répertoire D:\Sauvegarde\mediawiki.micronator-101.com.
  • On examine le sous-répertoire set1.



La sauvegarde manuelle fonctionne correctement et a inclus le(s) répertoire(s) spécifié(s).


Sauvegarde/restauration MySQL57

Icone-NoteAPT.png  Les exemples de ce chapitre sont ceux de la version 0.2.0 / 2018-07-11 de ce document.


Description

Icone-AstuceAPT.png  Nous créons un script Bash qui génère, dans le répertoire /root/sauvegarde, un fichier de sauvegarde de la BD de MySQL57 du site Mediawiki. Le script est sécurisé et seul l'usager root pourra le lire.

Ce script sera lancé par une tâche cron qui s'exécutera à 02h00, juste avant la sauvegarde habituelle du Serveur SME. Ainsi cette dernière, englobant le répertoire /root au complet, inclura la sauvegarde quotidienne de MySQL57.


Répertoire de sauvegarde

Tout ce qui a trait à la sauvegarde de la BD MediaWikiBD de MySQL57 se trouvera dans un répertoire dédié à cette fin uniquement: /root/sauvegarde.

  • Le propriétaire et le groupe du répertoire seront root:root.
  • Seul root aura accès à ce répertoire.
  • Le fichier d'une nouvelle sauvegarde de MySQL57 sera généré quotidiennement et écrasera la sauvegarde du jour précédent.

On crée le répertoire.

# mkdir /root/sauvegarde


On ajuste tous les droits pour que seul l'usager root puisse y accéder.

# chmod 700 /root/sauvegarde


On vérifie.

# ls -alsd /root/sauvegarde
4 drwx------ 2 root root 4096 12 juil. 12:31 /root/sauvegarde


Script de sauvegarde MySQL57

Icone-SeTirerDembarrasAPT.png  Ajuster le nom de la BD: NOM_BD_WIKI=MediaWikiBD.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat > /root/sauvegarde/sauvegarde-MySQL57.sh <<'EOT'
#!/bin/sh

# Script pour générer une sauvegarde de la BD MediaWikiBD de Mediawiki.
# Michel-André 2018-07-05

# vars
REP_SAUVEGARDE=/root/sauvegarde
NOM_BD_WIKI=MediaWikiBD
FORMAT_FICHIER=sql
SOCKET=/var/lib/mysql/mysql57.sock

# On sauvegarde la BD dans $REP_SAUVEGARDE/$NOM_BD_WIKI.$FORMAT_FICHIER.
# La sauvegarde du jour écrase la sauvegarde du jour précédent.

/opt/rh/rh-mysql57/root/usr/bin/mysqldump --socket=$SOCKET                               \
                                          --databases $NOM_BD_WIKI >                     \
                                          $REP_SAUVEGARDE/$NOM_BD_WIKI.$FORMAT_FICHIER

# On sécurise le fichier de $NOM_BD_WIKI.$FORMAT_FICHIER.
/bin/chmod 700 $REP_SAUVEGARDE/$NOM_BD_WIKI.$FORMAT_FICHIER > /dev/null 2>&1

# On écrit une entrée dans le journal du système.
/bin/logger "********************  MySQL57 ********************  "
/bin/logger "La sauvegarde de la BD $MediaWikiBD est dans: $REP_SAUVEGARDE/$NOM_BD_WIKI.$FORMAT_FICHIER"
/bin/logger "********************  MySQL57 ********************  "
exit 1

EOT


On vérifie les sept premières lignes du fichier.

# head -n7 /root/sauvegarde/sauvegarde-MySQL57.sh
#!/bin/sh

# Script pour générer une sauvegarde de la BD MediaWikiBD de Mediawiki.
# Michel-André 2018-07-05

# vars
REP_SAUVEGARDE=/root/sauvegarde

Icone-AsurveillerAPT-1.png  Il n'y a pas de ligne vide avant la ligne #!/bin/sh. Ci-dessus, nous avons inséré une ligne vide pour faciliter la copie de la commande.


On sécurise le fichier et on ajuste les droits pour rendre le fichier exécutable par l'usager root uniquement.

# chmod 700 /root/sauvegarde/sauvegarde-MySQL57.sh


On vérifie.

# ls -ls /root/sauvegarde/sauvegarde-MySQL57.sh
4 -rwx------ 1 root root 1079 12 juil. 12:47 /root/sauvegarde/sauvegarde-MySQL57.sh


Sauvegarde

Vérification du script de sauvegarde

On vérifie le fonctionnement de notre script de sauvegarde de MySQL57 en simulant ce que fera cron.

# /root/sauvegarde/sauvegarde-MySQL57.sh


Lorsque le script est terminé, on affiche le fichier généré pour s'assurer que la sauvegarde a réussie.

# ls -ls /root/sauvegarde/MediaWikiBD.sql
4248 -rwx------ 1 root root 5868544 12 juil. 12:47 /root/sauvegarde/MediaWikiBD.sql

Icone-NoteAPT.png  Comme on le voit, seul root pourra manipuler le fichier de sauvegarde.


On vérifie que la sauvegarde contient DROP TABLE pour supprimer les anciennes tables lors d'une restauration de la BD.

# cat sauvegarde/MediaWikiBD.sql | grep "DROP TABLE"
DROP TABLE IF EXISTS `archive`;
DROP TABLE IF EXISTS `bot_passwords`;
...
DROP TABLE IF EXISTS `valid_tag`;
DROP TABLE IF EXISTS `watchlist`;


Journal du Serveur SME

Utilisée par le script, la commande /bin/logger a écrit dans le journal du serveur.

 ...
 Jul 12 12:47:58 mediawiki root: ******************** MySQL57 ********************
 Jul 12 12:47:58 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql
 Jul 12 12:47:58 mediawiki root: ******************** MySQL57 ********************
 ...


Tâche cron

On va créer une tâche cron qui s'exécutera quotidiennement (0 2 * * *) à 02h00 car, la sauvegarde régulière du Serveur SME est programmée pour rouler à 03h00 et nous voulons y inclure la nouvelle sauvegarde de la BD.


Répertoire pour le gabarit personnalisé

Création du répertoire.

# mkdir -p /etc/e-smith/templates-custom/etc/crontab


Création de la tâche cron

On crée le fichier de la tâche cron et on y insère son contenu. Elle s'exécutera quotidiennement à 02h00.

Icone-AsurveillerAPT-1.png  Prendre tout le contenu de l'encadré pour la commande.

cat > /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57 <<'EOT' 
SHELL=/bin/bash
MAILTO="michelandre@micronator.org"
#
# Tâche cron qui lance /root/sauvegarde/sauvegarde-MySQL57.sh afin de sauvegarder la BD
# MediaWikiBD. Cette tâche cron roulera quotidiennement à 02h00. 

# Michel-André, 2018-07-05_10h13

# ┌───────────── min (0 - 59) 
# │ ┌────────────── heure (0 - 23)
# │ │ ┌─────────────── jour du mois (1 - 31)
# │ │ │ ┌──────────────── mois (1 - 12)
# │ │ │ │ ┌───────────────── jour de la semaine (0 - 6) (0 à 6 sont de dimanche à samedi,
# │ │ │ │ │                  7 est dimanche, même que 0)
# │ │ │ │ │
# * * * * *  [usager] commande à exécuter
#
0 2 * * * root /root/sauvegarde/sauvegarde-MySQL57.sh

EOT

Icone-NoteAPT.png  L'heure peut être choisie à votre entière discrétion.

Icone-AsurveillerAPT-1.png  L'usager michelandre@micronator.org recevra un courriel seulement si une erreur est produite par la tâche cron.


On vérifie le contenu du fichier de la tâche.

# cat /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57
SHELL=/bin/bash
MAILTO="michelandre@micronator.org"
#
# Tâche cron qui lance /root/sauvegarde/sauvegarde-MySQL57.sh afin de sauvegarder la BD
# MediaWikiBD. Cette tâche cron roulera quotidiennement à 02h00.

# Michel-André, 2018-07-05_10h13

# ┌───────────── min (0 - 59)
# │ ┌────────────── heure (0 - 23)
# │ │ ┌─────────────── jour du mois (1 - 31)
# │ │ │ ┌──────────────── mois (1 - 12)
# │ │ │ │ ┌───────────────── jour de la semaine (0 - 6) (0 à 6 sont de dimanche à samedi,
# │ │ │ │ │                  7 est dimanche, même que 0)
# │ │ │ │ │
# * * * * *  [usager] commande à exécuter
#
0 2 * * * root /root/sauvegarde/sauvegarde-MySQL57.sh

Icone-AsurveillerAPT-1.png  Il n'y a pas de ligne vide avant la ligne SHELL=/bin/bash. Ci-dessus, nous avons inséré une ligne vide pour faciliter la copie de la commande.


On sécurise le fichier.

# chmod 700 /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57


On vérifie

# ls -ls /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57
4 -rwx------ 1 root root 860  860 12 juil. 12:49 /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57


On développe le gabarit personnalisé.

# expand-template /etc/crontab


On redémarre le démon crond.

# service crond restart
Arrêt de crond :                                           [  OK  ]
Démarrage de crond :                                       [  OK  ]


Vérification de la tâche cron

On modifie l'heure de la tâche cron pour qu'elle soit lancée à toutes les minutes afin de vérifier son exécution.

On change l'heure de la tâche.

 sed -i 's/^0 2/\* \*/' /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57


On vérifie.

# tail -n3 /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57
#
* * * * * root /root/sauvegarde/sauvegarde-MySQL57


On développe le gabarit personnalisé.

# expand-template /etc/crontab


On redémarre le démon crond.

# service crond restart
Arrêt de crond :                                           [  OK  ]
Démarrage de crond :                                       [  OK  ]


Suivi

On affiche l'heure actuelle.

# date
jeu. juil. 12 12:51:23 EDT 2018


On lance la commande ci-dessous pour suivre la tâche cron et on filtre avec grep les lignes qui contiendront sauvegarde.

 # tail -F /var/log/messages | grep sauvegarde


À toutes les minutes, on verra notre tâche s'afficher.

...
Jul 12 12:52:01 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql
Jul 12 12:53:02 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql
Jul 12 12:54:01 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql
...


On arrête la commande tail avec [CTL - c].

...
Jul 12 12:54:01 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql
^C


On remet l'heure de la tâche cron à 02h00.

# sed -i 's/\* \* \* \* \* root/0 2 \* \* \* root/' /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57


On vérifie.

# tail -n3 /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57
#
0 2 * * * root /root/sauvegarde/sauvegarde-MySQL57.sh


On développe le gabarit personnalisé.

# expand-template /etc/crontab


On redémarre le démon crond.

# service crond restart
Arrêt de crond :                                           [  OK  ]
Démarrage de crond :                                       [  OK  ]


Notre tâche cron pour la sauvegarde quotidienne de MySQL57 fonctionne correctement.


Sauvegarde régulière du Serveur SME

Lancement de la sauvegarde

Dans le gestionnaire Server Manager, on peut générer une sauvegarde régulière du Serveur SME qui sera lancée dans quelques minutes. Autrement, on peut utiliser la commande ci-dessous pour lancer immédiatement une sauvegarde.

Icone-SeTirerDembarrasAPT.png  Il faut que les sauvegardes soient activées pour utiliser cette commande.

# /sbin/e-smith/do_backupwk

Icone-AsurveillerAPT-1.png  Comme on le voit ci-dessus, l'invite ne revient pas. Elle le fera seulement après la fin de do_backupwk.


Avec une autre session PuTTY, on peut vérifier si la sauvegarde est en exécution.

# ps aux  >  grep dar
root      3462  0.5  0.3 173520 12568 pts/0    S+   12:55   0:00 /usr/bin/perl -w /etc/e-smith/events/actions/workstation-backup-dar DailyBackup
root      3470 95.0  0.5 150428 22340 pts/0    RL+  12:55   0:18 /usr/bin/dar -Q -asecu --create /mnt/smb/mediawiki.micronator-101.org/full-20180712125545 -B /etc/dar/DailyBackup.dcf
root      3471  0.0  0.2 173520 10472 ?        Ss   12:55   0:00 /usr/bin/perl -w /etc/e-smith/events/actions/workstation-backup-dar DailyBackup
root      3496  0.0  0.0 103344   888 pts/1    S+   12:56   0:00 grep dar


Icone-SeTirerDembarrasAPT.png  Si on veut utiliser la même connexion et retrouver l'invite tout de suite après le lancement de la commande, on ajoute le caractère " & " (sans guillemets) à la fin de la ligne de commande pour une exécution en arrière-plan.

# /sbin/e-smith/do_backupwk &
 
 [1] 2360
#


On peut suivre la sauvegarde en utilisant l'utilitaire top.

# top -d 1
top - 12:57:10 up  1:11,  3 users,  load average: 0.83, 0.27, 0.09
Tasks: 219 total,   2 running, 217 sleeping,   0 stopped,   0 zombie
Cpu(s): 71.9%us, 28.1%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4054572k total,  3941868k used,   112704k free,   453012k buffers
Swap:  1675260k total,        0k used,  1675260k free,  1950548k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3470 root      20   0  234m 109m 2124 R 98.6  2.8   1:20.07 dar
 3499 root      20   0 15144 1336  948 R  1.0  0.0   0:00.20 top
    1 root      20   0 19352 1540 1228 S  0.0  0.0   0:00.49 init
...

Comme on le voit, DAR est très énergivore de temps CPU.


Après la sauvegarde, DAR met à jour le catalogue des sauvegardes.

# ps aux | grep dar_manager
root      3509 61.0  0.1 136360  7768 pts/0    RL+  12:58   0:00 /usr/bin/dar_manager -Q -B /mnt/smb/mediawiki.micronator-101.com/     -D 1
root      3511  0.0  0.0 103344   888 pts/1    S+   12:58   0:00 grep dar_manager


Vérification

SME-201.2-150-MediaWiki-MySQL57-A-1.png
  • - On vérifie le répertoire "Sauvegarde" sur le poste de travail.
    - DAR avait déjà créé le répertoire mediawiki.micronator-101.com dans ce répertoire.



SME-201.2-152-MediaWiki-MySQL57-C-1.png
SME-201.2-151-MediaWiki-MySQL57-B-1.png
  • On examine le répertoire D:\Sauvegarde\mediawiki.micronator-101.com.
  • On examine le sous-répertoire set1.



Récupération de la sauvegarde MySQL57

Pour vérifier que tout fonctionne correctement, on va récupérer le fichier MediaWikiBD.sql de la sauvegarde du Serveur SME.


Préparation

À la console du serveur, on se rend dans le répertoire de sauvegarde de la base de données MediaWikiBD.sql.

# cd /root/sauvegarde


On affiche le contenu.

# ls -ls
total 5736
5732 -rwx------ 1 root root 5868544 12 juil. 12:54 MediaWikiBD.sql
   4 -rwx------ 1 root root    1079 12 juil. 12:47 sauvegarde-MySQL57.sh


On renomme la sauvegarde actuelle pour pouvoir la conservée et la comparée avec celle récupérée.

# mv MediaWikiBD.sql MediaWikiBD.sql.original


On vérifie.

# ls -ls
total 5736
5732 -rwx------ 1 root root 5868544 12 juil. 12:54 MediaWikiBD.sql.original
   4 -rwx------ 1 root root    1079 12 juil. 12:47 sauvegarde-MySQL57.sh


Récupération

On se logue dans le gestionnaire du Serveur SME avec l'usager admin et le mot de passe de root: https://192.168.1.11/server-manager

SME-201.2-154-MediaWiki-MySQL57-E.png
SME-201.2-153-MediaWiki-MySQL57-D.png
  • Sauvegarde et restauration  >  Restauration sélective de fichier depuis un ordinateur distant  >  Exécuter.
  • - On choisit la sauvegarde.
    - On entre le nom du fichier à récupérer:
    MediaWikiBD.sql  >  Exécuter.



SME-201.2-156-MediaWiki-MySQL57-G.png
SME-201.2-155-MediaWiki-MySQL57-F.png
  • On sélectionne le fichier à récupérer  >  Exécuter.
  • Le fichier contenu dans la sauvegarde habituelle du Serveur SME a été récupéré et déposé à son emplacement original.



On vérifie.

# ls -ls
total 11468
5732 -rwx------ 1 root root 5868544 12 juil. 12:54 MediaWikiBD.sql
5732 -rwx------ 1 root root 5868544 12 juil. 12:54 MediaWikiBD.sql.original
   4 -rwx------ 1 root root    1079 12 juil. 12:47 sauvegarde-MySQL57.sh

Le fichier récupéré est exactement le même que l'original avec les mêmes: propriétaire, groupe, grandeur et heure.


Restauration

Préparation

Pour vérifier la restauration, on se logue à notre Mediawiki et on modifie la page d'acceuil en enlevant un bout de ligne.

SME-201.2-157-MediaWiki-MySQL57-H.png
SME-201.2-158-MediaWiki-MySQL57-I.png


Restauration

On lance la restauration.

# /opt/rh/rh-mysql57/root/usr/bin/mysql --socket=/var/lib/mysql/mysql57.sock MediaWikiBD < /root/sauvegarde/MediaWikiBD.sql


Vérification

SME-201.2-159-MediaWiki-MySQL57-J.png
  • - On rafraîchit la page de notre fureteur et on vérifie la page d'acceuil.
    - La ligne supprimée est de retour.



La sauvegarde et la restauration fonctionnent parfaitement.


Particularités de ce document

Avertissement

Bien que nous utilisions ici un vocabulaire issu des sciences informatiques, nous ne prétendons nullement à la précision technique de tous nos propos dans ce domaine.


Notes au lecteur

  • Les captures d’écrans ne sont que des références.
  • Les informations écrites ont préséance sur celles retrouvées dans les captures d’écrans. Se référer aux différents tableaux lorsque ceux-ci sont présents.


Conventions

  • Toutes les commandes à entrer à la console du Serveur SME commencent habituellement avec l'invite # pour l'usager root ou $ pour un usager sans privilège particulier.
  • L'invite mysql> de la console MySQL est toujours présente.
  • La sortie de la commande est séparée de celle-ci par une ligne vide sans couleur de fond.
  • L'invite de retour n'est jamais présent pour la plupart des commandes.
  • Les affichages à surveiller sont en rouge, bleu, orange ou magenta.
# ping 192.168.1.149
192.168.1.149 is alive


Les liens de référence Internet sont en bleu de même que ceux intra-document mais, ces derniers débute par un " # ".

Icone-SeTirerDembarrasAPT.png  Manipulation, truc ou ruse pour se tirer d’embarras.

Icone-AstuceAPT.png  Une recommandation ou astuce.

Icone-NoteAPT.png  Une note.

Icone-AsurveillerAPT.png  Une étape, note ou procédure à surveiller.

Icone-DangerAPT.png  Danger pour la sécurité du système.

IconePlusieursLignesAPT.png  Indique que la commande est sur une seule ligne. Pour ce document en PDF, il faudra copier la commande entière dans un éditeur de texte ASCII tel que NotePad++ et la mettre sur une seule ligne avant de la copier à la console.

Une chaîne de caractères en magenta indique qu’il faut remplacer cette chaîne par vos propres paramètres.

Commande à exécuter si ce n'est déjà fait.
Commande indiquée à titre d'information seulement.



Composants du Cours SME-101

Cours-SME-101-000-DiagParIcone-A-5-APT.png

Cours SME-101

Après avoir suivi le cours SME-101, l'Étudiant possédera un site de Commerce en ligne fiable et hautement sécuritaire.


De plus, il pourra utiliser un clone de son site, sur un Serveur SME virtuel sur sa station de travail, pour tester de nouvelles extensions et applications sans compromettre la sécurité ou l'intégrité de son site en ligne.


Icone-NoteAPT.png Tous les logiciels nécessaires sont du domaine public ou LIBRE sous licence GPL; ils ne coûtent pas un sou. Le seul achat nécessaire est l'obtention d'un nom de domaine FQDN au prix initial de $15 CAD et son renouvellement annuel d'environ $30 CAD.




Documentation

Se voulant une base solide pour la création d'un site de Commerce en ligne, le cours SME-101 comprend plusieurs cahiers :

Cours-SME-101-024-Tux-APT.png





Cours-SME-101-023-LogicielsPosteDeTravail-APT.png







Cours-SME-101-026-ServeurSME-APT.png
  • Cahier-02: Description du parcours des paquets IP du Serveur SME vers l'Internet, création de la machine virtuelle, installation/configuration du serveur Linux SME et enfin, sauvegarde/restauration de ce dernier, SME-101.02 Serveur SME.
  • Cahier-03: Abonnement à un FAI, installation et configuration d'un modem ADSL/VDSL, création d'un domaine chez un fournisseur de Service DNS dynamique avec installation d'un script pour sa mise à jour et enfin la marche à suivre pour l'obtention et la configuration d'un domaine FQDN[3], SME-101.03 ADSL/VDSL, DDNS et Domaine FQDN.
  • Cahier-04: Installation d'un certificat SSL de l'autorité de certification Let's Encrypt et script de mise à jour, SME-101.04 Certificat Let's Encrypt.




Cours-SME-101-027-CommerceEnLigne-APT.png
  • Cahier-05A: Installation et configuration de WordPress, SME-101.05A WordPress.
  • Cahier-05B: Installation et configuration de l'extension de sécurité Wordfence, SME-101.05B Wordfence.
  • Cahier-06: Installation et configuration de l'extension de vente en ligne WooCommerce, création de comptes chez Stripe et PayPal pour les paiements en ligne, SME-101.06 WooCommerce.




Cours-SME-101-028-Outils-APT.png




    

SME-201.01-002-RectangleBlanc-650x40-APT.png



Cours SME-201



SME-201.01-001-Logo-Proxmox.png
   * Cahier-01: Proxmox, SME-201.01: Proxmox-5.2.1.


SME-201.02-000-Logo-MediaWiki-APT.png
   * Cahier-02: MediaWiki, SME-201.02 MediaWiki-1.31.1.


SME-201.03-000-LogoDolibarr-APT-341x87.png
   * Cahier-03: Dolibarr   (À venir).


SME-201.04-000-Logo osTicket-APT.png
   * Cahier-04: OsTicket, SME-201.04: osTicket-1.10.4.



Michel-André          


caption  Victoire totale, hissons la bannière de la victoire.


  1. Connecteur logiciel: Mécanisme logiciel de communication entre processus informatiques, souvent utilisé entre une application et un réseau. Référence: http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=26537991.
  2. LTS: Une version à support long '(LTS)' sera créée tous les deux ans. Il y aura un recouvrement d’un an entre les périodes de maintenance des LTS. Par exemple, la version 1.23 était maintenue jusqu’à mai 2017 ; la version 1.27 a été publiée un an avant afin d’avoir un an pour faire la transition d’une version LTS à l’autre. Référence: https://www.mediawiki.org/wiki/Version_lifecycle/fr.
  3. FQDN: Dans le DNS, un Fully Qualified Domain Name (FQDN, ou nom de domaine complètement qualifié) est un nom de domaine qui révèle la position absolue d'un nœud dans l'arborescence DNS en indiquant tous les domaines de niveau supérieur jusqu'à la racine. On parle également de domaine absolu, par opposition aux domaines relatifs. Par convention, le FQDN est ponctué par un point final.
    Référence: https://fr.wikipedia.org/wiki/Fully_qualified_domain_name.