Changes

Jump to navigation Jump to search
RC-0.0.1 // 2018-11-20 @ 21h58 HNE // Michel-André
<!-- ########################################################################### -->
{| style="float: left; margin-right:20px;margin-bottom:10px;"
|-
| style="vertical-align: top;" |
<div style="float:right">__TOC__</div>
|}
<!-- ########################################################################### -->== Description générale ==
<br>
<!-- ########################################################################### -->

{| style="width: 40%; background-color:#ffffff;" align="center"
|- style="vertical-align:middle;"
|[[Image:SME-201.2-001-MediaWiki-LogoSME.png|center|middle|75px]]
||[[Image:SME-201.2-002-MediaWiki-LogoMediaWiki.png|center|middle|100px]]
||[[Image:SME-201.2-003-MediaWiki-LogoSMW.png|center|middle|75px]]
|}



<!-- ########################################################################### -->

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: [https://wiki.contribs.org/SME-101.02_Serveur_SME SME-101.02 Serveur SME].

[[Image:SME-201.2-004-MediaWiki-diag.png|top|center|600px]]

* ''Conventions'': [[#Particularités de ce document]].


=== MediaWiki ===

''Référence'': [https://fr.wikipedia.org/wiki/MediaWiki 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 ===

[[Image:SME-201.2-005-MediaWiki-diag-reseau.png|top|center|600px]]

=== Document de référence ===

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


=== Serveur SME-9.2 ===

<span style="color:red">dorgee.</span>micronator-101.com

Serveur passerelle pour les connexions à l'Internet.

Serveur DHCP pour tout le réseau.


<span style="color:red">mediawiki.</span>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.

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Si cette i-bay est vide, voir le chapitre: [[#Lien de redirection dans l'i-bay Primary]].


'''''i-bay <span style="color:DarkMagenta">wiki</span>'''''

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 '''<span style="color:blue">Aide</span><span style="color:red">:'''</span>'''Espace de noms''' appartient à l’espace de noms '''<span style="color:blue">Aide</span><span style="color:red">:'''</span>. 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 [http://fr.wikipedia.org/wiki/Espace_de_noms Espace de noms].

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


=== Éditeur de texte ===

Ne modifiez pas <code>LocalSettings.php</code> 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: [https://wiki.contribs.org/SME-101.01_Logiciels_de_la_station_de_travail#Notepad.2B.2B NotePad++], pour l'installation et la configuration de cet éditeur.


'''''Description'''''

''Référence'': [https://notepad-plus-plus.org/fr/ 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/ https://notepad-plus-plus.org/fr/].


'''''Documentation'''''

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

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

<br clear=all>
== Prérequis ==

=== Installation d'un Serveur SME ===

Voir le Cahier [https://wiki.contribs.org/SME-101.02_Serveur_SME 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 ''[https://wiki.contribs.org/SME-101.02_Serveur_SME#Mise_.C3.A0_jour Mise à jour]''.


=== Certificat Let's Encrypt ===

On peut installer un certificat de sécurité SSL de Let's Encrypt; voir le Cahier [https://wiki.contribs.org/SME-101.04_Certificat_Let%27s_Encrypt SME-101.04: Certificat Let's Encrypt].

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;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 ''[https://wiki.contribs.org/Odoo-11_%26_serveur_de_test/dev#Obtention_d.27un_certificat_pour_un_serveur_local Obtention d'un certificat pour un serveur local]''.


=== Accès à distance ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-006-MediaWiki-acces-distance.png|815px|border]]
|}
* <span style="font-family:Courier New;">- On vérifie la configuration de l'accès à distance.<br>- Si ces paramètres ne sont pas tels qu'indiqués ci-contre, on les modifie dans le gestionnaire Server Manager.</span>
<br clear=all>

<!-- ########################################################################### -->
=== Usager michelandre ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-007-MediaWiki-usager.png|815px|border]]
|}
* <span style="font-family:Courier New;">On s'assure que l'usager <span style="color:DarkMagenta">michelandre</span> existe.</span>
<br clear=all>

<!-- ########################################################################### -->
=== Messagerie électronique ===

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-008-MediaWiki-courriel.png|815px|border]]
|}
* <span style="font-family:Courier New;">Si ces paramètres ne sont pas tels qu'indiqués ci-contre, on les modifie dans le gestionnaire.</span>
<br clear=all>

<!-- ########################################################################### -->
=== 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
<span style="color:red">php-5.3.3-49</span>.el6.x86_64
php-mysql-5.3.3-49.el6.x86_64
...

Comme on le voit, notre version <span style="color:red">php-5.3.3-49</span> 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 https://wiki.contribs.org/PHP_Software_Collections].

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;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'''''

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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 <code>/opt</code>, 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 <code>remi-safe</code> et <code>epel</code> dans la BD de <code>yum</code> pour pouvoir installer la Collection PHP.


<span style="color:red">'''†'''</span> '''Référentiel remi-safe'''

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

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

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


Vérification.
# db yum_repositories show remi-safe

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


<span style="color:red">'''††'''</span> Référentiel epel

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

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

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


Vérification.
# db yum_repositories show epel

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


On signale les changements.
# signal-event yum-modify


'''Installation de la Contrib'''

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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&nbsp;: 45 M
Taille d'installation&nbsp;: 124 M
...
Installé:
smeserver-php-scl.noarch 0:0.4-17.el6.sme

Dépendance(s) installée(s)&nbsp;:
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é&nbsp;!

<nowiki>==============================================================</nowiki>
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.
<nowiki>==============================================================</nowiki>


'''PHP71 par défaut après une connexion'''

''Référence'': [http://appdev.oit.umn.edu/2015/02/11/scl/ 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.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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 -rw<span style="color:red">x</span>r-<span style="color:red">x</span>r-<span style="color:red">x</span> 1 root root 215 25 nov. 04:49 /etc/profile.d/activer-php71.sh


'''Si vous ne souhaitez pas redémarrer votre serveur'''

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki># signal-event php-update; config set UnsavedChanges no</nowiki>
|}


'''Sinon...'''

On signale les changements et on réamorce.
# signal-event post-upgrade ; signal-event reboot


<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-009-MediaWiki-amorcage-1.png|600px|border]]
|}
* <span style="font-family:Courier New;">[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;Un réamorçage avec une mise à jour de la configuration peut prendre quelque temps. Soyons patients!</span>
<br clear=all>

<!-- ########################################################################### -->

'''Vérification'''

On se logue et on vérifie l'installation.
# rpm -qa<span style="color:red"> &nbsp;>&nbsp; </span>grep scl-

scl-utils-20120927-29.el6_9.x86_64
<span style="color:red">smeserver-php-scl-0.4-17</span>.el6.sme.noarch


Collections installées.
# scl -l

php54
php55
php56
php70
<span style="color:red">php71</span>


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

/opt/remi/<span style="color:red">php71</span>/root/usr/bin/php


Quelle est sa version?
# php --version

<span style="color:red">PHP 7.1.23</span> (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'''

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Pour la mise à jour de la Contrib PHP SCL, voir le chapitre [[#Mise à jour des Collections Red Hat]].


<span id="Activation de la version PHP-7.1 pour les i-bays"></span>
'''Activation de la version PHP-7.1 pour les i-bays'''
<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-011-MediaWiki-php-b.png|550px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-010-MediaWiki-php-a.png|250px|border]]
|}
* <span style="font-family:Courier New;">On se logue dans le gestionnaire du serveur: [https://www.micronator-101.com/server-manager https://www.<span style="color:DarkMagenta">micronator-101.com</span>/server-manager].</span>
* <span style="font-family:Courier New;">- ''Configuration''<span style="color:red"> &nbsp;>&nbsp; </span>''Versions de PHP-SCL''.<br>- ''Version de PHP-mod''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-013-MediaWiki-php-d.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-012-MediaWiki-php-c.png|550px|border]]
|}
* <span style="font-family:Courier New;"><span style="font-family:Courier New;">On choisit la version la plus récente, c.-à-d. ''PHP71''<span style="color:red"> &nbsp;>&nbsp; </span>''Enregistrer''.</span></span>
* <span style="font-family:Courier New;">On s'assure du succès de l'opération.</span>
<br clear=all>

<!-- ########################################################################### -->

<span id="Ajustement des paramètres PHP"></span>
'''Ajustement des paramètres PHP'''

Les valeurs de certains paramètres de PHP ne sont pas suffisants pour certaines extensions. Ces paramètres sont: <code>MemoryLimit</code>, <code>PostMaxSize</code> et <code>UploadMaxFilesize</code>. Il faut les ajuster.
# config show php71

php71=configuration
AllowUrlFopen=Off
MaxExecutionTime=30
MaxFileUpload=20
MaxInputTime=60
<span style="color:red">MemoryLimit</span><nowiki>=128M</nowiki>
PhpModule=enabled
<span style="color:red">PostMaxSize</span>=20M
<span style="color:red">UploadMaxFilesize</span>=10M


[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Nous allons ajuster: MemoryLimit ''(<span style="color:DarkMagenta">256M</span>)'' > PostMaxSize ''(<span style="color:DarkMagenta">52M</span>)'' > UploadMaxFilesize ''(<span style="color:DarkMagenta">50M</span>)''.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Il faut obligatoirement que le paramètre <code>PostMaxSize</code> soit plus grand que celui de <code>UploadMaxFilesize</code>. Si on modifie l'un, il faut vérifier l'autre pour que la correspondance des grandeurs soit respectée.


'''''<span style="color:DarkGreen">MemoryLimit</span>'''''

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 <code>MemoryLimit</code> 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 <code>MemoryLimit</code> pour PHP-7.1.
# config setprop php71 MemoryLimit <span style="color:DarkMagenta">256M</span>


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-014-MediaWiki-php-e.png|600px|border]]
|}
* <span style="font-family:Courier New;">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 <code>UploadMaxFilesize</code> de PHP.</span>
<br clear=all>

<!-- ########################################################################### -->

<span id="UploadMaxFilesize"></span>
'''''<span style="color:DarkGreen">UploadMaxFilesize</span>'''''
On ajuste le paramètre <code>UploadMaxFilesize</code> pour PHP-7.1.
# config setprop php71 UploadMaxFilesize <span style="color:DarkMagenta">50M</span>


'''''<span style="color:DarkGreen">PostMaxSize</span>'''''

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

Le paramètre <code>PostMaxSize</code> 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 à <code>UploadMaxFilesize</code>.

On ajuste le paramètre <code>PostMaxSize</code> pour PHP-7.1.
# config setprop php71 PostMaxSize <span style="color:DarkMagenta">52M</span>


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
<span style="color:red">MemoryLimit</span>=<span style="color:DarkMagenta">256M</span>
PhpModule=disabled
<span style="color:red">PostMaxSize</span>=<span style="color:DarkMagenta">52M</span>
<span style="color:red">UploadMaxFilesize</span>=<span style="color:DarkMagenta">50M</span>

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Comme on le voit ci-dessus, les grandeurs maximales sont maintenant de: <code>MemoryLimit</code> ''(<span style="color:DarkMagenta">256M</span>)'' > <code>PostMaxSize</code> ''(<span style="color:DarkMagenta">52M</span>)'' > <code>UploadMaxFilesize</code> ''(<span style="color:DarkMagenta">50M</span>)''.


=== Paramètres de php.ini ===

<center>'''Fragments, paramètres et variables'''</center>

<center>
{| style="border-spacing:0;"
| style="border-top:0.05pt solid #999999;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| Fragment ''(fichier)''
| style="border-top:0.05pt solid #999999;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| <span style="color:red">20</span>ResourceLimits
| style="border-top:0.05pt solid #999999;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| <span style="color:red">60</span>FileUploads
| style="border:0.05pt solid #999999;padding:0.0382in;"| <span style="color:red">40</span>DataHandling

|-
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| Nom du paramètre
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| memory_limit
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| upload_max_filesize
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:0.05pt solid #999999;padding:0.0382in;"| post_max_size

|-
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| Nom de la valeur ''(variable)''
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| MemoryLimit
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| UploadMaxFilesize
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:0.05pt solid #999999;padding:0.0382in;"| PostMaxSize

|-
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| Valeur initiale
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| 32M
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| 10M
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:0.05pt solid #999999;padding:0.0382in;"| 20M

|-
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| Valeur finale
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| <span style="color:DarkMagenta">256M</span>
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:none;padding:0.0382in;"| <span style="color:DarkMagenta">50M</span>
| style="border-top:none;border-bottom:0.05pt solid #999999;border-left:0.05pt solid #999999;border-right:0.05pt solid #999999;padding:0.0382in;"| <span style="color:DarkMagenta">52M</span>

|}
</center>


'''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 <span style="color:red">32M</span>.

Dans le fichier <code>/etc/php.ini</code>, il existe déjà un paramètre <code>memory_limit</code>.
# cat /etc/php.ini | grep -i memory_limit

memory_limit = <span style="color:red">32M</span>

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


'''''Affichage des fragments du gabarit standard de <code>php.ini</code>'''''

Les fragments du gabarit standard de <code>php.ini</code> sont situés dans le répertoire <code>/etc/e-smith/templates/etc/php.ini/</code>.
# 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 <span style="color:red">20</span>ResourceLimits
4 -rw-r--r-- 1 root root 375 7 oct. 2008 30ErrorHandling
4 -rw-r--r-- 1 root root 558 29 juin 2015 <span style="color:red">40</span>DataHandling
4 -rw-r--r-- 1 root root 626 7 oct. 2008 50PathsDirectories
4 -rw-r--r-- 1 root root 155 7 oct. 2008 <span style="color:red">60</span>FileUploads
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


[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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: <code>/etc/php.ini</code>.

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 <code>memory_limit</code>.
# grep -i "memory_limit" /etc/e-smith/templates/etc/php.ini/*

/etc/e-smith/templates/etc/php.ini/<span style="color:red">20ResourceLimits</span>:memory_limit <nowiki>= {</nowiki>

Le fragment en question est le fichier <code>20ResourceLimits</code>.


On affiche ce fragment.
# cat /etc/e-smith/templates/etc/php.ini/20ResourceLimits

<nowiki>max_execution_time = {</nowiki>
<nowiki>my $et = $php{MaxExecutionTime} || "30";</nowiki>
<nowiki>$OUT .= "$et";</nowiki>
<nowiki>}</nowiki>
<nowiki>memory_limit = {</nowiki>
<nowiki>my $ml = $php{</nowiki><span style="color:red">MemoryLimit</span><nowiki>}</nowiki> <nowiki>||</nowiki> "<span style="color:red">32M</span>";
<nowiki>$OUT .= "$ml";</nowiki>
<nowiki>}</nowiki>

On voit que la valeur limite est présentement de <span style="color:red">32M</span>. Nous allons l'ajuster à <span style="color:DarkMagenta">256M</span>.


[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Pour modifier la valeur d'un paramètre de façon permanente, il faut utiliser un <ins>gabarit personnalisé</ins>.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Nous allons donc ajouter un gabarit personnalisé pour ajuster la variable <code>Memory_Limit</code>. 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é'''''

