Difference between revisions of "SME-201.02 MediaWiki-1.31.1"
Michelandre (talk | contribs) (RC-0.0.1 // 2018-11-20 @ 21h58 HNE // Michel-André) |
(No difference)
|
Latest revision as of 03:59, 1 December 2018
|
Description générale
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.
- Conventions: #Particularités de ce document.
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
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.
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.
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
- - 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
- On s'assure que l'usager michelandre existe.
Messagerie électronique
- 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.
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
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.
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.
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
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.
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.
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
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
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
- On se logue dans le gestionnaire du serveur: https://www.micronator-101.com/server-manager.
- - Configuration > Versions de PHP-SCL.
- Version de PHP-mod.
- 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
Nous allons ajuster: MemoryLimit (256M) > PostMaxSize (52M) > UploadMaxFilesize (50M).
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
- 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
Comme on le voit ci-dessus, les grandeurs maximales sont maintenant de: MemoryLimit
(256M) > PostMaxSize
(52M) > UploadMaxFilesize
(50M).
Paramètres de php.ini
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
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.
Pour modifier la valeur d'un paramètre de façon permanente, il faut utiliser un gabarit personnalisé.
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é
- - 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.
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.
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
.
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
- - Le serveur réamorce et va assembler tous les fragments, incluant les notres, de tous les gabarits.
- 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.
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
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.
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.
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
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
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>
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'; |
Cette façon de faire est "obsolète".
On affiche l'avertissement.
mysql> SHOW WARNINGS; |
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>
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>
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
- 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.
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
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.
• 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.
• Si ce répertoire n'existe pas, certains CMS pourraient afficher le message suivant:
"Le fichier que vous voulez téléverser semble vide. |
• 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
.htacces
s (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
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.
- - À 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
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
- Au paragraphe #Activation de la version PHP-7.1 pour les i-bays, nous avons déjà choisi PHP-7.1 pour tout le Serveur SME.
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
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
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 ..
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.
- On clique set up the wiki.
- On choisit la langue du wiki > Continuer.
- L’environnement a été vérifié. Vous pouvez installer MediaWiki. > Continuer →.
- - 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 →.
- On prend les défauts > Continuer →.
- On entre le nom désiré pour notre wiki.
- - 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.
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.
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.
- On choisit le profil des droits d'utilisateurs.
- On choisit notre licence.
- - On choisit admin@192.168.1.11 pour les retours de courriels.
- Au choix, on active les notifications. - On choisit les habillages.
- 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é.
- - On choisit de ne pas utiliser de mise en cache.
- Continuer →. - Continuer →.
- Continuer →.
- On sauvegarde le fichier de configuration > OK.
Téléversement du fichier de configuration
- 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
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
- On retourne à l'écran d'installation et on clique accéder à votre wiki.
- Se connecter.
- On se logue.
- Victoire totale, notre site est fonctionnel.
Configuration
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.
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é.
- Onglet Informations personnelles > cadre "Options des courriels" > cliquez Confirmez votre adresse de courriel.
- Envoyer un code de confirmation.
- MediaWiki affiche que le courriel de confirmation a été envoyé.
- Dans le courriel qu'on reçoit, on clique le lien de confirmation.
- 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.
On se logue dans le gestionnaire du serveur: http://FQDN_ou_adresse_IP/server-manager > Sécurité > Services proxy.
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.
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). |
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.
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.
Importation du fichier de notre logo
- Importer un fichier.
- - Parcourir.
- On peut remarquer la Taille maximale du fichier: 50 Mio qu'on a configurée au paragraphe #Ajustement des paramètres PHP.
- - 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.
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
.
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";
- - On rafraîchit la page d'Accueil.
- Petite victoire, notre logo apparaît.
Importation de fichiers
Sur la page d'accueil, on clique Importer un fichier.
- - Remarquez les "Formats de fichiers autorisés", seulement:
png
,gif
,jpg
,jpeg
etwebp
.
• 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.
- 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
- Par défaut, les seuls formats de fichiers autorisés sont:
png
,gif
,jpg
,jpeg
etwebp
.
- • 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).
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.
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
... |
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' );
On vérifie dans MediaWiki.
- Accueil > Importer un fichier.
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
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
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
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:
- Installation et mise à niveau de la base de données.
- 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
- On recherche la page
Special:SemanticMediaWiki
pour effectuer les étapes de configuration.
- - À 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).
- 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).
Après quelques minutes, on rafraîchit la page pour voir la progression.
- 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".
Création d'une page classique
Nous allons créer une page classique que nous appellerons TestSMW
.
- 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]]
- On donne une description dans le "Résumé" et on clique Prévisualiser.
- Notre page apparaît et Semantic MediaWiki affiche les propriétés de la page.
- Après avoir enregistré la page, on peut aussi cliquer sur le lien Chercher les propriétés dans la barre d'outils à gauche.
- Cette vue affiche "Testproperty" avec la valeur
Dummypage
.
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.
- 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.
- On télécharge le fichier de l'extension dans un répertoire sur le poste de travail.
- 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
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".
En bas de la page, sous "Balises étendues de l'analyseur syntaxique", on voit aussi <charinsert>
.
É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.
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.
On est prêt à entrer le texte de cette page...
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
.
- 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.
Ce qui nous donne la page suivante.
N'ayez crainte, plus loin, lorsque nous aurons terminé, la page apparaîtra telle que ci-dessous.
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.)
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.
... |
É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.
- Cliquer Modifier.
- - On entre le texte suivant:
* Edittools[ResourceLoader|default]|Edittools.js |
- - On donne une description:
Le premier greffon |
- - On clique Enregistrer.
- Voilà, la page a été modifiée.
Vérification sur le site
- On clique Préférences > Gadgets.
•  Le gadget est bien là et il est coché car, on a spécifié l'optiondefault
, sur la ligne qu'on a insérée pour la pageMediaWiki:Gadgets-definition
. Cette option rend le gadget actif par défaut, pour tout le monde.
• L'onglet "Gadgets" n'apparaîtra dans la pageSpécial:Préférences
qu'après avoir édité la pageMediaWiki:Gadgets-definition
et il faut que cette dernière contienne au moins une ligne pour définir un gadget valide.
• Sur la pageSpé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
.
• 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.
• 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.
- Sur notre site, on cherche la page:
MediaWiki:Gadget-Edittools
- La page n'existe pas; on clique le nom de la page pour la créer.
- 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.
Page MediaWiki:Gadget-Edittools.js
- Sur notre site, on cherche la page:
MediaWiki:Gadget-Edittools.js
- Créer.
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
.
- 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]
.
- - On revient sur notre site, on colle le texte
[Ctl + V]
sur notre pageMediaWiki:Gadget-Edittools.js
.
- On entre une description: Pour le greffon Edittools.
- Enregistrer.
Vérification finale
- - 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.
Si les icônes n'apparaissent pas, rafraîchir la page du navigateur.
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.
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.
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
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).
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"
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".
On clique Afficher l'historique.
On peut sélectionner une version et la masquer en cliquant Afficher/masquer les versions sélectionnées.
On sélectionne une version et on clique Afficher/masquer les versions sélectionnées.
Cocher les restrictions de visibilité qu'on veut masquer, donner une raison et Appliquer à la révision sélectionnée.
On confirme en cliquant Appliquer à la révision sélectionné.
Contrairement à ce qui est indiqué sur cette page, les informations ne sont pas supprimées mais, simplement cachées à la vue des usagers.
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.
Entrée dans le journal
- 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).
Masquer plusieurs révisions
Si on sélectionne plus d'une révisions...
... une page un peu plus complexe s'affichera.
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) | ...
... |
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
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
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.
- Rechercher
AideRF232
. - Cliquer AideDeRF232 pour créer la page.
Faire une liste à puces (*) de liens d'aide.
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]
- Ce qui donnera la page ci-contre.
On clique quelques liens pour vérifier qu'ils fonctionnent correctement.
- - Pour éditer le menu, il faut rechercher la page en incluant son espace de noms:
MediaWiki:Sidebar
.
- La pageMediaWiki:Sidebar
apparaît; pour l'éditer, on clique Modifier.
- - On ajoute la nouvelle ligne au menu dans le format:
Nom-de-la-page|Titre du menu
. (Ne pas oublier "|").
* navigation |
- Prévisualiser > Enregistrer.
- La nouvelle ligne est ajoutée au menu principal.
- Lorsqu'on clique Aide pour RF-232, la page des liens d'aide apparaît.
Au lieu d'ajouter une ligne, on aurait pu ajouter un nouveau bloc au menu principal.
- - On recherche la page
MediaWiki:Sidebar
et on la modifie tel que ci-dessous.
* navigation |
- 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
.
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").
• 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
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
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
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
Ci-dessus, seules des mises à jour pour PHP54/55/56 étaient disponibles et aucune pour PHP70/71.
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.
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 |
Signalisation des changements
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.
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.
- 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.
- - "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.
- 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.
- - Des mises à jour pour PHP71 et MySQL57 sont disponibles.
- Installer les mises à jour sélectionnées. - Reconfigurer.
- - 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.
- 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
- 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
.
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
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
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.
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
- On vidange l'historique de notre navigateur.
- Effacer maintenant.
- 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.
- Domaines > Modifier.
- - i-bay = MediaWiki.
- Serveurs DNS du domaine = Résolu localement
- Modifier.
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.
- 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.
• Il n'est plus nécessaire d'utiliser le fichier.htaccess
dans l'i-bay Primary.
Répertoires spéciaux à sauvegarder
Référence: Adding/Excluding Directories and Files from the backup list.
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.
Contrairement à ce qui est décrit dans la Contrib, il faut aussi utiliser --go-into
pour les fichiers.
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
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
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.
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
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 ~]#
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 & |
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 ...
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
- - On vérifie le répertoire "Sauvegarde" sur le poste de travail.
- DAR a créé le répertoiremediawiki.micronator-101.com
dans ce répertoire.
- On examine le répertoire
D:\Sauvegarde\mediawiki.micronator-101.com
. - On examine le sous-répertoire
set1
.
Sauvegarde/restauration MySQL57
Les exemples de ce chapitre sont ceux de la version 0.2.0 / 2018-07-11 de ce document.
Description
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
Ajuster le nom de la BD: NOM_BD_WIKI=MediaWikiBD.
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
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
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.
... |
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.
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
• L'heure peut être choisie à votre entière discrétion.
• 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
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 ]
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.
Il faut que les sauvegardes soient activées pour utiliser cette commande.
# /sbin/e-smith/do_backupwk
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
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 & |
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
- - On vérifie le répertoire "Sauvegarde" sur le poste de travail.
- DAR avait déjà créé le répertoiremediawiki.micronator-101.com
dans ce répertoire.
- 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
- 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.
- 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.
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
- - On rafraîchit la page de notre fureteur et on vérifie la page d'acceuil.
- La ligne supprimée est de retour.
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 " # ".
Manipulation, truc ou ruse pour se tirer d’embarras.
Une étape, note ou procédure à surveiller.
Danger pour la sécurité du système.
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. |
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.
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 :
- Cahier-00: "SME-101.00 Linux de base". Les bases de Linux, SME-101.00 Linux de base.
- Cahier-01: Installation et configuration des logiciels prérequis sur le poste de travail de l'Étudiant de même que le téléchargement des fichiers qui seront installés sur le Serveur SME virtuel, https://wiki.contribs.org/SME-101.01_Logiciels_de_la_station_de_travail SME-101.01 Logiciels de la station de travail].
- 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.
- 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.
- Cahier-07: Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator, SME-101.07 Duplicator.
- Cahier-08: Serveur mandataire inversé, SME-101.08 Serveur mandataire inversé.
- Cahier-09: Supplément: SME & BackupPC-4.2, SME-101.09: Supplément: SME & BackupPC-4.2.
- Cahier-10: Supplément: Fail2ban, SME-101.09: SME-101.10: Supplément: Fail2ban.
Cours SME-201
* Cahier-01: Proxmox, SME-201.01: Proxmox-5.2.1. |
* Cahier-02: MediaWiki, SME-201.02 MediaWiki-1.31.1. |
* Cahier-03: Dolibarr (À venir). |
* Cahier-04: OsTicket, SME-201.04: osTicket-1.10.4. |
Michel-André
Victoire totale, hissons la bannière de la victoire.
- ↑ 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.
- ↑ 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.
- ↑ 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.