* - [[Image:Icone-NoteAPT.png|25px]]&nbsp;Les fragments d'un <u style="text-decoration-color: red;">gabarit personnalisé</u> ont préséance sur les fragments d'un <u>gabarit standard</u> lors de l'assemblage d'un fichier de configuration.<br>- Si le fragment personnalisé possède le <u style="text-decoration-color: red;">même nom</u> que celui d'un fragment standard, l'assemblage <u style="text-decoration-color: red;">remplacera</u> le fragment standard.
* Si le fragment personnalisé possède un <u style="text-decoration-color: red;">nom différent</u>, l'assemblage l'<u style="text-decoration-color: red;">ajoutera</u> 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 <u style="text-decoration-color: red;">gabarit personnalisé</u> pour <code>php.ini</code>.
# 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 <code>MemoryLimit</code> de ce fragment homonyme.
# cp /etc/e-smith/<span style="color:red">templates</span>/etc/php.ini/<span style="color:blue">20ResourceLimits</span> /etc/e-smith/<span style="color:red">templates-custom</span>/etc/php.ini/<span style="color:blue">20ResourceLimits</span>


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 <code>MemoryLimit</code> à l'aide de l'utilitaire <code>sed</code>.
# sed -i 's/"<span style="color:red">32M</span>";/"<span style="color:DarkMagenta">256M</span>";/' /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 = <nowiki>{</nowiki>
my $et = $php<nowiki>{</nowiki>MaxExecutionTime<nowiki>}</nowiki> || "30";
$OUT .= "$et";
}
memory_limit = <nowiki>{</nowiki>
my $ml = $php<nowiki>{</nowiki><span style="color:red">MemoryLimit</span><nowiki>}</nowiki> || "<span style="color:DarkMagenta">256M</span>";
$OUT .= "$ml";
}


'''UploadMaxFilesize'''

'''''Recherche du fragment'''''

On recherche le fragment qui contient le paramètre <code>upload_max_filesize</code>.
# grep -i "upload_max_filesize" /etc/e-smith/templates/etc/php.ini/*

/etc/e-smith/templates/etc/php.ini/<span style="color:red">60FileUploads</span>:upload_max_filesize <nowiki>= {</nowiki>

Le fragment en question est le fichier <code>60FileUploads</code>.


On affiche ce fragment.
# cat /etc/e-smith/templates/etc/php.ini/60FileUploads

file_uploads <nowiki>= On</nowiki>
upload_max_filesize <nowiki>= {</nowiki>
my $mf = $php{<span style="color:red">UploadMaxFilesize</span>} || "<span style="color:red">10M</span>";
$OUT .= "$mf";
}

On voit que la valeur limite est présentement de <span style="color:red">10M</span>. Nous allons l'ajuster à <span style="color:DarkMagenta">50M</span> pour pouvoir téléverser des fichiers plus volumineux.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Il faut obligatoirement que la valeur de <code>memory_limit</code> soit plus grande que celle de <code>upload_max_filesize</code>. Si on modifie l'une, il faut vérifier l'autre pour que la correspondance des grandeurs soit respectée.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;<code>memory_limit</code> ''(<span style="color:DarkMagenta">256M</span>)'' > <code>upload_max_filesize</code> ''(<span style="color:DarkMagenta">50M</span>)''.


On copie le fragment standard de la variable <code>UploadMaxFilesize</code> 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 <code>sed</code>.
# sed -i 's/<span style="color:red">10M</span>/<span style="color:DarkMagenta">50M</span>/' /etc/e-smith/templates-custom/etc/php.ini/60FileUploads


On vérifie.
# cat /etc/e-smith/templates-custom/etc/php.ini/60FileUploads

file_uploads <nowiki>= On</nowiki>
upload_max_filesize <nowiki>= {</nowiki>
my $mf = $php{<span style="color:red">UploadMaxFilesize</span>} || "<span style="color:DarkMagenta">50M</span>";
$OUT .= "$mf";
}


'''PostMaxSize'''

'''''Recherche du fragment'''''

On recherche le fragment qui contient le paramètre <code>post_max_size</code>.
# grep -i "post_max_size" /etc/e-smith/templates/etc/php.ini/*

/etc/e-smith/templates/etc/php.ini/<span style="color:red">40DataHandling</span>:post_max_size <nowiki>= {</nowiki>

Le fragment en question est le fichier <code>40DataHandling</code>.


On affiche ce fragment.
# cat /etc/e-smith/templates/etc/php.ini/40DataHandling

mysql.allow_persistent <nowiki>= On</nowiki>
variables_order <nowiki>= "EGPCS"</nowiki>
register_globals <nowiki>= Off</nowiki>
register_argc_argv <nowiki>= On</nowiki>
post_max_size <nowiki>= {</nowiki>
my $ms = $php{<span style="color:red">PostMaxSize</span>} || "<span style="color:red">20M</span>";
$OUT .= "$ms";
}
magic_quotes_gpc <nowiki>= Off</nowiki>
magic_quotes_runtime <nowiki>= Off</nowiki>
magic_quotes_sybase <nowiki>= Off</nowiki>
auto_prepend_file <nowiki>=</nowiki>
auto_append_file <nowiki>=</nowiki>
default_mimetype <nowiki>= "text/html"</nowiki>

On voit que la valeur limite est présentement de <span style="color:red">20M</span>. Nous allons l'ajuster à <span style="color:DarkMagenta">52M</span> pour qu'elle soit plus grande que celle de la valeur de <code>UploadMaxFilesize</code>.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Il faut obligatoirement que la valeur du paramètre <code>post_max_size</code> soit plus grand que celle du paramètre <code>upload_max_filesize</code>. 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 <code>php.ini</code> lors de la modification de la variable <code>MemoryLimit</code>. 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 <code>upload_max_filesize</code> 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 <code>sed</code>.
# sed -i 's/<span style="color:red">20M</span>/<span style="color:DarkMagenta">52M</span>/' /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{<span style="color:red">PostMaxSize</span>} || "<span style="color:DarkMagenta">52M</span>";


'''''Signalisation des modifications'''''

On signale les modifications et on réamorce pour que les fragments du gabarit personnalisé soient incorporés au fichier <code>php.ini</code> de manière permanente.
# signal-event post-upgrade ; signal-event reboot


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-015-MediaWiki-php-f-1.png|600px|border]]
|}
* <span style="font-family:Courier New;">- Le serveur réamorce et va assembler tous les fragments, incluant les notres, de tous les gabarits.<br>- [[Image:Icone-NoteAPT.png|25px]]&nbsp;Le choix des fragments des gabarits personnalisés ont préséance sur les fragments standards lors de l'assemblage des fichiers de configuration.</span>
<br clear=all>

<!-- ########################################################################### -->

'''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 <code>/etc/php.ini</code> afin de voir si les fragments personnalisés contenant nos changements y ont été incorporés.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Si PuTTY ne peut vous reloguer, on réamorce encore une fois le serveur virtuel. Ce "bogue" provient de la variable <code>AutoBlock</code> du démon <code>sshd</code>.
# cat /etc/php.ini | grep -i memory_limit

memory_limit = <span style="color:DarkMagenta">256M</span>


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

post_max_size = <span style="color:DarkMagenta">52M</span>


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

upload_max_filesize = <span style="color:DarkMagenta">50M</span>


[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Comme on le voit ci-dessus, les grandeurs maximales sont maintenant de <span style="color:DarkMagenta">256M</span>, <span style="color:DarkMagenta">52M</span> et <span style="color:DarkMagenta">50MB</span>. Les relations ont été respectées: <code>memory_limit</code> ''(<span style="color:DarkMagenta">256M</span>)'' > <code>post_max_size</code> ''(<span style="color:DarkMagenta">52M</span>)'' > <code>upload_max_filesize</code> ''(<span style="color:DarkMagenta">50MB</span>)''.


=== Collection MySQL57 ===

Version MySQL actuelle pour un Serveur SME-9.2.
# rpm -qa | grep mysql-server

mysql-server-<span style="color:red">5.1.73-8</span>.el6_8.x86_64

Comme on le voit, notre version <span style="color:red">5.1.73-8</span> de MySQL est légèrement vieillotte elle aussi.


'''MySQL57 Software Collections'''

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

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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 à <code>yum</code> 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.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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 '<nowiki>http://mirror.centos.org/centos/$releasever/sclo/$basearch/rh/</nowiki>' \
EnableGroups no \
Visible yes \
status disabled


On vérifie.
# db yum_repositories show centos-sclo-rh

centos-sclo-rh=repository
BaseURL=<nowiki>http://mirror.centos.org/centos/$releasever/sclo/$basearch/rh/</nowiki>
EnableGroups=no
Name=Centos - RH Software Collections
Visible=yes
status=disabled


On signale la modification.
# signal-event yum-modify


[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Attendre 20-30 secondes pour que <code>yum</code> 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&nbsp;: 32 M
Taille d'installation&nbsp;: 138 M
...
Installé:
smeserver-mysql57.noarch 0:2.0.0-11.el6.sme

Dépendance''(s)'' installée''(s)''&nbsp;:
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é&nbsp;!

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

<span style="color:red">signal-event post-upgrade; signal-event reboot</span>

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


'''''Signalisation des modifications'''''
# signal-event post-upgrade ; signal-event reboot


[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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<ref name="ftn2">'''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 http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=26537991].</ref> ''(socket)''. Voir le paragraphe [[#Création de la base de données pour MediaWiki]].


'''Avertissements'''

Lors du dernier <code>signal-event post-upgrade; signal-event reboot</code>, 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: <code>/opt/rh/rh-mysql57</code>.
# ls -ls /opt/rh/rh-mysql57/root/usr/bin/mysql

3784 -rwxr-xr-x 1 root root 3872720 16 nov. 2016 /opt/rh/<span style="color:red">rh-mysql57</span>/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 <span style="color:red">5.7.16</span>, for Linux (x86_64) using EditLine wrapper


On vérifie si le démon <code>mysql57-mysqld</code> est lancé.
# ps aux<span style="color:red"> &nbsp;>&nbsp; </span>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/<span style="color:red">mysql57-mysqld</span>
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 <code>mysql.sock</code>.
# ls -als /var/lib/mysql/mysql57.sock

0 srwxrwxrwx 1 mysql mysql 0 25 nov. 05:16 /var/lib/mysql/<span style="color:red">mysql57.sock</span>


<span id="Création de la base de données pour MediaWiki"></span>
=== Création de la base de données pour MediaWiki ===

On accède à <code>mysql57</code> 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: <span style="color:red">5.7.16</span> 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 <span style="color:DarkMagenta">MediaWikiBD</span>)''.

mysql> '''CREATE DATABASE <span style="color:DarkMagenta">MediaWikiBD</span>;'''

Query OK, 1 row affected ''(0.00 sec)''

mysql>


[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki> </nowiki>mysql> '''GRANT ALL ON <span style="color:DarkMagenta">MediaWikiBD</span>.* TO <span style="color:DarkMagenta">usager_MWBD</span>@localhost IDENTIFIED BY '<span style="color:DarkMagenta">mdp_MediaWikiBD</span>';'''<br>
<nowiki> </nowiki><br>
<nowiki> </nowiki>Query OK, 0 rows affected, <span style="color:red">1 warning</span> (0,00 sec)<br>
<nowiki> </nowiki><br>
<nowiki> </nowiki>mysql>
|}

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Cette façon de faire est "obsolète".


On affiche l'avertissement.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki> </nowiki>mysql> '''SHOW WARNINGS;'''<br>
<br>
<nowiki> </nowiki>...<br>
<nowiki> </nowiki>| <span style="color:red">Warning</span> | <span style="color:red">1287</span> | Using GRANT statement to modify existing user's properties other than privileges is <span style="color:red">deprecated</span> and will be removed in future release. Use ALTER USER statement for this operation. |<br>
<nowiki> </nowiki>...<br>
<nowiki> </nowiki>mysql>
|}


'''Nouvelle manière pour GRANT'''

* On crée l'usager <span style="color:DarkMagenta">usager_MWBD</span> et on lui donne le mot de passe <span style="color:DarkMagenta">mdp_MediaWikiBD</span>.

mysql> '''CREATE USER '<span style="color:DarkMagenta">usager_MWBD</span>'@'localhost' IDENTIFIED BY '<span style="color:DarkMagenta">mdp_MediaWikiBD</span>';'''

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

mysql>

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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 <u style="text-decoration-color: red;">après la création de l'utilisateur</u>, qu'on lui donne tous les droits sur la BD <span style="color:DarkMagenta">MediaWikiBD</span>.

mysql> '''GRANT ALL ON <span style="color:DarkMagenta">MediaWikiBD</span>.* TO '<span style="color:DarkMagenta">usager_MWBD</span>'@'localhost';'''


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

mysql>

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Notez le nom de la base de données: <span style="color:DarkMagenta">MediaWikiBD</span>, le nom de l'usager: <span style="color:DarkMagenta">usager_MWBD</span> et son mot de passe: <span style="color:DarkMagenta">mdp_MediaWikiBD</span>; ils serviront plus tard lors de l'installation de MediaWiki.


On doit exécuter la commande <code>FLUSH PRIVILEGES</code> 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 |
| <span style="color:DarkMagenta">MediaWikiBD</span> |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)

mysql>


On vérifie les privilèges de l'usager <span style="color:DarkMagenta">usager_MWBD</span>.

mysql> '''show grants for usager_MWBD@localhost;'''


+----------------------------------------------------------------------+
| Grants for usager_MWBD@localhost |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'usager_MWBD'@'localhost' |
| GRANT <span style="color:red">ALL PRIVILEGES</span> ON `<span style="color:DarkMagenta">MediaWikiBD</span>`.* TO '<span style="color:DarkMagenta">usager_MWBD</span>'@'localhost' |
+----------------------------------------------------------------------+
2 rows in set (0,00 sec)

mysql>


On quitte MySQL.

mysql> '''quit;'''


Bye
[<span style="color:red">root@mediawiki ~</span>]#


=== Installation de git ===

On installe <code>git</code> 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&nbsp;: 4.6 M
Taille d'installation&nbsp;: 15 M
...
Installé:
<span style="color:red">git.x86_64 0:1.7.1-9.el6_9</span>

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

Terminé&nbsp;!


=== 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 <code><span style="color:DarkMagenta">wiki</span></code>.


'''Création de l'i-bay <span style="color:DarkMagenta">wiki</span>'''

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-018-MediaWiki-ibay-c.png|350px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-017-MediaWiki-ibay-b-2.png|225px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-016-MediaWiki-ibay-a.png|250px|border]]
|}
* <span style="font-family:Courier New;">On se logue dans le gestionnaire Server Manager en allant à: [https://FQDN-ou-adresse-ip/server-manager https://<span style="color:red">FQDN-ou-adresse-ip</span>/server-manager].</span>
* <span style="font-family:Courier New;">On se logue obligatoirement avec <span style="color:red">''admin''</span><span style="color:red"> &nbsp;>&nbsp; </span>on entre le ''mot de passe'' utilisé lors de l'installation du Serveur SME<span style="color:red"> &nbsp;>&nbsp; </span>''Login''.</span>
* <span style="font-family:Courier New;">''I-bays''<span style="color:red"> &nbsp;>&nbsp; </span>''Ajouter une i-bay''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-020-MediaWiki-ibay-E.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em ;margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-017-MediaWiki-ibay-b-4.png|550px|border]]
|}
* <span style="font-family:Courier New;">- [[Image:Icone-NoteAPT.png|25px]]&nbsp;Ne pas utiliser de caractères accentués.<br>- Ajouter.</span>
* <span style="font-family:Courier New;">On s'assure du succès de l'opération.</span>
<br clear=all>

<!-- ########################################################################### -->

'''Fichier index.html'''

On se rend dans le répertoire racine de l'i-bay <span style="color:DarkMagenta">wiki</span>.
# cd /home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/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


[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;On supprime le fichier <code>index.html</code> car, il entrerait en conflit avec <code>index.php</code> de MediaWiki.
# rm index.html

rm&nbsp;: supprimer fichier «&nbsp;index.html&nbsp;»&nbsp;? <span style="color:red">o</span>

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 <span style="color:DarkMagenta">wiki</span> pour le téléchargement de fichiers par MediaWiki.

<span style="color:red">•</span> [[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Ce répertoire servira pour tous les programmes PHP installés dans l'i-bay <span style="color:DarkMagenta">wiki</span> et ses sous-répertoires, lorsque ceux-ci auront besoin d'un répertoire temporaire pour effectuer leurs téléchargements.

<span style="color:red">•</span> [[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Si ce répertoire n'existe pas, certains CMS pourraient afficher le message suivant:

<center>
{| class="wikitable" style="width: 50%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;text-align: left;"
|
"Le fichier que vous voulez téléverser semble vide.<br>Ceci peut être dû à une erreur dans le nom du fichier.<br>Veuillez vérifier que vous désirez vraiment téléverser ce fichier"
|}
</center>


<span style="color:red">•</span> 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 <span style="color:DarkMagenta">wiki</span> PHPBaseDir /home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>:/tmp


On signale le changement pour qu'il devienne permanent.
# signal-event ibay-modify <span style="color:DarkMagenta">wiki</span>


'''BD de comptes'''

On ajuste les propriétés de la BD de comptes pour l'i-bay <span style="color:DarkMagenta">wiki</span>.

* Permettre à Apache de lire les fichiers <code>.htacces</code>s ''(s'ils sont présents)'' de l'i-bay <span style="color:DarkMagenta">wiki</span> et de ses sous-répertoires.
# db accounts setprop <span style="color:DarkMagenta">wiki</span> AllowOverride all


* Permettre à Apache de suivre les <code>liens symboliques</code> des répertoires.
# db accounts setprop <span style="color:DarkMagenta">wiki</span> FollowSymLinks enabled


* Défendre à Apache d'afficher le contenu des répertoires.
# db accounts setprop <span style="color:DarkMagenta">wiki</span> Indexes disabled


On signale les modifications pour qu'elles deviennent permanentes.
# signal-event ibay-modify <span style="color:DarkMagenta">wiki</span>


On vérifie tous les paramètres de l'i-bay <span style="color:DarkMagenta">wiki</span>i.
# db accounts show <span style="color:DarkMagenta">wiki</span>

<span style="color:DarkMagenta">wiki</span>=ibay
<span style="color:red">AllowOverride=all</span>
CgiBin=enabled
<span style="color:red">FollowSymLinks=enabled</span>
Gid=5001
Group=admin
<span style="color:red">Indexes=disabled</span>
Name=MediaWiki
<span style="color:red">PHPBaseDir=/home/e-smith/files/ibays/wiki:/tmp</span>
PasswordSet=no
PublicAccess=global
SSL=enabled
Uid=5001
UserAccess=wr-admin-rd-group


<center><span style="font-size:120%">'''Tous les prérequis sont remplis, nous sommes prêt pour l'installation de MediaWiki.'''</span></center>


== 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 https://www.mediawiki.org/wiki/Download/fr].

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-021-MediaWiki-Installation-A.png|600px|border]]
|}
* <span style="font-family:Courier New;">- À la date d'aujourd'hui, c'est la version <span style="color:red">1.31.1</span> qui est la dernière version stable. C'est une LTS<ref name="ftn3">'''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 https://www.mediawiki.org/wiki/Version_lifecycle/fr].</ref> ''(Long Term Support)''.<br>- Les prérequis sont affichés.</span>
<br clear=all>

<!-- ########################################################################### -->

'''Vérification des version PHP et MySQL'''

'''''Version de PHP'''''

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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 <span style="color:red">7.1.23</span> (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'''''

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-022-MediaWiki-Installation-B.png|600px|border]]
|}
* <span style="font-family:Courier New;">Au paragraphe [[#Activation de la version PHP-7.1 pour les i-bays]], nous avons déjà choisi PHP-7.1 <u>pour tout le Serveur SME</u>.</span>
<br clear=all>

<!-- ########################################################################### -->


Au paragraphe [[#Ajustement des paramètres PHP]], nous avons spécifié les <u>paramètres spécifiques</u> pour PHP-7.1.
# config show <span style="color:red">php71</span>

php71=configuration
AllowUrlFopen=Off
MaxExecutionTime=30
MaxFileUpload=20
MaxInputTime=60
MemoryLimit=<span style="color:DarkMagenta">256M</span>
PhpModule=disabled
PostMaxSize=<span style="color:DarkMagenta">52M</span>
UploadMaxFilesize=<span style="color:DarkMagenta">50M</span>


'''''Version de MySQL'''''

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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 <span style="color:red">5.7.16</span>, for Linux (x86_64) using EditLine wrapper


[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Pour se connecter à MySQL-5.7, il faut spécifier le connecteur <code>/var/lib/mysql/mysql57.sock</code>.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki> </nowiki>/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 <span style="color:DarkMagenta">wiki</span>.

{| class="wikitable" style="width: 80%; background-color:#F0FFFF;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>#</nowiki> cd /home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/html/
|}


On vérifie.
# pwd

/home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/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 ..


<center><span style="font-size:120%">'''Nous sommes prêts pour le téléchargement.'''</span></center>


=== Téléchargement ===

''Référence'': [https://www.mediawiki.org/wiki/Download_from_Git/fr 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 <code>--depth=1</code> à la commande ci-dessus.

À la console du serveur, on entre la commande ci-dessous pour que <code>git</code> fasse le téléchargement. Ne pas oublier le "<span style="color:red">'''.'''</span>" à la fin de la commande.

git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git --branch REL<span style="color:red">1_31</span> --depth=1 <span style="color:red">'''.'''</span>

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), <span style="color:red">104.45 MiB</span> | 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' (<nowiki>https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTree</nowiki>) registered for path 'extensions/CategoryTree'
Submodule '<span style="color:red">extensions/Cite</span>' (<nowiki>https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite</nowiki>) registered for path 'extensions/Cite'
Submodule 'extensions/CiteThisPage' (<nowiki>https://gerrit.wikimedia.org/r/mediawiki/extensions/CiteThisPage</nowiki>) registered for path 'extensions/CiteThisPage'
Submodule 'extensions/CodeEditor'
...
Submodule path '<span style="color:red">skins/Vector</span>': 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 <span style="color:red">extensions</span>
4 -rw-r----- 1 admin www 95 25 nov. 06:55 FAQ
4 drwxr-s--- 8 admin www 4096 25 nov. 06:57 <span style="color:red">.git</span>
4 -rw-r----- 1 admin www 258 25 nov. 06:55 <span style="color:red">.gitattributes</span>
4 -rw-r----- 1 admin www 1041 25 nov. 06:55 <span style="color:red">.gitignore</span>
4 -rw-r----- 1 admin www 3962 25 nov. 06:55 <span style="color:red">.gitmodules</span>
4 -rw-r----- 1 admin www 97 25 nov. 06:55 <span style="color:red">.gitreview</span>
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 <span style="color:red">index.php</span>
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 http://FQDN_ou_adresse_ip/<span style="color:DarkMagenta">wiki</span>].

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-024-MediaWiki-Installation-D.png|550px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-023-MediaWiki-Installation-C.png|250px|border]]
|}
* <span style="font-family:Courier New;">On clique ''set up the wiki''.</span>
* <span style="font-family:Courier New;">On choisit la ''langue du wiki''<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-025-MediaWiki-Installation-E.png|815px|border]]
|}
* <span style="font-family:Courier New;"><span style="color:DarkGreen">L’environnement a été vérifié. Vous pouvez installer MediaWiki.</span><span style="color:red"> &nbsp;>&nbsp; </span>''Continuer'' →.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-027-MediaWiki-Installation-G.png|500px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-026-MediaWiki-Installation-F.png|300px|border]]
|}
* <span style="font-family:Courier New;">- On prend le défaut pour le type de base de donnée.<br>- "Nom d’hôte de la base de données:" On indique le chemin du connecteur logiciel de mysql57 qui est: <span style="color:red">localhost:/var/lib/mysql/mysql57.sock</span><br><br></span>
* <span style="font-family:Courier New;">- 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.<br>- On entre les paramètres utilisés au paragraphe [[#Création de la base de données pour MediaWiki]]:<br><span style="color:DarkMagenta">MediaWikiBD</span>, <span style="color:DarkMagenta">usager_MWBD</span> et <span style="color:DarkMagenta">mdp_MediaWikiBD</span><span style="color:red"> &nbsp;>&nbsp; </span>''Continuer'' →.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-029-MediaWiki-Installation-I.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-028-MediaWiki-Installation-H.png|400px|border]]
|}
* <span style="font-family:Courier New;">On prend les défauts<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer'' →.</span>
* <span style="font-family:Courier New;">On entre le ''nom désiré pour notre wiki''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-031-MediaWiki-Installation-K.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-030-MediaWiki-Installation-J.png|400px|border]]
|}
* <span style="font-family:Courier New;">- On entre le ''nom de l'administrateur'' de notre wiki et son ''mot de passe'' puis, on le ''confirme''.<br>- On entre l'adresse courriel de l'administrateur.</span>
* <span style="font-family:Courier New;">- Pour faciliter la configuration, ''cocher'' "Me poser davantage de questions."<br>- Continuer.</span>

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;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.

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;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 [https://wiki.contribs.org/Odoo-11_%26_serveur_de_test/dev#Obtention_d.27un_certificat_pour_un_serveur_local Obtention d'un certificat pour un serveur local].
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-033-MediaWiki-Installation-M.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-032-MediaWiki-Installation-L.png|400px|border]]
|}
* <span style="font-family:Courier New;"><span style="color:DarkMagenta">On choisit le profil des droits d'utilisateurs.</span></span>
* <span style="font-family:Courier New;"><span style="color:DarkMagenta">On choisit notre licence.</span></span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-035-MediaWiki-Installation-O.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-034-MediaWiki-Installation-N.png|400px|border]]
|}
* <span style="font-family:Courier New;">- On choisit admin@<span style="color:DarkMagenta">192.168.1.11</span> pour les retours de courriels.<br>- <span style="color:DarkMagenta">Au choix, on active les notifications.</span></span>
* <span style="font-family:Courier New;"><span style="color:DarkMagenta">On choisit les habillages.</span></span>
<br clear=all>

<!-- ########################################################################### -->

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-036-MediaWiki-Installation-Q.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-035-MediaWiki-Installation-P.png|400px|border]]
|}
* <span style="font-family:Courier New;"><span style="color:DarkMagenta">On choisit les extensions désirées.</span></span>
* <span style="font-family:Courier New;">- On coche ''Activer le téléchargement de fichiers''.<br>- Pour l'instant, le logo par défaut sera utilisé.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-038-MediaWiki-Installation-S.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-037-MediaWiki-Installation-R.png|400px|border]]
|}
* <span style="font-family:Courier New;">- On choisit de ne ''pas utiliser de mise en cache''.<br>- ''Continuer'' →.</span>
* <span style="font-family:Courier New;">''Continuer'' →.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-040-MediaWiki-Installation-U.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-039-MediaWiki-Installation-T.png|550px|border]]
|}
* <span style="font-family:Courier New;">''Continuer'' →.</span>
* <span style="font-family:Courier New;">On ''sauvegarde'' le fichier de configuration<span style="color:red"> &nbsp;>&nbsp; </span>''OK''.</span>
<br clear=all>

<!-- ########################################################################### -->

=== Téléversement du fichier de configuration ===

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-041-MediaWiki-Installation-V.png|600px|border]]
|}
* <span style="font-family:Courier New;">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.</span>
<br clear=all>

<!-- ########################################################################### -->
=== 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.

{| class="wikitable" style="width: 80%; background-color:#F0FFFF;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>#</nowiki> cd /home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/html/
|}


On vérifie.
# pwd

/home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/<span style="color:red">html</span>


On ajuste '''<u>R</u>'''écursivement le propriétaire des fichiers et répertoires de notre site.

Pour l'i-bay <span style="color:DarkMagenta">wiki</span> ce sera <code>admin:www</code>.
# chown -R admin:www * .*


On enlève '''<u>R</u>'''é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--<span style="color:red">---</span> 1 <span style="color:red">admin www</span> 4697 25 nov. 06:55 api.php
...
4 -rw-r--<span style="color:red">---</span> 1 <span style="color:red">admin www</span> 207 25 nov. 06:55 .eslintrc.json
...
8 -rw-r--<span style="color:red">---</span> 1 <span style="color:red">admin www</span> 5604 25 nov. 07:32 LocalSettings.php
...
4 -rw-r--<span style="color:red">---</span> 1 <span style="color:red">admin www</span> 125 25 nov. 06:55 .stylelintrc.json
...
4 drwxr-s<span style="color:red">---</span> 1 <span style="color:red">admin www</span> 4096 25 nov. 06:59 vendor


'''Répertoire images'''

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

# find /home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/html/images -type d -exec chmod g+ws {} \; 2>&1

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;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 drwxrw<span style="color:red">s</span>--- 2 admin www 4096 25 nov. 06:55 images/


=== Accès et login à MediaWiki ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-042-MediaWiki-Installation-W.png|815px|border]]
|}
* <span style="font-family:Courier New;">On retourne à l'écran d'installation et on clique ''accéder à votre wiki''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-044-MediaWiki-Installation-Y.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-043-MediaWiki-Installation-X.png|550px|border]]
|}
* <span style="font-family:Courier New;">''Se connecter''.</span>
* <span style="font-family:Courier New;">''On se logue''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-045-MediaWiki-Installation-Z.png|815px|border]]
|}
* <span style="font-family:Courier New;">Victoire totale, notre site est fonctionnel.</span>
<br clear=all>

<!-- ########################################################################### -->

== Configuration ==

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
| style="vertical-align: top;" |[[Image:SME-201.2-048-MediaWiki-Config-C.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em ;margin-right:0.5em;"
| style="vertical-align: top;" |[[Image:SME-201.2-047-MediaWiki-Config-B-1.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-046-MediaWiki-Config-A.png|260px|border]]
|}
=== Préparation ===

* <span style="font-family:Courier New;">- 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.<br>- On efface tout ce que notre fureteur ait pu retenir avant de se brancher.<br>&nbsp;</span>
* <span style="font-family:Courier New;">On donne l'adresse à FireFox afin de se connecter à notre wiki.<br>
* <span style="font-family:Courier New;">On se logue.</span></span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-049-MediaWiki-Config-D.png|815px|border]]
|}
=== Confirmation de l'adresse courriel ===


* <span style="font-family:Courier New;">''Préférences'' pour confirmer notre adresse courriel.</span></span>
::<span style="color:red">•&nbsp;</span><span style="font-family:Courier New;">L'adresse courriel est facultative mais, elle est nécessaire pour réinitialiser votre mot de passe si vous veniez à l'oublier.</span>
::<span style="color:red">•&nbsp;</span><span style="font-family:Courier New;">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é.</span>
<br clear=all>
<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-051-MediaWiki-Config-F.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-050-MediaWiki-Config-E.png|400px|border]]
|}
* <span style="font-family:Courier New;">Onglet ''Informations personnelles''<span style="color:red"> &nbsp;>&nbsp; </span>cadre "Options des courriels"<span style="color:red"> &nbsp;>&nbsp; </span>cliquez ''Confirmez votre adresse de courriel''.</span>
* <span style="font-family:Courier New;">''Envoyer un code de confirmation''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-053-MediaWiki-Config-H.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-052-MediaWiki-Config-G.png|400px|border]]
|}
* <span style="font-family:Courier New;">MediaWiki affiche que le courriel de confirmation a été envoyé.</span>
* <span style="font-family:Courier New;">Dans le courriel qu'on reçoit, on clique le ''lien de confirmation''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-055-MediaWiki-Config-J.png|500px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-054-MediaWiki-Config-I.png|300px|border]]
|}
* <span style="font-family:Courier New;">MediaWiki affiche que notre adresse courriel a été confirmée.</span>
* <span style="font-family:Courier New;">Dans ''Préférences'', onglet ''Informations personnelles''<span style="color:red"> &nbsp;>&nbsp; </span>cadre "Options des courriels"<span style="color:red"> &nbsp;>&nbsp; </span>une ligne indique que notre adresse courriel a été confirmée.</span>
<br clear=all>

<!-- ########################################################################### -->
=== Services Proxy ===

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

<!-- ########################################################################### -->
<!-- ########################################################################### -->
{| style="width: 100%; background-color:#F0FFFF;margin-right:40px;"
|- style="vertical-align:top;font-family: Courier New;"
|
<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-056-MediaWiki-Config-K.png|600px|border]]
|}
* À faire, si on <u>n'a pas suivi</u> la documentation d'installation.

On se logue dans le gestionnaire du serveur: [http://FQDN_ou_adresse_IP/server-manager http://<span style="color:DarkMagenta">FQDN_ou_adresse_IP</span>/server-manager]<span style="color:red"> &nbsp;>&nbsp; </span>''Sécurité''<span style="color:red"> &nbsp;>&nbsp; </span>''Services proxy''.</span>


<span style="color:red">•&nbsp;</span>'''État du service Proxy HTTP'''

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

Votre serveur intègre un Proxy transparent et un cache pour le trafic HTTP. Il est activé par défaut sauf, dans le cas où le serveur est configuré en mode "Serveur uniquement". Si ce serveur est utilisé comme serveur de messagerie, les <u>requêtes des hôtes du réseau LOCAL</u> à 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.


<span style="color:red">•&nbsp;</span>'''État du service Proxy SMTP'''

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-057-MediaWiki-Config-L.png|600px|border]]
|}
* <span style="font-family:Courier New;">[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;Après avoir <span style="color:red"><u>désactivé</u></span> ces mandataires et cliqué ''Enregistrer'', on s'assure du succès de l'opération.</span>
<br clear=all>

<!-- ########################################################################### -->

=== 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.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Il ne faut tout simplement pas écraser le fichier <code>wiki.png</code> par notre logo car à la prochaine mise à jour, celle-ci va écraser ce fichier.

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-059-MediaWiki-Config-N.png|600px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-058-MediaWiki-Config-M.png|200px|border]]
|}
'''Importation du fichier de notre logo'''

* <span style="font-family:Courier New;">''Importer un fichier''.</span>
* <span style="font-family:Courier New;">- ''Parcourir''.<br>- [[Image:Icone-NoteAPT.png|25px]]&nbsp;On peut remarquer la Taille maximale du fichier: <span style="color:red">50 Mio</span> qu'on a configurée au paragraphe [[#Ajustement des paramètres PHP]].</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-061-MediaWiki-Config-P.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-060-MediaWiki-Config-O.png|400px|border]]
|}
* <span style="font-family:Courier New;">- On se rend dans le répertoire contenant le fichier de notre logo, sur notre station de travail, on le sélectionne<span style="color:red"> &nbsp;>&nbsp; </span>''Ouvrir''.<br>- Notre logo apparaît.</span>
* <span style="font-family:Courier New;">- On ajoute une ''description''.<br>- On décoche ''Suivre ce fichier''.<br>- ''Importer le fichier''.<br></span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-062-MediaWiki-Config-Q.png|525px|border]]
|}
'''''Le chemin relatif de notre logo'''''

* <span style="font-family:Courier New;">On ''claque'' sur le nom du fichier<span style="color:red"> &nbsp;>&nbsp; </span>''Copier l'adresse du lien''.</span>

:- On voit où se trouve le fichier de notre logo.

:{| style="width: 50%; background-color:#f8f9fa;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>http://</nowiki>192.168.1.11/<span style="color:DarkMagenta">wiki</span>/images/6/61/Logo_RF-232_160px_transparent.png
|}

:- Le répertoire racine de notre site est: <u style="text-decoration-color: red;"><nowiki>http://</nowiki><span style="color:DarkMagenta">192.168.1.11/wiki/</span></u>.

:- Le <u>chemin relatif</u> est donc: <code>/images/6/61/Logo_RF-232_160px_transparent.png</code>.
<br clear=all>

<!-- ########################################################################### -->

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

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

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

<nowiki>##### </nowiki> <nowiki>***********************</nowiki>
<nowiki># Le logo de RF-232</nowiki>
$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

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


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-063-MediaWiki-Config-P.png|815px|border]]
|}
* <span style="font-family:Courier New;">- On rafraîchit la page d'''Accueil''.<br><br>- Petite victoire, notre logo apparaît.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em; margin-right:40px"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-064-MediaWiki-Config-Q-1.png|815px|border]]
|}
=== Importation de fichiers ===

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

* <span style="font-family:Courier New;">- [[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Remarquez les "Formats de fichiers autorisés", seulement: <code>png</code>, <code>gif</code>, <code>jpg</code>, <code>jpeg</code> et <code>webp</code>.<br><span style="color:red">•&nbsp;</span>Nous réglerons ce détail dans un prochain paragraphe.<br><br>- ''Parcourir''<span style="color:red"> &nbsp;>&nbsp; </span>''sélectionner l'image''<span style="color:red"> &nbsp;>&nbsp; </span>''Ouvrir''<span style="color:red"> &nbsp;>&nbsp; </span>entrer une ''description''.<br><br>- Décocher ''Suivre ce fichier''.<br><br>- ''Importer le fichier''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-065-MediaWiki-Config-R.png|815px|border]]
|}
* <span style="font-family:Courier New;">Le fichier a été importé.</span>
<br clear=all>

<!-- ########################################################################### -->


=== 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 ''(<span style="color:Blue">thumb</span>)''.
# ls -als /home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/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 <span style="color:red">61</span>
4 drwxr-sr-x 2 www www 4096 25 nov. 18:30 <span style="color:red">6a</span>

/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 <span style="color:red">6</span>

/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/<span style="color:Blue">thumb</span>:
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 <span style="color:red">6</span>


=== Formats de fichiers autorisés ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-066-MediaWiki-Config-S.png|600px|border]]
|}
* <span style="font-family:Courier New;">Par défaut, les seuls formats de fichiers autorisés sont: <code>png</code>, <code>gif</code>, <code>jpg</code>, <code>jpeg</code> et <code>webp</code>.<br>
:<span style="color:red">•&nbsp;</span>Pour remédier à cette situation, il faut éditer le fichier <code>LocalSettings.php</code>.</span>
<br clear=all>

<!-- ########################################################################### -->

On ajoute, à la fin du fichier <code>LocalSettings.php</code>, les lignes des paramètres ''(<span style="color:red">rouge</span>)'' avec celles de leur commentaire ''(<span style="color:blue">bleu</span>)''.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;On ajoute <u>à la fin du fichier</u>, 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.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

cat <span style="color:red">'''>>'''</span> /home/e-smith/files/ibays/wiki/html/LocalSettings.php <<'EOT'

<span style="color:blue">##### ***********************
# 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</span> <span style="color:DarkGreen">50MB</span>
<span style="color:red">$wgMaxUploadSize = 1024*1024*</span><span style="color:DarkGreen">50</span>;

<span style="color:blue"># Doit-on vérifier l'extension du nom de fichier à l'upload?</span> <span style="color:DarkGreen">oui</span>
<span style="color:red">$wgCheckFileExtensions = true;</span>

<span style="color:blue"># Les extensions autorisées</span>
<span style="color:red">$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ppt', 'pdf', 'psd', 'mp3', 'xls', 'xlsx', 'swf', 'doc','docx', 'odt', 'odc', 'odp', 'odg', 'mpp', 'webp');</span>

<span style="color:blue"># 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</span>
<span style="color:red">$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' );</span>

EOT



[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Ici, la limite est de 50MB.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki> </nowiki>...<br>
<nowiki> </nowiki># Limite de taille de fichier, ici <span style="color:red">50MB</span><br>
<nowiki> </nowiki>$wgMaxUploadSize = 1024*1024*50;<br>
<nowiki> </nowiki>...
|}


[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;On peut spécifier un nombre plus grand dans le fichier <code>LocalSettings.php</code> mais, la véritable limite est celle spécifiée par <code>UploadMaxFilesize</code> au paragraphe [[#UploadMaxFilesize]].

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki> #</nowiki> config setprop php71 UploadMaxFilesize <span style="color:red">50M</span>
|}


On vérifie notre ajout au fichier <code>LocalSettings.php</code>.
# tail -23 /home/e-smith/files/ibays/wiki/html/LocalSettings.php

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

<nowiki>#</nowiki> Limite de taille de fichier, ici <span style="color:Blue">50MB</span>
$wgMaxUploadSize = 1024*1024*50;

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

<nowiki># Les extensions autorisées</nowiki>
$wgFileExtensions = array( <span style="color:Blue">'png', 'gif', 'jpg', 'jpeg', 'ppt', 'pdf', 'psd', 'mp3', 'xls', 'xlsx', 'swf', 'doc','docx', 'odt', 'odc', 'odp', 'odg', 'mpp', 'webp'</span>);

<nowiki># Les extensions spécifiquement interdites</nowiki>
<nowiki># HTML may contain cookie-stealing JavaScript and web bugs</nowiki>
<nowiki># PHP scripts may execute arbitrary code on the server</nowiki>
<nowiki># Other types that may be interpreted by some servers</nowiki>
<nowiki># May contain harmful executables for Windows victims</nowiki>
$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' );


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:0px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-067-MediaWiki-Config-T-3.png|900px|border]]
|}
On vérifie dans MediaWiki.

* <span style="font-family:Courier New;">''Accueil''<span style="color:red"> &nbsp;>&nbsp; </span>''Importer un fichier''.</span>
<br clear=all>

<!-- ########################################################################### -->

<center><span style="font-size:120%">'''Notre site MediaWiki est fonctionnel.'''</span></center>


== Semantic MediaWiki ''(SMW)'' ==

=== Semantic MediaWiki ''(SMW)'' ===

''Référence'': [http://semantic-mediawiki.org/wiki/Help:Présentation_de_Semantic_MediaWiki 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'[https://www.semantic-mediawiki.org/wiki/Help:SMW_extensions 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 <code>$wgShellLocale</code> dans le fichier <code>LocalSettings.php</code> de MediaWiki.

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

Si vous utilisez MediaWiki <span style="color:red">1.30.x</span> et supérieur ''(notre cas avec 1.31.1)'', il est recommandé de changer le paramètre de configuration <code>$wgShellLocale</code> ''(MediaWiki.org)'' en <code>C.UTF-8</code>, 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/<span style="color:DarkMagenta">wiki</span>/html/


On vérifie.
# pwd

/home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/<span style="color:red">html</span>


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 <span style="color:red">LocalSettings.php_avant-Semantic</span>


On affiche le paramètre.
# cat LocalSettings.php | grep wgShellLocale

$wgShellLocale = "<span style="color:blue">en_US.utf8</span>";


On change la valeur du paramètre de:&nbsp;&nbsp;<code>en_US.utf8</code>&nbsp;&nbsp;à&nbsp;&nbsp;<code>C.UTF-8</code>.
# sed -i 's/<span style="color:blue">en_US.utf8</span>/<span style="color:red">C.UTF-8</span>/' LocalSettings.php


On vérifie.
# cat LocalSettings.php | grep wgShellLocale

$wgShellLocale = "<span style="color:red">C.UTF-8</span>";


=== Composer ===

''Référence'': [https://www.semantic-mediawiki.org/wiki/Help:Installation/fr 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 <code>mbstring</code> permet l'utilisation de fonctions PHP multi-octets.


On s'assure que l'extension <code>mbstring</code> est présente dans PHP71.
# php --re mbstring | head -n 1

Extension [ <persistent> extension #31 <span style="color:red">mbstring version 7.1.23</span> ] {


'''Installeur'''

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

/home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/<span style="color:red">html</span>


On télécharge l'installeur de Composer.
# wget <nowiki>http://getcomposer.org/installer</nowiki>

--2018-11-25 23:48:24-- <nowiki>http://getcomposer.org/installer</nowiki>
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 <span style="color:red">installer</span>


On installe Composer.
# php installer

All settings correct for using Composer
Downloading...

Composer (<span style="color:blue">version 1.7.3</span>) <span style="color:red">successfully installed</span> 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 <span style="color:red">composer.phar</span>


On supprime le fichier installeur.
# rm installer

rm&nbsp;: supprimer fichier «&nbsp;installer&nbsp;»&nbsp;? <span style="color:red">'''o'''</span>


=== Installation de Semantic MediaWiki avec Composer ===

'''Préparation'''

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;On peut ignorer l'avertissement car nous utilisons les options: <code>--no-plugins</code> et <code>--no-scripts</code>. Pour plus de détails, voir: [https://getcomposer.org/root https://getcomposer.org/root].

# php composer.phar install <span style="color:red">--no-plugins</span> <span style="color:red">--no-scripts</span>

<span style="color:red">Do not run Composer as root/super user!</span> See <nowiki>https://getcomposer.org/root for details</nowiki>
> 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 "<span style="color:red">~3.0</span>"

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'''

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

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

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

EOT

On vérifie.
# tail -7 LocalSettings.php

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


<span id="setupStore.php"></span>
'''setupStore.php'''

Configuration du système de stockage SMW actuellement sélectionné dans <code>LocalSettings.php</code>.
# cd /home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/html/extensions/SemanticMediaWiki/maintenance


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

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Veiller noter que cette commande nécessite d'avoir la permission de <u>modifier/créer</u> 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 <u>de la base de données</u>.
# Réparation et mise à niveau <u>des données</u>.


<span style="color:DarkGreen">'''1. '''</span>'''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 <code>php setupStore.php</code>.


<span style="color:DarkGreen">'''2. '''</span></span>'''Réparation et mise à niveau des données'''

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-068-MediaWiki-SMW-A.png|600px|border]]
|}
* <span style="font-family:Courier New;">On recherche la page <code>Special:SemanticMediaWiki</code> pour effectuer les étapes de configuration.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-069-MediaWiki-SMW-B.png|815px|border]]
|}
* <span style="font-family:Courier New;">- À l'onglet ''Maintenance'', sous "Réparation de données et mise à jour", on clique ''Commencer la mise à jour des données''.<br><br>- Cette seconde requête prend un certain temps ''(plus de 20-30 minutes)''.<br><br>- [[Image:Icone-NoteAPT.png|25px]]&nbsp;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)''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-072-MediaWiki-SMW-E.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-071-MediaWiki-SMW-D.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-070-MediaWiki-SMW-C.png|260px|border]]
|}
<span style="font-family:Courier New;">Après quelques minutes, on rafraîchit la page pour voir la progression.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-073-MediaWiki-SMW-F.png|815px|border]]
|}
* <span style="font-family:Courier New;">Une fois l'opération terminée, l'écran ci-contre apparaît.</span>
<br clear=all>

<!-- ########################################################################### -->

=== Vérification de l'installation ===

Si on n'est pas certain du bon déroulement des opérations, on peut vérifier avec: ''Accueil''<span style="color:red"> &nbsp;>&nbsp; </span>''Pages spéciales''<span style="color:red"> &nbsp;>&nbsp; </span>"Données et outils"<span style="color:red"> &nbsp;>&nbsp; </span>''Version''<span style="color:red"> &nbsp;>&nbsp; </span>cadre "Extensions installées".

[[Image:SME-201.2-074-MediaWiki-SMW-G.png|top|center|900px|border]]


=== Création d'une page classique ===

Nous allons créer une page classique que nous appellerons <code>TestSMW</code>.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-076-MediaWiki-SMW-I.png|550px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-075-MediaWiki-SMW-H.png|350px|border]]
|}
* <span style="font-family:Courier New;">On recherche cette page.</span>
* <span style="font-family:Courier New;">- Comme elle n'existe pas, Mediawiki nous offre de la créer.<br>- On clique ''TestSMW''.</span>
<br clear=all>

<!-- ########################################################################### -->

* On entre le texte ci-dessous pour vérifier que Semantic Mediawiki affichera la propriété <code>Dummypage</code> lorsqu'on cherchera les propriétés de cette page:

Property test: <nowiki>[[testproperty::</nowiki>Dummypage]]


{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-077-MediaWiki-SMW-J.png|815px|border]]
|}
* <span style="font-family:Courier New;">On donne une description dans le "Résumé" et on clique ''Prévisualiser''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-079-MediaWiki-SMW-L.png|700px|border]]
|}
* <span style="font-family:Courier New;">Notre page apparaît et Semantic MediaWiki af­fiche les propriétés de la page.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-081-MediaWiki-SMW-N.png|600px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-080-MediaWiki-SMW-M.png|200px|border]]
|}
* <span style="font-family:Courier New;">Après avoir enregistré la page, on peut aussi cliquer sur le lien ''Chercher les pro­pri­é­tés'' dans la barre d'ou­tils à gauche.</span>
* <span style="font-family:Courier New;">Cette vue af­fi­che "Testproperty" avec la valeur <code>Dummypage</code>.</span>
<br clear=all>

<!-- ########################################################################### -->

<center><span style="font-size:120%">'''Semantic Mediawiki ''(SMW)'' fonctionne parfaitement.'''</span></center>


== 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.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-082-MediaWiki-CharInsert-A.png|700px|border]]
|}
* <span style="font-family:Courier New;">Ci-contre, les boutons que nous voulons ultimement obtenir pour faciliter la création de pages.</span>
<br clear=all>

<!-- ########################################################################### -->
=== Téléchargement ===

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

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-083-MediaWiki-CharInsert-B.png|700px|border]]
|}
* <span style="font-family:Courier New;">On télécharge le fichier de l'extension dans un répertoire sur le poste de travail.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-084-MediaWiki-CharInsert-C.png|700px|border]]
|}
* <span style="font-family:Courier New;">On téléverse le fichier <code>tar.gz</code> sur le serveur, dans le répertoire des extensions: <code>/home/e-smith/files/ibays/wiki/html/extensions</code>.</span>
<br clear=all>

<!-- ########################################################################### -->

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.

{| class="wikitable" style="width: 80%; background-color:#F0FFFF;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>#</nowiki> cd /home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/html/extensions/
|}


On vérifie.
# pwd

/home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span><span style="color:red">/extensions</span>


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 <code>tar.gz</code>.
# rm CharInsert-REL1_31-b5f34be.tar.gz

rm&nbsp;: supprimer fichier «&nbsp;CharInsert-REL1_31-b5f34be.tar.gz&nbsp;»&nbsp;? <span style="color:red">'''o'''</span>


On ajuste '''<u>R</u>'''écursivement le propriétaire et le groupe.
# chown -R admin:www CharInsert


On enlève '''<u>R</u>'''écursivement tous les droits à "other".
# chmod -R o-rwx CharInsert


On vérifie,
# ls -alsd CharInsert

4 drwxr-x<span style="color:red">---</span> 6 <span style="color:red">admin www</span> 4096 17 18 avril 2018 CharInsert


=== LocalSettings.php ===

Il faut maintenant modifier le fichier <code>LocalSettings.php</code> 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/<span style="color:DarkMagenta">wiki</span>/<span style="color:red">html/</span>


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


[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

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

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

EOT


On vérifie.
# tail -7 LocalSettings.php

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


=== Vérification sur le site ===

''Acceuil''<span style="color:red"> &nbsp;>&nbsp; </span>''Pages spéciales''<span style="color:red"> &nbsp;>&nbsp; </span>"Données et outils"<span style="color:red"> &nbsp;>&nbsp; </span>''Version''<span style="color:red"> &nbsp;>&nbsp; </span>"Extensions installées"<span style="color:red"> &nbsp;>&nbsp; </span>"Greffons de l'analyseur syntaxique".

[[Image:SME-201.2-085-MediaWiki-CharInsert-D.png|top|center|900px|border]]


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

[[Image:SME-201.2-086-MediaWiki-CharInsert-E.png|top|center|900px|border]]


=== É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 ''<u>insertion de caractères absents des claviers usuels</u>''.

[[Image:SME-201.2-087-MediaWiki-CharInsert-F.png|top|center|900px|border]]


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.

[[Image:SME-201.2-088-MediaWiki-CharInsert-G.png|top|center|900px|border]]


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

[[Image:SME-201.2-089-MediaWiki-CharInsert-H.png|top|center|900px|border]]


[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;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/ http://www.mediawiki.org] et on lance la recherche de la page <code>Mediawiki:Edittools</code>.

[[Image:SME-201.2-090-MediaWiki-CharInsert-I.png|top|center|900px|border]]

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-092-MediaWiki-CharInsert-K.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-091-MediaWiki-CharInsert-J.png|400px|border]]
|}
* <span style="font-family:Courier New;">On clique ''View source''.</span>
* <span style="font-family:Courier New;">On sélectionne tout le texte <code>[Ctl + A]</code>, on le copie <code>[CTL + C]</code>...</span>
<br clear=all>

<!-- ########################################################################### -->

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

[[Image:SME-201.2-093-MediaWiki-CharInsert-L.png|top|center|900px|border]]


Ce qui nous donne la page suivante.

[[Image:SME-201.2-094-MediaWiki-CharInsert-M.png|top|center|900px|border]]


[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;N'ayez crainte, plus loin, lorsque nous aurons terminé, la page apparaîtra telle que ci-dessous.

[[Image:SME-201.2-095-MediaWiki-CharInsert-N.png|top|center|900px|border]]


<hr style="width:50%; margin: 0 auto;">


'''Page MediaWiki:Gadgets-definition'''

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

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

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

[[Image:SME-201.2-096-MediaWiki-CharInsert-O.png|top|center|900px|border]]


'''''Syntaxe'''''

Format de la ligne de cette page.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>* </nowiki><span style="color:DarkGreen">nom_du_gadget</span> [options ''(peut être omis)''] | nom-page1-utilisée | </span>nom-page2-utilisée...
|}


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

* Premier champ "<span style="color:DarkGreen">nom_du_gadget</span>" est le nom interne du gadget.

Forme générale: <span style="color:DarkGreen">nom_du_gadget</span>

''Exemple'': Edittools.


* Deuxième champ ''(Options)''

Forme générale: <nowiki>[</nowiki>option-1 | option-2 | ... option-N<nowiki>]</nowiki>.

''Exemple'': <nowiki>[</nowiki><span style="color:red">ResourceLoader</span>|<span style="color:blue">Default</span><nowiki>]</nowiki>.

{| style="border-spacing:0;"
| style="border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0201in;"| Nom
| style="border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0201in;"| Paramètres
| style="border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0201in;"| Description
| style="border:0.05pt solid #000000;padding:0.0201in;"| Depuis

|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| <span style="color:red"><tt>ResourceLoader</tt></span>
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| Aucun
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| Marque les scripts du gadget comme étant compatible avec [http://www.mediawiki.org/wiki/ResourceLoader ResourceLoader].
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| ?

|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| <tt>dependencies</tt>
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| Noms des modules ResourceLoader séparés par une virgule
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| Voir la [http://www.mediawiki.org/wiki/ResourceLoader/Default_modules 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)''.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| ?

|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| <tt>rights</tt>
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| Noms des privilèges séparés par une virgule
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| Rend le gadget visible dans les préférences uniquement aux utilisateurs qui ont les [http://www.mediawiki.org/wiki/Manual:User_rights/fr#Droits_et_groupes privilèges].
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| ?

|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| <span style="color:blue"><tt>default</tt></span>
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| Aucun
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| 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.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding-top:0.0201in;padding-bottom:0.0201in;padding-left:0.0403in;padding-right:0.0403in;"| 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 <code>.js</code> ou <code>.css</code>. 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 <code>MediaWiki:Gadgets-definition</code> du site [https://www.mediawiki.org/ https://www.mediawiki.org/]; vous pouvez la consulter en cherchant <code>MediaWiki:Gadgets-definition</code> puis cliquer ''View source''.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
...<br>
<nowiki>*</nowiki> DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js<br>
<nowiki></nowiki><span style="color:red">* <span style="color:blue">Edittools</span>[ResourceLoader|default]|Edittools.js</span><br>
<nowiki>*</nowiki> HotCat[ResourceLoader]|HotCat.js<br>
...
|}


'''''Édition de la page MediaWiki:Gadgets-definition'''''

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

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-097-MediaWiki-CharInsert-P.png|815px|border]]
|}
* <span style="font-family:Courier New;">Cliquer ''Modifier''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-098-MediaWiki-CharInsert-Q.png|700px|border]]
|}
* <span style="font-family:Courier New;">- On entre le texte suivant:</span>

<center>
{| class="wikitable" style="width: 35%; background-color:#f8f9fa;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>*</nowiki> Edittools[<span style="color:red">ResourceLoader</span>|<span style="color:blue">default</span>]|Edittools.js
|}
</center>

:<span style="font-family:Courier New;">- On donne une description:</span>

<center>
{| class="wikitable" style="width: 35%; background-color:#f8f9fa;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki> </nowiki>Le premier greffon
|}
</center>

:<span style="font-family:Courier New;">- On clique ''Enregistrer''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-099-MediaWiki-CharInsert-R.png|815px|border]]
|}
* <span style="font-family:Courier New;">Voilà, la page a été modifiée.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-100-MediaWiki-CharInsert-S.png|815px|border]]
|}
'''''Vérification sur le site'''''

* <span style="font-family:Courier New;">On clique ''Préférences''<span style="color:red"> &nbsp;>&nbsp; </span>''Gadgets''.<br><span style="color:red">•&nbsp;</span>[[Image:Icone-NoteAPT.png|25px]]&nbspLe gadget est bien là et il est coché car, on a spécifié l'option <span style="color:blue"><code>default</code></span>, sur la ligne qu'on a insérée pour la page <code>MediaWiki:Gadgets-definition</code>. Cette option rend le gadget actif par défaut, pour tout le monde.<br><span style="color:red">•&nbsp;</span>[[Image:Icone-NoteAPT.png|25px]]&nbsp;L'onglet "Gadgets" n'apparaîtra dans la page <code>Spécial:Préférences</code> qu'après avoir édité la page <code>MediaWiki:Gadgets-definition</code> et il faut que cette dernière contienne au moins une ligne pour définir un gadget valide.<br><span style="color:red">•&nbsp;</span>[[Image:Icone-AstuceAPT.png|25px]]&nbsp;Sur la page <code>Spécial:Préférence</code>, un utilisateur pourra sélectionner les gadgets qu'il désire utiliser.</span>
<br clear=all>
<!-- ########################################################################### -->

<hr style="width:50%; margin: 0 auto;">


'''Page MediaWiki:Gadget-Edittools'''

<span style="color:red">•</span> Le premier champ, "<span style="color:DarkGreen">nom_du_gadget</span>", d'une ligne de la page <code>MediaWiki:Gadgets-definition</code> est le <u>nom interne</u> du gadget. Ce champ <u>réfère à une page</u> qui explique en quelques mots ce que fait ce gadget.

<span style="color:red">•</span> Le nom de cette page prend la forme suivante: <code>MediaWiki:<span style="color:DarkGreen">Gadget-nom_du_gadget</span></code>.

<span style="color:red">•</span> [[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;L'espace de noms <code>MediaWiki:</code> est implicite et il n'est pas écrit dans le premier champ de la ligne <u>mais, il faut l'utiliser pour éditer la page</u>.

<span style="color:red">•</span> [[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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 ''(".")''.

<span style="color:red">•</span> Pour notre gadget, le nom de la page sera: <code>MediaWiki:Gadget-<span style="color:DarkGreen">Edittools</span></code>. On utilise la syntaxe MediaWiki pour la description du gadget.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-101-MediaWiki-CharInsert-T.png|700px|border]]
|}
* <span style="font-family:Courier New;">Sur notre site, on cherche la page: <code>MediaWiki:Gadget-Edittools</code></span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-102-MediaWiki-CharInsert-U.png|700px|border]]
|}
* <span style="font-family:Courier New;">La page n'existe pas; on clique ''le nom de la page'' pour la créer.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-103-MediaWiki-CharInsert-V.png|700px|border]]
|}
* <span style="font-family:Courier New;">On entre la ligne suivante.</span>

<center>
{| class="wikitable" style="width: 35%; background-color:#f8f9fa;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>'''''</nowiki>EditTools<nowiki>'''''</nowiki> est un gadget qui enrichit l'édition de texte en regroupant les <span style="color:red">sections</span> sous un menu déroulant et en convertissant les balises de la syntaxe en boutons cliquables.
|}
</center>

:<span style="font-family:Courier New;">- On donne une description:</span>

<center>
{| class="wikitable" style="width: 35%; background-color:#f8f9fa;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki> </nowiki>Le premier greffon
|}
</center>

:<span style="font-family:Courier New;">- On clique ''Enregistrer''.</span>
<br clear=all>

<!-- ########################################################################### -->

'''''Vérification sur le site'''''

On se rend sur ''Préférences''<span style="color:red"> &nbsp;>&nbsp; </span>''Gadgets''.

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

[[Image:SME-201.2-104-MediaWiki-CharInsert-W.png|top|center|900px|border]]


<hr style="width:50%; margin: 0 auto;">


'''Page MediaWiki:Gadget-Edittools.js'''

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-105-MediaWiki-CharInsert-Y.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-105-MediaWiki-CharInsert-X.png|400px|border]]
|}
* <span style="font-family:Courier New;">Sur notre site, on cherche la page: <code>MediaWiki:Gadget-Edittools.js</code></span>
* <span style="font-family:Courier New;">''Créer''.</span>
<br clear=all>

<!-- ########################################################################### -->

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Comme précédemment, nous allons ''copier'' la page originale du site [http://www.mediawiki.org/ http://www.mediawiki.org] et la ''coller'' dans notre nouvelle page <code>MediaWiki:Gadget-Edittools.js</code>.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-106-MediaWiki-CharInsert-Z.png|700px|border]]
|}
* <span style="font-family:Courier New;">On se rend sur le site [http://www.mediawiki.org/ http://www.mediawiki.org], on cherche <code>MediaWiki:Gadget-Edittools.js</code><span style="color:red"> &nbsp;>&nbsp; </span>''View source'', on sélectionne tout le texte <code>[Ctl + A]</code> et on le copie <code>[Ctl + C]</code>.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-107-MediaWiki-CharInsert-AA.png|700px|border]]
|}
* <span style="font-family:Courier New;">- On revient sur notre site, on colle le texte <code>[Ctl + V]</code> sur notre page <code>MediaWiki:Gadget-Edittools.js</code>.<br>- On entre une description: ''Pour le greffon Edittools''.<br>- ''Enregistrer''.</span>
<br clear=all>

<!-- ########################################################################### -->

=== Vérification finale ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-108-MediaWiki-CharInsert-AB.png|700px|border]]
|}
* <span style="font-family:Courier New;">- Sur notre site, à la page d'acceuil, on clique ''Modifier''.<br>- Les boutons cliquables des balises sont là et ils sont bien définis.<br>- Le menu déroulant ''(<span style="color:red">Standard</span>)'' est là, lui aussi.<br><br>[[Image:Icone-AstuceAPT.png|25px]]&nbsp;Si les icônes n'apparaissent pas, rafraîchir la page du navigateur.<br></span>
<br clear=all>

<!-- ########################################################################### -->

<center><span style="font-size:120%">'''Avec les extensions CharInsert et WikiEditor, nous avons maintenant encore plus de choix pour le formatage de nos pages.'''</span></center>


== Masquer une révision ''(RevisionDelete)'' ==

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

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

''Référence'': [https://www.mediawiki.org/wiki/Manual:RevisionDelete/fr 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é [http://www.synonymo.fr/synonyme/attribuer 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 <code>&oldid=page</code> 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.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;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 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 <code>LocalSettings.php</code>.

'''Masquer une révision par un usager'''

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;L'octroi de ce privilège <u>aux usagers</u> <u style="text-decoration-color: red;">n'est pas recommandé</u>.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>&nbsp;</nowiki>$wgGroupPermissions['<span style="color:red">user</span>']['deleterevision'] = true;
|}


'''Masquer une révision aux usagers'''

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>&nbsp;</nowiki>$wgGroupPermissions['<span style="color:red">sysop</span>']['deleterevision'] = true;
|}


'''''LocalSettings.php'''''

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

{| class="wikitable" style="width: 80%; background-color:#F0FFFF;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>#</nowiki> cd /home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/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 <span style="color:red">LocalSettings.php_avant_deleterevision</span>


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

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

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

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

EOT


On vérifie.

[root@mediawiki wiki]# tail -16 LocalSettings.php

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


'''''Masquer une révision de la page "Test"'''''

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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 <code>LocalSettings.php</code>, 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".

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-109-MediaWiki-MasquerRevision-A.png|700px|border]]
|}
* <span style="font-family:Courier New;">[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;On crée la page <code>Test</code> et on la modifie à quelques reprises puis, on la recherche.</span>
<br clear=all>

<!-- ########################################################################### -->

On clique ''Afficher l'historique''.

[[Image:SME-201.2-110-MediaWiki-MasquerRevision-B.png|top|center|900px|border]]


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

[[Image:SME-201.2-111-MediaWiki-MasquerRevision-C.png|top|center|900px|border]]


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

[[Image:SME-201.2-112-MediaWiki-MasquerRevision-D.png|top|center|900px|border]]


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

[[Image:SME-201.2-113-MediaWiki-MasquerRevision-E.png|top|center|900px|border]]


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

[[Image:SME-201.2-114-MediaWiki-MasquerRevision-F.png|top|center|900px|border]]


[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Contrairement à ce qui est indiqué sur cette page, <u>les informations ne sont pas <span style="color:blue">supprimées</span></u> mais, simplement cachées à la vue des usagers.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Les versions et les événements supprimés seront encore présents dans l'historique de la page et dans les journaux mais, <u>leurs contenus textuels seront inaccessibles au public</u>. 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.

[[Image:SME-201.2-115-MediaWiki-MasquerRevision-G.png|top|center|1000px|border]]


'''''Entrée dans le journal'''''

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-117-MediaWiki-MasquerRevision-I.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-116-MediaWiki-MasquerRevision-H.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Acceuil''<span style="color:red"> &nbsp;>&nbsp; </span>''Pages spéciales''<span style="color:red"> &nbsp;>&nbsp; </span>cadre "Outils pour les pages"<span style="color:red"> &nbsp;>&nbsp; </span>''Voir les pages supprimées''.</span>
* <span style="font-family:Courier New;">''journal des suppressions''.</span>
<br clear=all>

<!-- ########################################################################### -->

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

[[Image:SME-201.2-118-MediaWiki-MasquerRevision-J.png|top|center|900px|border]]


'''''Masquer plusieurs révisions'''''

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

[[Image:SME-201.2-119-MediaWiki-MasquerRevision-K.png|top|center|900px|border]]


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

[[Image:SME-201.2-120-MediaWiki-MasquerRevision-L.png|top|center|900px|border]]


'''''Droits des groupes d'utilisateurs'''''

''Acceuil''<span style="color:red"> &nbsp;>&nbsp; </span>''Pages spéciales''<span style="color:red"> &nbsp;>&nbsp; </span>"Utilisateurs et droits rattachés"<span style="color:red"> &nbsp;>&nbsp; </span>''Droits des groupes d'utilisateurs''<span style="color:red"> &nbsp;>&nbsp; </span>''Administrateurs''.

Une nouvelle ligne a été ajoutée.

<center>
{| style="border-spacing:0;"
| style="border-top:0.05pt solid #b3b3b3;border-bottom:0.05pt solid #b3b3b3;border-left:0.05pt solid #b3b3b3;border-right:none;padding:0.0201in;vertical-align: top;"| &nbsp;Administrateurs ''(liste des membres)''&nbsp;
| style="border:0.05pt solid #b3b3b3;padding:0.0201in;"| <tt>...</tt>

* Supprimer ou restaurer une version particulière d'une page <tt>(deleterevision)</tt>

<tt>...</tt>

|}
</center>


== Ajouts au menu principal ==

=== Introduction ===

On veut ajouter une nouvelle ligne au menu principal.

* Nom de la nouvelle page: <code>AideDeRF232</code>
* Titre de la nouvelle ligne du menu: ''Aide pour RF-232''

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Ici, nous utilisons une orthographe différente pour faire une distinction arbitraire entre le <u>Nom</u> et le <u>Titre</u> 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 ===

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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: <code>AideDeRF232</code> et on y ajoute des liens vers des pages d'aide.

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-122-MediaWiki-Menu-B.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-121-MediaWiki-Menu-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">Rechercher <code>AideRF232</code>.</span>
* <span style="font-family:Courier New;">Cliquer ''AideDeRF232'' pour créer la page.</span>
<br clear=all>

<!-- ########################################################################### -->

Faire une <u>liste à puces</u> ''(*)'' de liens d'aide.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Si on ne fait pas une liste à puces, l'interligne devient trop grand. ''(On peut aussi utiliser <nowiki><nowiki></nowiki> qui est moins esthétique.)''

Prendre tout l'encadré et le coller dans la nouvelle page<span style="color:red"> &nbsp;>&nbsp; </span>''Enregistrer''.

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


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:400px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-123-MediaWiki-Menu-C.png|150px|border]]
|}
* <span style="font-family:Courier New;">Ce qui donnera la page ci-contre.<br>[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;On clique quelques liens pour vérifier qu'ils fonctionnent correctement.</span>
<br clear=all>

<!-- ########################################################################### -->

<span id="Ajout d'une nouvelle ligne au menu"></span>
=== Ajout d'une nouvelle ligne au menu ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-124-MediaWiki-Menu-D-1.png|600px|border]]
|}
* <span style="font-family:Courier New;">- Pour éditer le menu, il faut rechercher la page en incluant son espace de noms: <code><u style="text-decoration-color: red;">MediaWiki:</u>Sidebar</code>.<br>- La page <code>MediaWiki:Sidebar</code> apparaît; pour l'éditer, on clique ''Modifier''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-125-MediaWiki-Menu-E.png|815px|border]]
|}
* <span style="font-family:Courier New;">- On ajoute la nouvelle ligne au menu dans le format: <code>Nom-de-la-page|Titre du menu</code>. ''(Ne pas oublier "<span style="color:green">|</span>")''.</span>
<center>
{| class="wikitable" style="width: 25%; background-color:#ffffff;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>* navigation</nowiki><br>
<nowiki>** mainpage|mainpage-description</nowiki><br>
<nowiki>** recentchanges-url|recentchanges</nowiki><br>
<nowiki>** randompage-url|randompage</nowiki><br>
<nowiki>** helppage|help</nowiki><br>
<nowiki>**</nowiki> <span style="color:red">AideDeRF232<span style="color:green">|</span><span style="color:blue">Aide pour RF-232</span></span><br>
<nowiki>* SEARCH</nowiki><br>
<nowiki>* TOOLBOX</nowiki><br>
<nowiki>* LANGUAGES</nowiki>
|}
</center>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family:Courier New;">- ''Prévisualiser''<span style="color:red"> &nbsp;>&nbsp; </span>''Enregistrer''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-127-MediaWiki-Menu-F.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-126-MediaWiki-Menu-F.png|400px|border]]
|}
* <span style="font-family:Courier New;">La nouvelle ligne est ajoutée au menu principal.</span>
* <span style="font-family:Courier New;">Lorsqu'on clique ''Aide pour RF-232'', la page des liens d'aide apparaît.</span>
<br clear=all>

<!-- ########################################################################### -->

=== Ajout d'un nouveau bloc au menu ===

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

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-129-MediaWiki-Menu-H.png|815px|border]]
|}

* <span style="font-family:Courier New;">- On recherche la page <code>MediaWiki:Sidebar</code> et on la modifie tel que ci-dessous.</span>

<center>
{| class="wikitable" style="width: 25%; background-color:#ffffff;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>* navigation</nowiki><br>
<nowiki>** mainpage|mainpage-description</nowiki><br>
<nowiki>** portal-url|portal</nowiki><br>
<nowiki>** currentevents-url|currentevents</nowiki><br>
<nowiki>** recentchanges-url|recentchanges</nowiki><br>
<nowiki>** randompage-url|randompage</nowiki><br>
<nowiki>** helppage|help</nowiki><br>
<nowiki></nowiki><span style="color:red">* SME</span><br>
<nowiki></nowiki>** AideDeRF232|Aide pour RF-232<br>
<nowiki>* SEARCH</nowiki><br>
<nowiki>* TOOLBOX</nowiki><br>
<nowiki>* LANGUAGES</nowiki>
|}
</center>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- <span style="font-family:Courier New;">Un nouveau bloc apparaît dans les menus.</span>
<br clear=all>

<!-- ########################################################################### -->

=== Ouverture dans une nouvelle fenêtre: "_blank" ===

''Référence'': [http://www.mediawiki.org/wiki/Manual:Opening_external_links_in_a_new_window 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 <code>LocalSettings.php</code>.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

cat <span style="color:red">'''>>'''</span> /home/e-smith/files/ibays/wiki/html/LocalSettings.php <<'EOT'

<nowiki>##### </nowiki> <nowiki>***********************</nowiki>
<nowiki># P</nowiki>our faire ouvrir les liens dans une nouvelle fenêtre.
<nowiki>#</nowiki>
<span style="color:red">$wgExternalLinkTarget = '_blank';</span>

EOT


<span style="color:red">•</span> 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")''.

<span style="color:red">•</span> [[Image:Icone-NoteAPT.png|25px]]&nbsp;Ne s'applique pas au Menu Principal.

<span style="color:red">•</span> Lorsque la valeur est changée, les affichages doivent être rafraîchis pour rendre l'assignation effective.

Consulter aussi les liens suivants:

* [http://www.mediawiki.org/wiki/Manual:Hooks/LinkerMakeExternalLink Manual:Hooks/LinkerMakeExternalLink]
* [http://www.mediawiki.org/wiki/Manual:$wgNoFollowLinks Manual:$wgNoFollowLinks]


== Mise à jour de Mediawiki ==

=== Restez à jour ===

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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/<span style="color:DarkMagenta">wiki</span>/<span style="color:red">html</span>


On vérifie.
# pwd

/home/e-smith/files/ibays/<span style="color:DarkMagenta">wiki</span>/<span style="color:red">html</span>


[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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 <nowiki>https://gerrit.wikimedia.org/r/p/mediawiki/core</nowiki>
9b3790c..36261d1 REL1_29 -> origin/REL1_29
4d7d88b..6ffba8b REL1_30 -> origin/REL1_30
<span style="color:red">2bf035f..959e09c</span> 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
<span style="color:red">Updating 2bf035f..959e09c</span>
Fast-forward
includes/PHPVersionCheck.php | 2 +-
<span style="color:red">1 files changed, 1 insertions(+), 1 deletions(-)</span>


On met à jour les sous-modules.
# git submodule update --init

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


<span id="Mise à jour des Collections Red Hat"></span>
== Mise à jour des Collections Red Hat ==

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

=== PHP ===

'''Lancement de la mise à jour'''

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp; 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 https://wiki.contribs.org/PHP_Software_Collections#Update].

# yum update <span style="color:red">-y</span> smeserver-php-scl php54* php55* php56* php70* php71* --enablerepo=smecontribs

Modules complémentaires chargés&nbsp;: fastestmirror, smeserver
...

<nowiki>============================================================================================</nowiki>
Paquet Architecture Version Dépôt Taille
<nowiki>============================================================================================</nowiki>
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
<nowiki>============================================================================================</nowiki>
Mise à jour de 6 paquet(s)

Taille totale des téléchargements&nbsp;: 1.2 M
Téléchargement des paquets&nbsp;:
(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&nbsp;:
<span style="color:red">php54</span>-php-pear.noarch 1:1.10.4-1.el6.remi php54-php-pecl-zip.x86_64 0:1.14.0-1.el6.remi
<span style="color:red">php55</span>-php-pear.noarch 1:1.10.4-1.el6.remi php55-php-pecl-zip.x86_64 0:1.14.0-1.el6.remi
<span style="color:red">php56</span>-php-pear.noarch 1:1.10.4-1.el6.remi php56-php-pecl-zip.x86_64 0:1.14.0-1.el6.remi

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Ci-dessus, seules des mises à jour pour PHP54/55/56 étaient disponibles et aucune pour PHP70/71.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;On peut omettre l'option <span style="color:red">-y</span> et <code>yum</code> demandera si on veut mette a jour. Il suffit de répondre <code>o</code> ou <code>n</code> pour oui ou non.


[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Si aucune mise à jour n'était disponible, on obtiendrait le message: <code>Aucun paquet marqué pour mise à jour</code>.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki></nowiki> yum update -y smeserver-php-scl php54* php55* php56* php70* php71* --enablerepo=smecontribs<br>
<nowiki></nowiki> <br>
<nowiki></nowiki> Modules complémentaires chargés&nbsp;: fastestmirror, smeserver<br>
<nowiki></nowiki> Configuration du processus de mise à jour<br>
<nowiki></nowiki> Loading mirror speeds from cached hostfile<br>
<nowiki></nowiki> <nowiki>* base: centos.mirror.ca.planethoster.net</nowiki><br>
<nowiki></nowiki> <nowiki>* smeaddons: mirror.canada.pialasse.com</nowiki><br>
<nowiki></nowiki> <nowiki>* smecontribs: mirror.canada.pialasse.com</nowiki><br>
<nowiki></nowiki> <nowiki>* smeextras: mirror.canada.pialasse.com</nowiki><br>
<nowiki></nowiki> <nowiki>* smeos: mirror.canada.pialasse.com</nowiki><br>
<nowiki></nowiki> <nowiki>* smeupdates: mirror.canada.pialasse.com</nowiki><br>
<nowiki></nowiki> <nowiki>* updates: mirror.netaddicted.ca</nowiki><br>
<nowiki></nowiki> <span style="color:red">Aucun paquet marqué pour mise à jour</span>
|}


'''Signalisation des changements'''

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;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<nowiki>; </nowiki>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-<span style="color:red">1.14.0-1</span>.el6.remi.x86_64
php55-php-pecl-zip-<span style="color:red">1.14.0-1</span>.el6.remi.x86_64
php54-php-pecl-zip-<span style="color:red">1.14.0-1</span>.el6.remi.x86_64


=== MySQL57 ===

'''Lancement de la mise à jour'''
# yum update -y --enablerepo=smecontribs,centos-sclo-rh <span style="color:red">smeserver-mysql57</span>

Modules complémentaires chargés&nbsp;: fastestmirror, smeserver
Configuration du processus de mise à jour
Loading mirror speeds from cached hostfile
<nowiki>* base: mirror.netflash.net</nowiki>
<nowiki>* smeaddons: mirror.canada.pialasse.com</nowiki>
<nowiki>* smecontribs: mirror.canada.pialasse.com</nowiki>
<nowiki>* smeextras: mirror.canada.pialasse.com</nowiki>
<nowiki>* smeos: mirror.canada.pialasse.com</nowiki>
<nowiki>* smeupdates: mirror.canada.pialasse.com</nowiki>
<nowiki>* updates: mirror.netflash.net</nowiki>
centos-sclo-rh | 2.9 kB 00:00
centos-sclo-rh/primary_db | 1.2 MB 00:00
<span style="color:red">Aucun paquet marqué pour mise à jour</span>

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.
{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>#</nowiki> signal-event post-upgrade<nowiki>; </nowiki>signal-event reboot
|}


=== Courriel de mises à jour disponibles ===

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

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Veuillez ne pas activer le dépôt <code>epel</code> par défaut, car vous pourriez endommager votre système ou au moins le processus de mise à jour.


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-131-MediaWiki-MAJ-B.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-130-MediaWiki-MAJ-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Server Manager''<span style="color:red"> &nbsp;>&nbsp; </span>''Mise à jour logicielle''<span style="color:red"> &nbsp;>&nbsp; </span>''Modifier les paramètres de mise à jour''.</span>
* <span style="font-family:Courier New;"><code><span style="color:red">[CTL]</span></code> <span style="color:red">clic</span> sur "Centos - RH Software Collections" et "Remi -Safe" pour les activer.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-133-MediaWiki-MAJ-D.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-132-MediaWiki-MAJ-C.png|400px|border]]
|}
* <span style="font-family:Courier New;">- "Centos - RH Software Collections" et "Remi -Safe" deviennent <span style="color:blue">bleu</span> pour indiquer qu'ils sont activés.<br>- ''Enregistrer''.</span>
* <span style="font-family:Courier New;">- Les nouveaux paramètres on été enregistrés.<br>- ''Modifier les paramètre de mise à jour'' pour mettre à jour tous les référentiels locaux.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-135-MediaWiki-MAJ-F.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-134-MediaWiki-MAJ-E.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Enregistrer'' pour lancer la mise à jour de tous les référentiels locaux.</span>
* <span style="font-family:Courier New;">Les référentiels locaux on été mis à jour et ils indiquent que des mises à jour logicielles sont disponibles.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-137-MediaWiki-MAJ-H.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-136-MediaWiki-MAJ-G.png|400px|border]]
|}
* <span style="font-family:Courier New;">- Des mises à jour pour PHP71 et MySQL57 sont disponibles.<br>- ''Installer les mises à jour sélectionnées''.</span>
* <span style="font-family:Courier New;">''Reconfigurer''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:240px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-138-MediaWiki-MAJ-I.png|400px|border]]
|}
* <span style="font-family:Courier New;">- 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.<br>- [[Image:Icone-NoteAPT.png|25px]]&nbsp;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.</span>
<br clear=all>

<!-- ########################################################################### -->

<span id="Lien de redirection dans l'i-bay Primary"></span>
== Lien de redirection dans l'i-bay Primary ==

=== Description ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-139-MediaWiki-Redirection-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">Si nous n'avons aucun site dans l'i-bay <span style="color:red">Primary</span> et que nous spécifions seulement [http://FQDN_ou_ip/ http://<span style="color:red">FQDN_ou_ip/</span>] sans spécifier <span style="color:DarkMagenta">wiki</span>, nous verrons s'afficher le contenu du fichier par défaut, <code>index.htm</code>, sous <code>/home/e-smith/files/ibays/<span style="color:red">Primary</span>/html</code>.</span>
<br clear=all>

<!-- ########################################################################### -->

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

Contenu du répertoire après les commandes: <code>signal-event post-upgrade ; signal-event reboot</code>.
# ls -als /home/e-smith/files/ibays/<span style="color:red">Primary</span>/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 <span style="color:red">index.htm</span>


[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Pour remédier à la situation, nous allons créer un fichier <code>.htaccess</code> qui redirigera tous les accès à <span style="color:red">Primary</span> ''(http://FQDN_ou_IP/)'' vers l'i-bay <span style="color:DarkMagenta">wiki</span>.


=== BD de comptes ===

On ajuste les propriétés de la BD de comptes pour l'i-bay <span style="color:red">Primary</span>.

* Permettre à Apache de lire notre futur fichier <code>.htaccess</code> de l'i-bay <span style="color:red">Primary</span>.
# db accounts setprop <span style="color:red">Primary</span> AllowOverride all


* Permettre à Apache de suivre les <code>liens symboliques</code> des répertoires de l'i-bay <span style="color:red">Primary</span>.
# db accounts setprop Primary FollowSymLinks enabled


* Défendre à Apache d'afficher le contenu des répertoires.
# db accounts setprop <span style="color:red">Primary</span> Indexes disabled


On signale les modifications pour qu'elles deviennent permanentes.
# signal-event ibay-modify <span style="color:red">Primary</span>


On vérifie.
# db accounts show <span style="color:red">Primary</span>

<span style="color:red">Primary</span>=ibay
<span style="color:red">AllowOverride=all</span>
CgiBin=enabled
<span style="color:red">FollowSymLinks=enabled</span>
Group=shared
<span style="color:red">Indexes=disabled</span>
Modifiable=no
Name=Primary i-bay
PasswordSet=no
Passwordable=no
PublicAccess=global
Removable=no
UserAccess=wr-admin-rd-group


=== Création du fichier .htaccess ===

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Le fichier <code>.htaccess</code>, si présent dans le répertoire racine, est le premier fichier à être lu lors de l'accès à un site Web.


[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

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

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} <span style="color:DarkMagenta">192.168.1.11</span> [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^''(.*)''$ /wiki/$1 [L]

EOT

On vérifie.
# cat /home/e-smith/files/ibays/Primary/html/.htaccess

<nowiki>##### </nowiki> <nowiki>***********************</nowiki>
<nowiki># Pour rediriger tout le traffic, qui arriverait dans la racine de l'i-bay Primary,</nowiki>
<nowiki># vers l'i-bay wiki.</nowiki>
<nowiki>#</nowiki>
<nowiki>#</nowiki> Pour un domaine FQDN, changer "<span style="color:DarkMagenta">192.168.1.11</span>" par "mon_domaine.com" (sans guillemets).
<nowiki>#</nowiki>

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} <span style="color:DarkMagenta">192.168.1.11</span> [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^''(.*)''$ /wiki/$1 [L]


On ajuste le propriétaire et le groupe du fichier <code>.htaccess</code> ''(admin:shared pour <span style="color:red">Primary</span> et <span style="color:blue">admin:www</span> pour toutes les autres i-bays)''.
# chown admin:shared /home/e-smith/files/ibays/<span style="color:red">Primary</span>/html/.htaccess


On ajuste les droits.
# chmod 640 /home/e-smith/files/ibays/<span style="color:red">Primary</span>/html/.htaccess


On vérifie.
# ls -als /home/e-smith/files/ibays/<span style="color:red">Primary</span>/html/.htaccess

4 -<span style="color:red">rw-r-----</span> 1 <span style="color:red">admin shared</span> 377 26 nov. 05:35 /home/e-smith/files/ibays/<span style="color:red">Primary</span>/html/.htaccess


=== Vérification de la redirection ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-141-MediaWiki-Redirection-C.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-140-MediaWiki-Redirection-B.png|500px|border]]
|}
* <span style="font-family:Courier New;">On vidange l'historique de notre navigateur.</span>
* <span style="font-family:Courier New;">''Effacer maintenant''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-142-MediaWiki-Redirection-D.png|600px|border]]
|}
* <span style="font-family:Courier New;">On se rend à l'URL [http://192.168.1.11/ http://<span style="color:DarkMagenta">192.168.1.11</span>] et on est automatiquement redirectionné vers la page d'accueil de notre MediaWiki.</span>
<br clear=all>

<!-- ########################################################################### -->

=== 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.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-144-MediaWiki-Redirection-F.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-143-MediaWiki-Redirection-E.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Domaines''<span style="color:red"> &nbsp;>&nbsp; </span>''Modifier''.</span>
* <span style="font-family:Courier New;">- i-bay = ''MediaWiki''.<br>- Serveurs DNS du domaine = ''Résolu localement''<br>- ''Modifier''.</span>


[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;<span style="font-family:Courier New;">Pour les "Serveurs DNS du domaine", il faut toujours utiliser <u>"Serveurs DNS de l'Internet" pour un site dans l'i-bay <span style="color:red">Primary</span></u> et "Résolu localement" pour tous les sites dans une autre i-bay, qu'ils aient un domaine FQDN ou non.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-146-MediaWiki-Redirection-H.png|450px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-145-MediaWiki-Redirection-G.png|350px|border]]
|}
* <span style="font-family:Courier New;">On s'assure du succès de l'opération.</span>
* <span style="font-family:Courier New;">- On entre [https://www.micronator-101.com https://www.<span style="color:DarkMagenta">micronator-101.com</span>].<br>- La page d'accueil de notre site s'affiche.<br><br><br><span style="color:red">•</span> Le nom de l'i-bay n'apparaît plus dans l'URL.<br><span style="color:red">•</span>&nbsp;[[Image:Icone-NoteAPT.png|25px]]&nbsp;Il n'est plus nécessaire d'utiliser le fichier <code>.htaccess</code> dans l'i-bay Primary.</span>
<br clear=all>

<!-- ########################################################################### -->

<center><span style="font-size:120%">'''Tout fonctionne correctement.'''</span></center>


== Répertoires spéciaux à sauvegarder ==

''Référence'': [https://wiki.contribs.org/Backup_with_dar#Adding.2FExcluding_Directories_and_Files_from_the_backup_list Adding/Excluding Directories and Files from the backup list].

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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 <code>/etc</code> ne sont pas tous inclus dans la sauvegarde standard du Serveur SME. Le répertoire <code>/opt</code> 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'''

* <code>/opt</code> → répertoires des collections.
* <code>/etc/dehydrated</code> → 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<span style="color:red">-------</span> 2 <span style="color:red">root root</span> 4096 18 juin 15:03 /etc/e-smith/templates-custom/etc/dar/<span style="color:red">DailyBackup.dcf</span>


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

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Contrairement à ce qui est décrit dans la Contrib, il faut aussi utiliser <code>--go-into</code> pour les fichiers.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

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

<nowiki># Répertoires</nowiki>
<span style="color:red">--go-into opt</span>

<nowiki># Fichiers</nowiki>
<nowiki># Décommenter si un certificat Let's Encrypt est utilisé par le Serveur SME.</nowiki>
<span style="color:DarkMagenta"># --go-into etc/dehydrated
# --go-into usr/bin/dehydrated
# --go-into usr/bin/dehydrated_hooks
# --go-into usr/bin/dehydrated_revoke</span>

EOT

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Il n'y a pas de caractère " <span style="color:red">'''/'''</span> " ''(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

<nowiki>#</nowiki>
<nowiki># Indique à la sauvegarde standard du Serveur SME d'inclure les fichiers et</nowiki>
<nowiki># répertoires/sous-répertoires dans la sauvegarde standard.</nowiki>
<nowiki>#</nowiki>
<nowiki># Michel-André: 2018-11-28_12h38.</nowiki>

<nowiki># Répertoires</nowiki>
<span style="color:red">--go-into opt</span>

<nowiki># Fichiers</nowiki>
<nowiki># Décommenter si un certificat Let's Encrypt est utilisé par le Serveur SME.</nowiki>
<span style="color:DarkMagenta"># --go-into etc/dehydrated
# --go-into usr/bin/dehydrated
# --go-into usr/bin/dehydrated_hooks
# --go-into usr/bin/dehydrated_revoke</span>

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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/<span style="color:red">DailyBackup.dcf</span>


On vérifie que le répertoire ait bien été incorporé dans <code>DailyBackup.dcf</code>.
# cat /etc/dar/<span style="color:red">DailyBackup.dcf</span> | grep <span style="color:DarkGreen">opt</span>

<span style="color:blue">--go-into</span> <span style="color:DarkGreen">opt</span>


'''Lancement de la sauvegarde'''

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

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Autrement, on peut utiliser la commande ci-dessous pour lancer immédiatement une sauvegarde.

<u>Il faut que les sauvegardes soient activées</u> pour utiliser cette commande.
# /sbin/e-smith/<span style="color:red">do_backupwk</span>

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;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/<span style="color:red">workstation-backup-dar DailyBackup</span>
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 ~]#


[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;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 " <span style="color:red">&</span> " ''(sans guillemets)'' à la fin de la ligne de commande <u>pour une exécution en arrière-plan</u>.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>#</nowiki> /sbin/e-smith/do_backupwk <span style="color:red">&</span><br>
<nowiki>&nbsp;</nowiki><br>
<span style="color:red"><nowiki>&nbsp;[1]</nowiki> 2360</span><br>
<nowiki>#</nowiki>
|}


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 <span style="color:red">%CPU</span> %MEM TIME+ COMMAND
<span style="color:red">2768</span> root 20 0 130m 5480 2124 R <span style="color:red">90.3</span> 0.1 0:02.35 <span style="color:red">dar</span>
1 root 20 0 19352 1536 1228 S 0.0 0.0 0:00.87 init
...

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;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<span style="color:red"> &nbsp;>&nbsp; </span>grep dar_manager

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


=== Vérification ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-147-MediaWiki-Sauvegarde-A-1.png|600px|border]]
|}
* <span style="font-family:Courier New;">- On vérifie le répertoire "Sauvegarde" sur le poste de travail.<br>- DAR a créé le répertoire <code>mediawiki.micronator-101.com</code> dans ce répertoire.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-149-MediaWiki-Sauvegarde-C-1.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-148-MediaWiki-Sauvegarde-B-1.png|400px|border]]
|}
* <span style="font-family:Courier New;">On examine le répertoire <code>D:\Sauvegarde\mediawiki.micronator-101.com</code>.</span>
* <span style="font-family:Courier New;">On examine le sous-répertoire <code>set1</code>.</span>
<br clear=all>

<!-- ########################################################################### -->

<center><span style="font-size:120%">'''La sauvegarde manuelle fonctionne correctement et a inclus le''(s)'' répertoire''(s)'' spécifié''(s)''.'''</span></center>


== Sauvegarde/restauration MySQL57 ==

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Les exemples de ce chapitre sont ceux de la version 0.2.0 / 2018-07-11 de ce document.


=== Description ===

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Nous créons un script Bash qui génère, dans le répertoire <code>/root/sauvegarde</code>, 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 <code>/root</code> au complet, inclura la sauvegarde quotidienne de MySQL57.


=== Répertoire de sauvegarde ===

Tout ce qui a trait à la sauvegarde de la BD <span style="color:DarkMagenta">MediaWikiBD</span> de MySQL57 se trouvera dans un répertoire dédié à cette fin uniquement: <code>/root/sauvegarde</code>.

* Le propriétaire et le groupe du répertoire seront <code>root:root</code>.
* 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<span style="color:red">------</span> 2 <span style="color:red">root root</span> 4096 12 juil. 12:31 /root/sauvegarde


=== Script de sauvegarde MySQL57 ===

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Ajuster le nom de la BD: <span style="color:red">NOM_BD_WIKI=</span><span style="color:DarkMagenta">MediaWikiBD</span>.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

cat <span style="color:red">'''>'''</span> /root/sauvegarde/sauvegarde-MySQL57.sh <<'EOT'
<nowiki>#!/bin/sh</nowiki>

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

<nowiki># vars</nowiki>
<span style="color:red">REP_SAUVEGARDE</span>=/root/sauvegarde
<span style="color:red">NOM_BD_WIKI</span>=<span style="color:DarkMagenta">MediaWikiBD</span>
<span style="color:red">FORMAT_FICHIER</span>=sql
<span style="color:red">SOCKET</span>=/var/lib/mysql/mysql57.sock

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

/opt/rh/rh-mysql57/root/usr/bin/mysqldump --socket=$<span style="color:red">SOCKET</span> \
--databases $<span style="color:red">NOM_BD_WIKI</span> > \
$<span style="color:red">REP_SAUVEGARDE</span>/$<span style="color:red">NOM_BD_WIKI</span>.$<span style="color:red">FORMAT_FICHIER</span>

<nowiki># On sécurise le fichier de $NOM_BD_WIKI.$FORMAT_FICHIER.</nowiki>
/bin/chmod 700 $<span style="color:red">REP_SAUVEGARDE</span>/$<span style="color:red">NOM_BD_WIKI</span>.$<span style="color:red">FORMAT_FICHIER</span> > /dev/null 2>&1

<nowiki># On écrit une entrée dans le journal du système.</nowiki>
/bin/logger "******************** MySQL57 ******************** "
/bin/logger "La sauvegarde de la BD $<span style="color:DarkMagenta">MediaWikiBD</span> est dans: $<span style="color:red">REP_SAUVEGARDE</span>/$<span style="color:red">NOM_BD_WIKI</span>.$<span style="color:red">FORMAT_FICHIER</span>"
/bin/logger "******************** MySQL57 ******************** "
exit 1

EOT


On vérifie les sept premières lignes du fichier.
# head -n7 /root/sauvegarde/sauvegarde-MySQL57.sh

<span style="color:red">#!/bin/sh</span>

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

<nowiki># vars</nowiki>
REP_SAUVEGARDE=/root/sauvegarde

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Il n'y a pas de ligne vide avant la ligne <span style="color:red">#!/bin/sh</span>. 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 <span style="color:red">root</span> uniquement.
# chmod 700 /root/sauvegarde/sauvegarde-MySQL57.sh


On vérifie.
# ls -ls /root/sauvegarde/sauvegarde-MySQL57.sh

4 -rwx<span style="color:red">------</span> 1 <span style="color:red">root root</span> 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 <code>cron</code>.
# /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 -<span style="color:red">rwx------</span> 1 <span style="color:red">root root</span> 5868544 12 juil. 12:47 /root/sauvegarde/<span style="color:red">MediaWikiBD.sql</span>

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Comme on le voit, seul root pourra manipuler le fichier de sauvegarde.


On vérifie que la sauvegarde contient <code>DROP TABLE</code> 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 <code>/bin/logger</code> a écrit dans le journal du serveur.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>&nbsp;</nowiki>...<br>
<nowiki>&nbsp;</nowiki>Jul 12 12:47:58 mediawiki root: ******************** MySQL57 ********************<br>
<nowiki>&nbsp;</nowiki>Jul 12 12:47:58 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql<br>
<nowiki>&nbsp;</nowiki>Jul 12 12:47:58 mediawiki root: ******************** MySQL57 ********************<br>
<nowiki>&nbsp;</nowiki>...
|}


=== Tâche cron ===

On va créer une tâche <code>cron</code> qui s'exécutera quotidiennement ''(0 2 * * *)'' à <span style="color:DarkMagenta">02h00</span> 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/<span style="color:red">templates-custom</span>/etc/crontab


'''Création de la tâche cron'''

On crée le fichier de la tâche <code>cron</code> et on y insère son contenu. Elle s'exécutera quotidiennement à <span style="color:DarkMagenta">02h00</span>.

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.

cat <span style="color:red">'''>'''</span> /etc/e-smith/templates-custom/etc/crontab/<span style="color:red">sauvegarde_MySQL57</span> <<'EOT'
SHELL=/bin/bash
MAILTO="<span style="color:DarkMagenta">michelandre@micronator.org</span>"
#
# Tâche cron qui lance <span style="color:blue">/root/sauvegarde/sauvegarde-MySQL57.sh</span> afin de sauvegarder la BD
# <span style="color:DarkMagenta">MediaWikiBD</span>. 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
#
<span style="color:DarkMagenta">0 2 * * *</span> root <span style="color:blue">/root/sauvegarde/sauvegarde-MySQL57.sh</span>

EOT

<span style="color:red">•</span> [[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;L'heure peut être choisie à votre entière discrétion.

<span style="color:red">•</span> [[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;L'usager <span style="color:DarkMagenta">michelandre@micronator.org</span> recevra un courriel seulement si une erreur est produite par la tâche <code>cron</code>.


On vérifie le contenu du fichier de la tâche.
# cat /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57

<span style="color:red">SHELL=/bin/bash</span>
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

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Il n'y a pas de ligne vide avant la ligne <span style="color:red">SHELL=/bin/bash</span>. 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 -<span style="color:red">rwx------</span> 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 <code>crond</code>.
# service crond restart

<span style="color:red">Arrêt</span> de crond&nbsp;: [ <span style="color:red">OK</span> ]
<span style="color:red">Démarrage</span> de crond&nbsp;: [ <span style="color:red">OK</span> ]


'''Vérification de la tâche cron'''

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

On change l'heure de la tâche.
sed -i 's/<span style="color:red">^0 2</span>/<span style="color:blue">\* \*</span>/' /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57


On vérifie.
# tail -n3 /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57

<nowiki>#</nowiki>
<nowiki>* * * * * root /root/sauvegarde/sauvegarde-MySQL57</nowiki>


On développe le gabarit personnalisé.
# expand-template /etc/crontab


On redémarre le démon <code>crond</code>.
# service crond restart

<span style="color:red">Arrêt</span> de crond&nbsp;: [ <span style="color:red">OK</span> ]
<span style="color:red">Démarrage</span> de crond&nbsp;: [ <span style="color:red">OK</span> ]


'''''Suivi'''''

On affiche l'heure actuelle.
# date

jeu. juil. 12 12:<span style="color:red">51</span>:23 EDT 2018


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

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


À <u>toutes les minutes</u>, on verra notre tâche s'afficher.

...
Jul 12 12:<span style="color:red">52</span>:01 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql
Jul 12 12:<span style="color:red">53</span>:02 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql
Jul 12 12:<span style="color:red">54</span>:01 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql
...


On arrête la commande <code>tail</code> avec [<span style="color:red">CTL - c</span>].

...
Jul 12 12:<span style="color:red">54</span>:01 mediawiki root: La sauvegarde de la BD MediaWikiBD est dans: /root/sauvegarde/MediaWikiBD.sql
<span style="color:red">^C</span>


On remet l'heure de la tâche <code>cron</code> à <span style="color:DarkMagenta">02h00</span>.
# sed -i 's/<span style="color:red">\* \* \* \* \* root</span>/<span style="color:blue">0 2 \* \* \* root</span>/' /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57


On vérifie.
# tail -n3 /etc/e-smith/templates-custom/etc/crontab/sauvegarde_MySQL57

<nowiki>#</nowiki>
<span style="color:red">0 2</span> * * * root /root/sauvegarde/sauvegarde-MySQL57.sh


On développe le gabarit personnalisé.
# expand-template /etc/crontab


On redémarre le démon <code>crond</code>.
# service crond restart

<span style="color:red">Arrêt</span> de crond&nbsp;: [ <span style="color:red">OK</span> ]
<span style="color:red">Démarrage</span> de crond&nbsp;: [ <span style="color:red">OK</span> ]


<center><span style="font-size:120%">'''Notre tâche <code>cron</code> pour la sauvegarde quotidienne de MySQL57 fonctionne correctement.'''</span></center>


=== 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.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;<u>Il faut que les sauvegardes soient activées</u> pour utiliser cette commande.
# /sbin/e-smith/<span style="color:red">do_backupwk</span>

[[Image:Icone-AsurveillerAPT-1.png|25px]]&nbsp;&nbsp;Comme on le voit ci-dessus, l'invite ne revient pas. Elle le fera seulement après la fin de <span style="color:red">do_backupwk</span>.


Avec une autre session PuTTY, on peut vérifier si la sauvegarde est en exécution.
# ps aux<span style="color:red"> &nbsp;>&nbsp; </span>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/<span style="color:red">workstation-backup-dar DailyBackup</span>
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


[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;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 " <span style="color:red">&</span> " ''(sans guillemets)'' à la fin de la ligne de commande pour une exécution en arrière-plan.

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki>#</nowiki> /sbin/e-smith/do_backupwk <span style="color:red">&</span><br>
<nowiki>&nbsp;</nowiki><br>
<span style="color:red"><nowiki>&nbsp;[1]</nowiki> 2360</span><br>
<nowiki>#</nowiki>
|}


On peut suivre la sauvegarde en utilisant l'utilitaire <code>top</code>.

# 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 <span style="color:red">98.6</span> 2.8 1:20.07 <span style="color:red">dar</span>
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 <span style="color:red">dar_manager</span>


'''Vérification'''

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-150-MediaWiki-MySQL57-A-1.png|600px|border]]
|}
* <span style="font-family:Courier New;">- On vérifie le répertoire "Sauvegarde" sur le poste de travail.<br>- DAR avait déjà créé le répertoire <code>mediawiki.micronator-101.com</code> dans ce répertoire.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-152-MediaWiki-MySQL57-C-1.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-151-MediaWiki-MySQL57-B-1.png|400px|border]]
|}
* <span style="font-family:Courier New;">On examine le répertoire <code>D:\Sauvegarde\mediawiki.micronator-101.com</code>.</span>
* <span style="font-family:Courier New;">On examine le sous-répertoire <code>set1</code>.</span>
<br clear=all>

<!-- ########################################################################### -->

=== Récupération de la sauvegarde MySQL57 ===

Pour vérifier que tout fonctionne correctement, on va récupérer le fichier <span style="color:DarkMagenta"><code>MediaWikiBD.sql</code></span> 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 <span style="color:DarkMagenta"><code>MediaWikiBD.sql</code></span>.
# cd /root/sauvegarde


On affiche le contenu.
# ls -ls

total 5736
5732 -rwx------ 1 root root 5868544 12 juil. 12:54 <span style="color:red">MediaWikiBD.sql</span>
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 <span style="color:red">MediaWikiBD.sql.original</span>


On vérifie.
# ls -ls

total 5736
5732 -rwx------ 1 root root 5868544 12 juil. 12:54 <span style="color:red">MediaWikiBD.sql.original</span>
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 https://<span style="color:DarkMagenta">192.168.1.11</span>/server-manager]

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-154-MediaWiki-MySQL57-E.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-153-MediaWiki-MySQL57-D.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Sauvegarde et restauration''<span style="color:red"> &nbsp;>&nbsp; </span>''Restauration sélective de fichier depuis un ordinateur distant''<span style="color:red"> &nbsp;>&nbsp; </span>''Exécuter''.</span>
* <span style="font-family:Courier New;">- On choisit ''la sauvegarde''.<br>- On entre le ''nom du fichier à récupérer'':<br><span style="color:DarkMagenta">''MediaWikiBD.sql''</span><span style="color:red"> &nbsp;>&nbsp; </span>''Exécuter''.</span>
<br clear=all>

<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-156-MediaWiki-MySQL57-G.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-155-MediaWiki-MySQL57-F.png|400px|border]]
|}
* <span style="font-family:Courier New;">On sélectionne le ''fichier à récupérer''<span style="color:red"> &nbsp;>&nbsp; </span>''Exécuter''.</span>
* <span style="font-family:Courier New;">Le fichier contenu dans la sauvegarde habituelle du Serveur SME a été récupéré et déposé à son emplacement original.</span>
<br clear=all>

<!-- ########################################################################### -->

On vérifie.
# ls -ls

total 11468
5732 -rwx------ 1 root root <span style="color:blue">5868544 12 juil. 12:54</span> <span style="color:red">MediaWikiBD.sql</span>
5732 -rwx------ 1 root root <span style="color:blue">5868544 12 juil. 12:54</span> 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.

<!-- ########################################################################### -->
{| style="width: 90%; background-color:#ffffff;" align="center"
|- style="vertical-align:top;"
|[[Image:SME-201.2-157-MediaWiki-MySQL57-H.png|center|top|500px|border]]
||[[Image:SME-201.2-158-MediaWiki-MySQL57-I.png|center|top|500px|border]]
|}
<!-- ########################################################################### -->


'''Restauration'''

On lance la restauration.
# /opt/rh/rh-mysql57/root/usr/bin/mysql --socket=/var/lib/mysql/mysql57.sock <span style="color:DarkMagenta">MediaWikiBD</span> <span style="color:red"><</span> /root/sauvegarde/<span style="color:DarkMagenta">MediaWikiBD.sql</span>


=== Vérification ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-201.2-159-MediaWiki-MySQL57-J.png|700px|border]]
|}
* <span style="font-family:Courier New;">- On rafraîchit la page de notre fureteur et on vérifie la page d'acceuil.<br>- La ligne supprimée est de retour.</span>
<br clear=all>

<!-- ########################################################################### -->

<center><span style="font-size:120%">'''La sauvegarde et la restauration fonctionnent parfaitement.'''</span></center>

<!-- ########################################################################### -->
{{ParticularitesDeCeDocument}}
<!-- ########################################################################### -->
{{SME-101-Transclusion}}

----
<references/>

[[Category:Howto]] [[Category:Howto/fr]]
2,785

edits

Navigation menu