Outils pour utilisateurs

Outils du site


nethserver_201_cahier_03_mediawiki

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
nethserver_201_cahier_03_mediawiki [2019-08-14 21:31] michelandrenethserver_201_cahier_03_mediawiki [2025-01-12 19:30] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +\\ 
 +[[cours_nethserver_101|{{ Images_Cahier-201-03-000.png?650 }}]]
 +\\ 
 +====== Description générale ======
  
 +===== Description générale =====
 +
 +Ce document décrit l'installation et la configuration de **MediaWiki** de même que les extensions **Semantic MediaWiki** //(SMW)// et **CharInsert** sur un Serveur NethServer-7.6.1810:
 +
 +Ce document utilise le Serveur NethServer du [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: //Création d'un Serveur NethServer virtuel// du "Cours NethServer-101".
 +
 +===== But de ce cahier =====
 +
 +{{ Images_Cahier-201-03-004.png?450 }}
 +\\ 
 +
 +===== 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 //MariaDB//, //MySQL// ou //PostgreSQL//. C'est un logiciel LIBRE distribué selon les termes de la GPL.
 +
 +===== Document de référence =====
 +
 +Working with MediaWiki par Yaron Koren  ©2012 by Yaron Koren. [[http://workingwithmediawiki.com/book/|http://workingwithmediawiki.com/book/]]
 +
 +===== Cours NethServer-101 =====
 +
 +Le //Cours NethServer-101//, se voulant une base solide pour la création d'un site de **Commerce en ligne**, comprend plusieurs cahiers:
 +
 +  - [[nethserver_101_cahier_01_linux|Cahier-101-01]]: -> Les bases de Linux.
 +  - [[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis|Cahier-101-02]]: -> Installation et configuration des logiciels prérequis sur le poste de travail.
 +  - [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-101-03]]: -> Création d'un Serveur NethServer virtuel.
 +  - [[nethserver_101_cahier_04_local_certificat_let_encrypt|Cahier-101-04]]: -> Serveur NethServer LOCAL & Let's Encrypt.
 +  - [[nethserver_101_cahier_05_vdsl_fqdn_internet_et_nethserver|Cahier-101-05]]: -> FAI, modem VDSL, domaine FQDN(( **FQDN**: Dans le //DNS//, un Fully Qualified Domain Name //(FQDN, ou nom de domaine complètement qualifié)// est un nom de domaine qui révèle la position absolue d'un nœud dans l'arborescence //DNS// en indiquant tous les domaines de niveau supérieur jusqu'à la racine. On parle également de domaine absolu, par opposition aux domaines relatifs. Par convention, le //FQDN// est ponctué par un point final.\\ 
 +//Référence:// [[https://fr.wikipedia.org/wiki/Fully_qualified_domain_name|https://fr.wikipedia.org/wiki/Fully_qualified_domain_name]]. \\ \\ )) et Serveur NethServer physique.
 +  - [[nethserver_101_cahier_06_nethserver_wordPress|Cahier-101-06]]: -> Installation de WordPress.
 +  - [[nethserver_101_cahier_07_nethserver_wordPress_wordfence|Cahier-101-07]]: -> Installation de l'extension de sécurité Wordfence.
 +  - [[nethserver_101_cahier_08_woocommerce_paypal_stripe|Cahier-101-08]]: -> WooCommerce, comptes chez Stripe et   PayPal pour les paiements en ligne.
 +  - [[nethserver_101_cahier_09_duplicator_migration|Cahier-101-09]]: -> Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator.
 +  - [[nethserver_101_cahier_10_mandataire_inverse|Cahier-101-10]]: -> Serveur mandataire inversé.
 +  - [[nethserver_101_cahier_11_nethserver_backuppc|Cahier-101-11]]: -> Sauvegarde/restauration avec BackupPC.
 +
 +==== Cours NethServer-201 ====
 +
 +Le //Cours NethServer-201// décrit l'installation et la configuration d'applications sur un //Serveur NethServer//.
 +
 +  - [[nethserver_201_cahier_01_nethserver_et_dolibarr|Cahier-201-01]]: -> Dolibarr.
 +  - [[nethserver_201_cahier_02_odoo_12|Cahier-201-02]]: -> Odoo-12.
 +  - [[nethserver_201_cahier_03_mediawiki|Cahier-201-03]]: -> MediaWiki.
 +  - [[nethserver_201_cahier_04_dokuwiki|Cahier-201-04]]: -> DokuWiki.
 +  - [[nethserver_201_cahier_05_moodle|Cahier-201-05]]: -> Moodle.
 +  - [[nethserver_201_cahier_06_proxmox|Cahier-201-06]]: -> Proxmox.
 +  - [[nethserver_201_cahier_07_flectra|Cahier-201-07]]: -> Flectra.
 +  - [[nethserver_201_cahier_08_self_service_password|Cahier-201-08]]: -> Self Service Password.
 +
 +==== Cours NethServer-301 ====
 +
 +Le //Cours NethServer-301// décrit l'annuaire //Active Directory// roulant sur un //Serveur NethServer//.
 +
 +  - [[nethserver_301_cahier_01_RSAT|Cahier-301-01]]: -> RSAT //(Remote Server Administration Tools)//.
 +  - [[nethserver_301_cahier_02_active_directory|Cahier-301-02]]: -> NethServer et migration de //LDAP// vers //Active Directory//.
 +  - [[nethserver_301_cahier_03_self_service_password_active_directory|Cahier-301-03]]: -> Active Directory & Self Service Password.
 +  - [[nethserver_301_cahier_04_ad_jonction_de_stations|Cahier-301-04]]: -> Active Directory & jonction de stations.
 +
 +
 +===== Particularités de ce document =====
 +
 +==== Notes au lecteur ====
 +
 +<nowiki>*</nowiki> Les captures d'écrans ne sont que des références.\\
 +<nowiki>**</nowiki> Les informations écrites ont préséance sur celles retrouvées dans les captures d'écrans. Veillez vous référer aux différents tableaux lorsque ceux-ci sont présents.\\ 
 +<nowiki>***</nowiki> Une capture d'écran avec une accentuation en magenta indique qu'il faut remplacer cette distinction par vos propres paramètres ou implique un choix laissé à votre appréciation.
 +
 +==== Conventions ====
 +
 +{{Images_icone-201-001_doigt.png?22}} Manipulation, truc ou ruse pour se tirer d'embarras.\\
 +{{Images_icone-201-002_Lumiere.png?25}} Une recommandation ou astuce.\\
 +{{Images_icone-201-003_Note.png?25}} Une note.\\
 +{{Images_icone-201-004_Triangle.png?25}} Une étape, note ou procédure à surveiller.\\
 +{{Images_icone-201-005_Non-termine.png?25}} Paragraphe non complété ou non vérifié.\\
 +{{Images_icone-201-006_Securite.png?25}} Danger pour la sécurité du système.
 +
 +Toutes les commandes à la console ou à travers //PuTTY// sont précédées d'une invite qui est toujours présente.
 +
 +<file>
 +[root@dorgee ~]# ping 10.10.10.75 -c1
 +
 +PING 10.10.10.75 (10.10.10.75) 56(84) bytes of data.
 +64 bytes from 10.10.10.75: icmp_seq=1 ttl=64 time=1.63 ms
 +
 +--- 10.10.10.75 ping statistics ---
 +1 packets transmitted, 1 received, 0% packet loss, time 0ms
 +rtt min/avg/max/mdev = 1.639/1.639/1.639/0.000 ms
 +[root@dorgee ~]#
 +</file>
 +
 +<WRAP box round>
 +<file>
 +Commande à exécuter si ce n'est déjà fait.
 +</file>
 +</WRAP>
 +
 +<WRAP box>
 +<file>
 +Commande indiquée à titre d'information seulement.
 +</file>
 +</WRAP>
 +\\ 
 +
 +====== À savoir ======
 +
 +===== Diagramme réseau =====
 +
 +{{ Images_Cahier-201-03-005.png?600 }}
 +\\ 
 +
 +===== Serveur NethServer-7.6.1810 =====
 +
 +Le //Serveur NethServer-7.6.1810// est un dérivé de la distribution //Linux CentOS// et est équivalent à //CentOS-7.6.1810//.
 +
 +==== dorgee.micronator.org ====
 +
 +Serveur passerelle pour les connexions à l'Internet.\\ 
 +Serveur //DHCP// pour tout le réseau LOCAL.
 +
 +==== tchana.micronator-dev.org ====
 +
 +Serveur virtuel LOCAL sous //VirtualBox// version 6.0.4 r128413 //(Qt5.6.2)//.
 +
 +==== Répertoire d'installation ====
 +
 +Nous installerons //MediaWiki// dans le répertoire ''/var/lib/nethserver/vhost/mediawiki''.
 +
 +===== Poste de travail =====
 +
 +Windows-8.1, on utilisera ce poste de travail pour tous ce document.
 +
 +===== Espace de noms =====
 +
 +//Référence:// http://fr.wikipedia.org/wiki/Aide:Espace_de_noms.
 +
 +Un //espace de noms// est un ensemble de pages ayant le même préfixe dans leur titre. Par exemple, la page //Aide:Espace// de noms appartient à l’espace de noms //Aide://. L’espace de noms par défaut est l’espace principal. Il rassemble les articles et forme l’encyclopédie proprement dite. Une définition plus large est présentée dans l'article //Espace de noms//.
 +
 +===== Éditeur de texte =====
 +
 +Ne modifiez pas les fichiers avec des éditeurs de documents tels Notepad, TextEdit ou autres qui ajoutent une marque d'ordre d'octets //(byte order marks)// aux fichiers et qui casse le programme PHP. Utilisez plutôt un éditeur de code tel vi, 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 les autres éditeurs de documents.
 +
 +==== Notepad++ ====
 +
 +Voir le [[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis|Cahier-02]]: //Installations & configurations des logiciels prérequis// du "Cours NethServer-1010" 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 logiciel, 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.
 +
 +//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]].
 +
 +===== Connexion sécuritaire =====
 +
 +Ce document décrit aussi la marche à suivre pour une connexion sécuritaire //(https)// vers MediaWiki.
 +
 +HTTPS //(Hyper Text Transfer Protocol Secure)// apparaît dans l'URL lorsqu'un site Web est sécurisé par un certificat SSL/TLS. Les détails du certificat, y compris l'autorité émettrice et la dénomination sociale du propriétaire du site Web, peuvent être consultés en cliquant sur l'icône du cadenas sur la barre du navigateur.
 +\\ 
 +\\ 
 +
 +====== Préparation de l'environnement de travail ======
 +
 +===== Configuration du poste de travail =====
 +
 +Voir la section __À savoir__ du 
 +[[nethserver_101_cahier_03_creation_un_serveur_virtuel#À savoir|Cahier-03]]
 +: //Création d'un Serveur NethServer virtuel// du "Cours NethServer-101".
 +
 +<WRAP column 60%>
 +==== Vérification ====
 +
 +**Centre Réseau et partage -> Modifier les paramètres de la carte ->** clac //(clic droit)// sur la carte Éthernet **-> Statut -> Détails**.
 +
 +● Nos deux adresses IP et nos deux passerelles son présentes.
 +
 +● **Fermer** toutes les fenêtre.
 +</WRAP>
 +<WRAP column 30%>
 +|{{ Images_Cahier-201-02-007.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 45%>
 +''C:\Windows\System32\drivers\etc\hosts''.
 +
 +Les CNAME de notre Serveur NethServer virtuel LOCAL sont présents.
 +</WRAP>
 +<WRAP column 45%>
 +|{{ Images_Cahier-201-02-008.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Installation d'un Serveur NethServer =====
 +
 +Voir le [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: //Création d'un Serveur NethServer virtuel// du "Cours NethServer-101".
 +
 +Pour un serveur virtuel de test, prendre un minimum de //8 Go// dynamiquement alloué __pour le disque principal__.
 +
 +==== Mise à jour du Serveur ====
 +
 +Avant de commencer quoi que ce soit, il est toujours préférable de mettre à jour le Serveur NethServer.
 +
 +==== Fail2ban & ClamAV ====
 +
 +Il est fortement recommandé d'installer //Fail2ban// et //ClamAV// pour mieux sécuriser notre futur site Odoo. L'installation de ces logiciels est décrite dans le [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: //Création d'un Serveur NethServer virtuel// du "Cours NethServer-101"..
 +
 +===== interface Web NethServer =====
 +
 +{{Images_icone-201-004_Triangle.png?25}} Il faut activer Javascript et les témoins //(cookies)//.\\ 
 +Depuis le poste de travail, sur le réseau LOCAL //10.10.10.0/24//, on accède à l'interface Web Nethserver [[http://10.10.10.75:980|http://10.10.10.75:980]].
 +
 +=== Login ===
 +
 +Lorsque vous parvenez à l'URL, vous serez invité à entrer votre nom d’utilisateur //(qui est obligatoirement root et son mot de passe)//. Entrez ce justificatif et cliquez sur **Login** afin d’être amené à l'interface Web Nethserver. L’écran du gestionnaire s’affiche.
 +
 +{{Images_icone-201-004_Triangle.png?25}} Le cadenas n'est pas //vert//, car si nous utilisons un nouveau Serveur NethServer, nous n'avons pas encore de certificat émis par une autorité de certification reconnue. Plus loin, nous réglerons cet inconvénient 
 +
 +<WRAP column 20%>
 +|{{ Images_Cahier-201-02-009.png?400 }}|
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-02-010.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +Si vous avez de la difficulté à vous connecter, vidanger le cache DNS du poste de travail et celui du navigateur Firefox.
 +
 +<WRAP column 55%>
 +<nowiki>-</nowiki> Sur le poste de travail, ouvrir un écran de commandes.\\ 
 +<nowiki>-</nowiki> **ifconfig  /flushdns**.
 +|{{ Images_Cahier-201-02-011.png?600 }}|
 +</WRAP>
 +<WRAP column 37%>
 +**Historique -> Supprimer l'historique ré­cent... -> tout -> Effacer maintenant**.
 +|{{ Images_Cahier-201-02-012.png?500 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +{{ Images_Cahier-201-02-013.png?600}}
 +==== Fournisseur des comptes ====
 +
 +**Configuration -> Fournisseur des comptes**.
 +
 +LDAP local est notre fournisseur de comptes.
 +<WRAP clear></WRAP>
 +\\
 +
 +{{ Images_Cahier-201-02-014.png?600}}
 +==== FQDN du serveur ====
 +
 +**Configuration -> DNS ->** onglet **Hôtes**.
 +
 +Le FQDN du serveur: //micronator-dev.org// est bien ce qu'il devrait être.\\ 
 +L'entrée //micronator-101.ddns.net// provient du [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: //Création d'un Serveur NethServer virtuel// du "Cours NethServer-101", on peut le supprimer pour ce document.
 +\\
 +
 +{{ Images_Cahier-201-02-015.png?600}}
 +==== Nom du serveur ====
 +
 +**Configuration -> Nom du serveur**.
 +<WRAP clear></WRAP>
 +\\
 +
 +{{ Images_Cahier-201-02-016.png?600}}
 +==== Paramètres d'accès à distance ====
 +
 +**Sécurité -> SSH**.
 +<WRAP clear></WRAP>
 +\\
 +
 +{{ Images_Cahier-201-02-017.png?600}}
 +==== FTP ====
 +
 +**Configuration -> FTP ->** onglet **Configurer**.
 +
 +{{Images_icone-201-001_doigt.png?22}} Mediawiki utilise son propre logiciel FTP, il n'est donc pas nécessaire d'activer le service FTP sur le serveur.\\ 
 +__Nous ne recommandons pas d'activer ce service__, car il n'est pas sécuritaire. Pour le transfert de fichiers, il est préférable d'employer des utilitaires sécurisés tels que //WinSCP// ou //FileZilla//.
 +<WRAP clear></WRAP>
 +
 +{{ Images_Cahier-201-02-018.png?600}}
 +==== Serveurs DNS ====
 +
 +**Configuration -> Réseau ->** onglet **Serveur DNS**.
 +
 +Le serveur DNS secondaire peut être //8.8.8.8// ou //1.1.1.1//; le dernier étant plus rapide.
 +<WRAP clear></WRAP>
 +\\
 +
 +===== Ouverture d'une session PuTTY =====
 +
 +Les paramètres du serveur sont définis correctement et on peut utiliser PuTTY pour s'y loguer.
 +
 +Voir __PuTTY__ dans le 
 +[[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis#PuTTY|Cahier-02]]
 +: //Installations & configurations des logiciels prérequis// du "Cours NethServer-101".
 +
 +On se logue en tant que l'utilisateur __root__.
 +
 +<file>
 +login as: root
 +root@10.10.10.75's password: mot-de-passe-de-root
 +Last login: Thu May 16 09:58:33 2019 from 10.10.10.81
 +
 +************ Welcome to NethServer ************
 +
 +This is a NethServer installation.
 +
 +Before editing configuration files, be aware
 +of the automatic events and templates system.
 +
 +
 +          http://docs.nethserver.org
 +
 +***********************************************
 +[root@tchana ~]#
 +</file>
 +
 +==== Adresse IP ====
 +
 +On vérifie les adresses IP du serveur.
 +
 +<file>
 +[root@tchana ~]# ifconfig
 +
 +enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 +        inet 10.10.10.75  netmask 255.255.255.0  broadcast 10.10.10.255
 +        inet6 fe80::a00:27ff:fedd:6373  prefixlen 64  scopeid 0x20<link>
 +        ether 08:00:27:dd:63:73  txqueuelen 1000  (Ethernet)
 +        RX packets 680  bytes 63712 (62.2 KiB)
 +        RX errors 0  dropped 0  overruns 0  frame 0
 +        TX packets 634  bytes 260579 (254.4 KiB)
 +        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 +
 +enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 +        inet 192.168.1.75  netmask 255.255.255.0  broadcast 192.168.1.255
 +        inet6 fe80::a00:27ff:feda:1348  prefixlen 64  scopeid 0x20<link>
 +        ether 08:00:27:da:13:48  txqueuelen 1000  (Ethernet)
 +        RX packets 27919  bytes 26181152 (24.9 MiB)
 +        RX errors 0  dropped 0  overruns 0  frame 0
 +        TX packets 20591  bytes 5112156 (4.8 MiB)
 +        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 +
 +lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
 +        inet 127.0.0.1  netmask 255.0.0.0
 +        inet6 ::1  prefixlen 128  scopeid 0x10<host>
 +        loop  txqueuelen 1000  (Local Loopback)
 +        RX packets 2534  bytes 309622 (302.3 KiB)
 +        RX errors 0  dropped 0  overruns 0  frame 0
 +        TX packets 2534  bytes 309622 (302.3 KiB)
 +        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 +
 +[root@tchana ~]#
 +</file>
 +
 +==== Fail2ban ====
 +
 +On vérifie que le pare-feu //Fail2ban// est installé.
 +
 +<file>
 +[root@tchana ~]# rpm -qa | grep -i fail2ban
 +
 +fail2ban-firewalld-0.9.7-1.el7.noarch
 +fail2ban-server-0.9.7-1.el7.noarch
 +fail2ban-0.9.7-1.el7.noarch
 +fail2ban-sendmail-0.9.7-1.el7.noarch
 +nethserver-fail2ban-1.1.6-1.ns7.noarch
 +fail2ban-shorewall-0.9.7-1.el7.noarch
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie que Fail2ban roule sur le serveur.
 +
 +<file>
 +[root@tchana ~]# ps aux | grep -i fail2ban
 +
 +root      4586  1.2  0.5 1746708 22656 ?       Sl   12:05   0:28 /usr/bin/python2 -s /usr/bin/fail2ban-server -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid -x -b
 +root      7161  0.0  0.0 112728   984 pts/0    S+   12:44   0:00 grep --color=auto -i fail2ban
 +[root@tchana ~]#
 +</file>
 +
 +==== ClamAV ====
 +
 +Par défaut //ClamAV// est installé, mais partiellement, et s'occupe seulement du balayage des courriels.
 +
 +Dans le 
 +[[nethserver_101_cahier_03_creation_un_serveur_virtuel#ClamAV|Cahier-03]]
 +: //Création d'un Serveur NethServer virtuel// du "Cours NethServer-101", nous avons installé ClamAV qui s'occupe aussi du balayage du système de fichiers.
 +
 +On vérifie que l'antivirus ClamAV pour le système de fichiers est installé.
 +
 +<file>
 +[root@tchana ~]# rpm -qa | grep -i clamav
 +
 +clamav-scanner-systemd-0.101.2-1.el7.x86_64
 +clamav-lib-0.101.2-1.el7.x86_64
 +clamav-server-systemd-0.101.2-1.el7.x86_64
 +clamav-unofficial-sigs-5.6.2-7.el7.noarch
 +clamav-update-0.101.2-1.el7.x86_64
 +clamav-0.101.2-1.el7.x86_64
 +clamav-filesystem-0.101.2-1.el7.noarch
 +[root@tchana ~]#
 +</file>
 +
 +{{ Images_Cahier-201-02-019.png?600}}
 +**Configuration -> Scanner Antivirus ->** onglet **Clamscan**.
 +
 +ClamAV lancera un balayage complet du système à //**01h00**//.
 +<WRAP clear></WRAP>
 +\\
 +
 +===== Utilisateurs =====
 +
 +{{ Images_Cahier-201-02-020.png?600}}
 +==== Utilisateur michelandre ====
 +
 +**Gestion -> Utilisateurs et groupes ->** onglet **Utilisateurs**.
 +
 +L'utilisateur __michelandre__ a été créé dans le 
 +[[nethserver_101_cahier_03_creation_un_serveur_virtuel#Nouvel utilisateur|Cahier-03]]
 +: //Création d'un Serveur NethServer virtuel// du "Cours NethServer-101".
 +\\ 
 +
 +===== Fichier hosts du poste de travail =====
 +
 +{{ Images_Cahier-201-03-007.png?400}}
 +Nous sommes sur un réseau LOCAL et vu que nous n'avons pas de serveur DNS pour ce réseau, on ajoute des entrées ''mediawiki'' dans le fichier:\\ 
 +<WRAP centeralign>''C:\Windows\System32\drivers\etc\hosts''</WRAP>
 + du poste de travail afin qu'il puisse trouver l'adresse IP de notre serveur MediaWiki.\\ 
 +{{Images_Cahier-101-03-006.png?25}} Pour un serveur directement branché à l'Internet, cette procédure de modification du fichier ''hosts'' du poste de travail n'est pas nécessaire __s'il existe des CNAME mediawiki__ chez le régistraire du domaine.
 +<WRAP clear></WRAP>
 +\\ 
 +
 +====== Prérequis ======
 +
 +===== Collection PHP =====
 +
 +Version PHP actuelle pour notre Serveur NethServer-7.6-1810.
 +
 +<file>
 +[root@tchana ~]# php --version
 +
 +PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51)
 +Copyright (c) 1997-2013 The PHP Group
 +Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
 +[root@tchana ~]#
 +</file>
 +
 +Comme on le voit, notre version //5.4.16// de PHP est légèrement vieillotte.
 +
 +{{Images_icone-201-003_Note.png?25}} Nous allons installer la Collection PHP qui fournit une version plus récente tout en gardant installée la version originale.
 +
 +==== Collections de logiciels ====
 +
 +{{Images_icone-201-001_doigt.png?22}} Les développeurs de RedHat ont pensé qu'un inconvénient, avec entre autres la version 5 de PHP, allait survenir tôt ou tard et ont écrit les paquetages des //Collections//.
 +
 +Tous les //RPM// des Collections sont installés dans le répertoire ''/opt''; ce qui empêche toutes interférences ou conflits avec les installations par défaut.
 +
 +==== But de la Collection PHP ===
 +
 +Le but de la //Collection PHP// est d'installer //PHP-5.6//, //PHP-7.0//, //PHP-7.1//, //PHP-7.2// et //PHP-7.3// parallèlement à la version installée par défaut avec NethServer-7.6.1810, sans devoir supprimer ou modifier cette dernière. Cette Collection utilise les RPM du référentiel **remi** qui sont en fait, les mêmes que ceux sur le site Web officiel, mais ils ont l'avantage de fournir plus de choix. Cette Collection nécessite d'installer le référentiel **stephdl**.
 +
 +==== Prérequis pour l'installation de la Collection PHP ====
 +
 +//Référence:// [[https://wiki.nethserver.org/doku.php?id=php-scl|https://wiki.nethserver.org/doku.php?id=php-scl]].\\ 
 +Il faut installer les référentiels //stephdl// et //remi// pour pouvoir installer la //Collection PHP//.
 +
 +==== Référentiel stephdl ====
 +
 +//Référence:// [[https://wiki.nethserver.org/doku.php?id=stephdl_repository|https://wiki.nethserver.org/doku.php?id=stephdl_repository]].
 +
 +On vérifie si le référentiel **stephdl** est déjà installé.
 +
 +<file>
 +[root@tchana ~]# rpm -qa | grep nethserver-stephdl
 +
 +nethserver-stephdl-1.0.7-1.ns7.sdl.noarch
 +[root@tchana ~]#
 +</file>
 +
 +Si ce n'est déjà fait, on installe ce référentiel.
 +
 +<WRAP box round>
 +<file>
 +[root@tchana ~]# yum install -y  http://mirror.de-labrusse.fr/NethServer/7/x86_64/nethserver-stephdl-1.0.7-1.ns7.sdl.noarch.rpm
 +
 +...
 +Transaction Summary
 +============================================================================================
 +Install  1 Package
 +
 +Total size: 40 k
 +Installed size: 40 k
 +...
 +Installed:
 +  nethserver-stephdl.noarch 0:1.0.7-1.ns7.sdl
 +
 +Complete!
 +[root@tchana ~]#
 +</file>
 +</WRAP>
 +
 +Vérification.
 +
 +<WRAP box round>
 +<file>
 +[root@tchana ~]# rpm -qa | grep stephdl
 +
 +nethserver-stephdl-1.0.7-1.ns7.sdl.noarch
 +[root@tchana ~]#
 +</file>
 +</WRAP>
 +
 +==== Référentiel remi ====
 +
 +On vérifie si le référentiel **remi** est déjà installé.
 +
 +<file>
 +[root@tchana ~]# rpm -qa | grep remi
 +
 +remi-release-7.6-2.el7.remi.noarch
 +[root@tchana ~]#
 +</file>
 +
 +Si ce n'est déjà fait, on installe ce référentiel.
 +
 +<WRAP box round>
 +<file>
 +[root@tchana ~]# yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
 +
 +...
 +Transaction Summary
 +============================================================================================
 +Install  1 Package
 +
 +Total size: 19 k
 +Installed size: 19 k
 +...
 +Installed:
 +  remi-release.noarch 0:7.6-2.el7.remi
 +
 +Complete!
 +[root@tchana ~]#
 +</file>
 +</WRAP>
 +
 +On vérifie.
 +
 +<WRAP box round>
 +<file>
 +[root@tchana ~]# rpm -qa | grep remi
 +
 +remi-release-7.6-2.el7.remi.noarch
 +[root@tchana ~]#
 +</file>
 +</WRAP>
 +
 +==== Installation de la Collection PHP ====
 +
 +<file>
 +[root@tchana ~]# yum install -y nethserver-php-scl --enablerepo=stephdl
 +
 +...
 +Résumé de la transaction
 +============================================================================================
 +Installation   1 Paquet (+127 Paquets en dépendance)
 +
 +Taille totale des téléchargements : 47 M
 +Taille d'installation : 134 M
 +...
 +  Installation : scl-utils-20130529-19.el7.x86_64                                     1/128
 +...
 +  Installation : nethserver-php-scl-1.2.4-1.ns7.sdl.x86_64                          128/128
 +  Vérification : 1:enchant-1.6.0-8.el7.x86_64                                         1/128
 +...
 +  Vérification : php72-php-tidy-7.2.18-1.el7.remi.x86_64                            128/128
 +
 +Installé :
 +  nethserver-php-scl.x86_64 0:1.2.4-1.ns7.sdl
 +
 +Dépendances installées :
 +  enchant.x86_64 1:1.6.0-8.el7
 +...
 +  tcl.x86_64 1:8.5.13-8.el7
 +
 +Terminé !
 +[root@tchana ~]#
 +</file>
 +
 +==== Usage ====
 +
 +Normalement, l'interface Web devrait être complète et vous ne devriez pas devoir utiliser la ligne de commande. Si vous pensez que //Stéphane de Labrusse// pourrait améliorer les paramètres PHP en apportant plus d'options, veuillez le lui demander: //stephd arobas de-labrusse point fr//.
 +
 +Les réglages sont répartis à deux endroits.
 +
 +  - À la page **Gestion -> Hôtes virtuels**.\\ 
 +Là, après avoir créé un hôte virtuel, vous pouvez choisir la version que vous utiliserez pour l'//Ibay/virtualhost// //(par défaut, la version PHP d’Apache)//.\\ - Vu que NethServer utilise un script CGI pour gérer la version de PHP, vous ne pourrez pas ajuster les paramètres PHP avec le module //nethserver-phpsettings//; vous devez régler les paramètres à l'aide du fichier ''php.ini'' correspondant. Stéphane de Labrusse voulait coder quelque chose de "cool" afin que tous les paramètres ne soient pas basés uniquement sur des commandes de //BD…// Il a alors crée une page de configuration.
 +  -  À la page **Configuration -> Paramètres PHP**.\\ Là, vous pouvez choisir la version PHP que vous souhaitez utiliser __pour l’ensemble du serveur__.\\ - Lorsqu'Apache est le gestionnaire de PHP, vous pouvez alors définir les paramètres PHP avec le module //nethserver-phpsettings//. En d'autres termes, si vous souhaitez utiliser le module //nethserver-phpsettings// et que vous avez besoin d'une version spécifique de PHP, vous devez utiliser cette version __pour tout le serveur__. Bien sûr, vous pouvez revenir à la version par défaut en cas de problème avec une ancienne application Web. Dans d’autres parties de cette page, vous pouvez ajuster les paramètres PHP pour toutes les versions de PHP.
 +\\ 
 +
 +==== Répertoire d'installation ====
 +
 +{{Images_icone-201-003_Note.png?25}} Toutes les versions PHP de la Collection proviennent du référentiel **remi-safe** et sont installées dans le répertoire ''/opt/remi''.
 +
 +<file>
 +[root@tchana ~]# yum repolist | grep remi
 +
 +* remi-safe: mirror.team-cymru.com
 +remi-safe                   Safe Remi's RPM repository for Enterprise Lin  3 191
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie le répertoire ''/opt''.
 +
 +<file>
 +[root@tchana ~]# ls -ls /opt
 +
 +total 0
 +0 drwxr-xr-x. 7 root root 81 Jan  4 09:16 puppetlabs
 +0 drwxr-xr-x  7 root root 71 May 10 17:06 remi
 +0 drwxr-xr-x  2 root root  6 Oct 30  2018 rh
 +[root@tchana ~]#
 +</file>
 +
 +On affiche le répertoire ''/opt/remi''.
 +
 +<file>
 +[root@tchana ~]# ls -ls /opt/remi
 +
 +total 0
 +0 dr-xr-xr-x 3 root root 32 16 mai   13:03 php56
 +0 dr-xr-xr-x 3 root root 32 16 mai   13:03 php70
 +0 dr-xr-xr-x 3 root root 32 16 mai   13:03 php71
 +0 dr-xr-xr-x 3 root root 32 16 mai   13:03 php72
 +0 dr-xr-xr-x 3 root root 32 16 mai   13:03 php73
 +[root@tchana ~]#
 +</file>
 +
 +==== PHP72 par défaut après une connexion à la ligne de commande ====
 +
 +//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'une connexion à la console du Serveur NethServer.
 +
 +{{Images_icone-201-004_Triangle.png?25}} Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat > /etc/profile.d/activer-php72.sh <<'EOT'
 +#!/bin/bash
 +source /opt/remi/php72/enable
 +if [[ "$X_SCLS" != *php72* ]]; then
 +src="`scl enable php72 'echo $X_SCLS'`"
 +pkgs=(${src// / })
 +uniq=($(printf "%s\n" "${pkgs[@]}" | sort -u));
 +export X_SCLS="${uniq[@]}"
 +fi
 +EOT
 +
 +</file>
 +
 +On rend le fichier exécutable.
 +
 +<file>
 +[root@tchana ~]# chmod +x /etc/profile.d/activer-php72.sh
 +
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# ls -als /etc/profile.d/activer-php72.sh
 +
 +4 -rwxr-xr-x 1 root root 215 16 mai   13:11 /etc/profile.d/activer-php72.sh
 +[root@tchana ~]#
 +</file>
 +
 +=== Vérification si PHP72 est le défaut==
 +
 +{{Images_icone-201-004_Triangle.png?25}} On ferme la connexion PuTTY et on en ouvre une nouvelle.\\ 
 +On vérifie l'installation de la Collection.
 +
 +<file>
 +[root@tchana ~]# rpm -qa | grep scl-
 +
 +centos-release-scl-rh-2-3.el7.centos.noarch
 +centos-release-scl-2-3.el7.centos.noarch
 +nethserver-php-scl-1.2.4-1.ns7.sdl.x86_64
 +scl-utils-20130529-19.el7.x86_64
 +[root@tchana ~]#
 +</file>
 +
 +Collections installées.
 +
 +<file>
 +[root@tchana ~]# scl -l
 +
 +php56
 +php70
 +php71
 +php72
 +php73
 +[root@tchana ~]#
 +</file>
 +
 +Quel est le PHP par défaut?
 +
 +<file>
 +[root@tchana ~]# which php
 +
 +/opt/remi/php72/root/usr/bin/php
 +[root@tchana ~]#
 +</file>
 +
 +Quelle est sa version?
 +
 +<file>
 +[root@tchana ~]# php --version
 +
 +PHP 7.2.18 (cli) (built: Apr 30 2019 14:41:03) ( NTS )
 +Copyright (c) 1997-2018 The PHP Group
 +Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
 +[root@tchana ~]#
 +</file>
 +
 +Notre fichier ''activer-php72.sh'' fonctionne correctement.
 +\\ 
 +
 +=== Sauvegarde  du fichier d'activation ===
 +
 +On vérifie si le nom du fichier ''/etc/profile.d/activer-php72.sh'' est déjà présent dans le fichier d'inclusion de la sauvegarde des données: ''/etc/backup-data.d/custom.include'', sinon on l'insère.
 +
 +{{Images_icone-201-004_Triangle.png?25}} Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +NouvelleInclusion="/etc/profile.d/activer-php72.sh"
 +if grep -Fxq "$NouvelleInclusion" /etc/backup-data.d/custom.include
 +then
 +    # L'entrée a été trouvée dans custom.include
 +    echo -e "\nLe fichier custom.include contient déjà l'entrée:\n$NouvelleInclusion \n"
 +else
 +    # L'entrée n'a pas été trouvée dans custom.include
 +    echo -e "$NouvelleInclusion" >> /etc/backup-data.d/custom.include
 +    echo -e "\nL'entrée: $NouvelleInclusion a été ajoutée\n"
 +fi
 +
 +
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# cat /etc/backup-data.d/custom.include | grep /etc/profile.d/activer-php72.sh
 +
 +/etc/profile.d/activer-php72.sh
 +[root@tchana ~]#
 +</file>
 +
 +Ci-dessus, il n'y a pas de ligne vide avant __/etc/profile.d/activer-php72.sh__. Nous en avons inséré une afin de faciliter la copie de la commande.
 +\\ 
 +
 +==== Mise à jour de la Collection ====
 +
 +NethServer-7.6.1810  utilise intrinsèquement le référentiel //remi-safe//. Ce qui signifie qu'il est activé par défaut. Lancez simplement la commande suivante pour mettre à jour la Collection PHP:
 +
 +<file>
 +[root@tchana ~]# yum update -y nethserver-php-scl --enablerepo=stephdl
 +
 +Loaded plugins: changelog, fastestmirror, nethserver_events
 +Loading mirror speeds from cached hostfile
 + * ce-base: it.centos.contactlab.it
 + * ce-extras: it.centos.contactlab.it
 + * ce-updates: it.centos.contactlab.it
 + * epel: epel.mirror.constant.com
 + * nethforge: mirror.nethserver.org
 + * nethserver-base: mirror.nethserver.org
 + * nethserver-updates: mirror.nethserver.org
 + * remi-safe: rpms.remirepo.net
 +No packages marked for update
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_icone-201-004_Triangle.png?25}} S'il y avait une mise à jour, elle serait installée avec cette commande.\\ 
 +{{Images_icone-201-003_Note.png?25}} La mise à jour du Serveur NethServer s'occupe aussi de celle de la Collection PHP.
 +\\ 
 +
 +==== Ajustement des paramètres PHP ====
 +
 +Les valeurs de certains paramètres de PHP ne sont pas suffisants pour certains ajouts. Ces paramètres sont: **''MemoryLimit''**, **''PostMaxSize''** et **''UploadMaxFilesize''**. Il faut les ajuster.
 +
 +Affichage des paramètres par défaut.
 +
 +<file>
 +[root@tchana ~]# config show php72
 +
 +php72=configuration
 +    AllowUrlFopen=On
 +    ExposePhp=0
 +    MaxExecutionTime=30
 +    MaxFileUpload=20
 +    MaxInputTime=60
 +    MemoryLimit=128
 +    PostMaxSize=20
 +    UploadMaxFilesize=10
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_icone-201-001_doigt.png?22}} Il faut obligatoirement que le paramètre ''PostMaxSize'' soit plus grand que celui de ''UploadMaxFilesize''. Si on modifie l'un, il faut vérifier l'autre pour que la correspondance des grandeurs soit respectée.
 +\\ 
 +
 +{{Images_icone-201-004_Triangle.png?25}} Nous allons ajuster: ''MemoryLimit'' //(250M)// **>** ''PostMaxSize'' //(100M)// **>** ''UploadMaxFilesize'' //(75M)//.
 +\\ 
 +
 +=== MemoryLimit ===
 +
 +Chaque fois qu'un client fait une requête au serveur Web, PHP génère un processus PHP. Le travail de ce processus est de générer du code HTML qu'il envoie au client. Le processus fournit un temps d'exécution à un script qui crée la réponse à la requête. La limite de mémoire ''MemoryLimit'' est la quantité maximale de mémoire que ce processus peut utiliser. Si la limite est atteinte ou dépassée, le processus échoue et Apache signale une erreur //HTTP 500//.
 +
 +=== PostMaxSize ===
 +
 +Le paramètre ''PostMaxSize'' définit la taille maximale autorisée pour les données d'un //post//. Ce paramètre affecte également le téléchargement de fichiers. Pour télécharger des fichiers volumineux, cette valeur doit absolument être toujours supérieure à ''UploadMaxFilesize''.
 +
 +<WRAP column 30%>
 +=== UploadMaxFilesize ===
 +
 +Pour certaines extensions telles que WooCommerce, WordPress doit autoriser le téléversement de fichiers et la grandeur de ceux-ci ne peut dépasser la limite définie par le paramètre ''UploadMaxFilesize'' de PHP.\\
 +La limite ci-contre, est celle de WordPress.
 +</WRAP>
 +<WRAP column 60%>
 +|{{ Images_Cahier-201-02-200.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 30%>
 +=== Version PHP par défaut ===
 +
 +On définit la version PHP par défaut pour Apache.
 +
 +**Configuration -> Paramètres PHP ->** onglet **Version PHP Apache ->** cliquer  **Php72 SCL Version -> SOUMETTRE**.
 +</WRAP>
 +<WRAP column 60%>
 +|{{ Images_Cahier-201-02-201.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 30%>
 +=== Ajustements des paramètres de la version PHP-7.2 ===
 +
 +Onglet **Php V7.2 SCL**\\
 +Ajuster tel que ci-contre //(250M - 100M - 75M)//\\ 
 +**-> SOUMETTRE**.
 +
 +{{Images_icone-201-006_Securite.png?25}} //**Allow PHP access to remote files**// est un bris de sécurité.
 +</WRAP>
 +<WRAP column 60%>
 +|{{ Images_Cahier-201-02-202.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 30%>
 +Onglet **Version par défaut de PHP**\\ 
 +Ajuster tel que ci-contre //(250M - 75M - 75M)//\\ 
 +**-> SOUMETTRE**.\\
 +
 +{{Images_icone-201-006_Securite.png?25}} //**Autoriser l'accès PHP aux fichiers distants**// est un bris de sécurité.
 +</WRAP>
 +<WRAP column 60%>
 +|{{ Images_Cahier-201-02-203.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +=== Vérifications à la ligne de commande ===
 +
 +''MemoryLimit''
 +
 +<file>
 +[root@tchana ~]# cat /etc/opt/remi/php72/php.ini | grep -i Memory_Limit
 +
 +memory_limit                           = 250M
 +[root@tchana ~]#
 +</file>
 +
 +''PostMaxSize''
 +
 +<file>
 +[root@tchana ~]# cat /etc/opt/remi/php72/php.ini | grep -i post_max_size
 +
 +post_max_size                          = 100M
 +[root@tchana ~]#
 +</file>
 +
 +''UploadMaxFilesize''
 +
 +<file>
 +[root@tchana ~]# cat /etc/opt/remi/php72/php.ini | grep -i upload_max_filesize
 +
 +upload_max_filesize                    = 75M
 +</file>
 +
 +{{Images_icone-201-004_Triangle.png?25}} Comme on le voit ci-dessus, les grandeurs maximales pour //PHP-7.2// sont maintenant de: ''MemoryLimit'' //(250M)// **>** ''PostMaxSize'' //(100M)// **>** ''UploadMaxFilesize'' //(75M)//.
 +\\ 
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_icone-201-002_Lumiere.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +\\ 
 +
 +<WRAP centeralign>**Les prérequis pour le Serveur NethServer sont tous remplis.**</WRAP>
 +\\
 +
 +===== Collection MariaDB 10.2 =====
 +
 +//Référence:// [[https://wiki.nethserver.org/doku.php?id=mariadb102|https://wiki.nethserver.org/doku.php?id=mariadb102]].\\ 
 +La //Collection rh-mariadb102// est une récente version stable de //MariaDB 10.2//. Cette Collection de logiciels offre aux utilisateurs de CentOS et RHEL une alternative à MySQL. Compatible binairement avec MySQL et pouvant remplacé ce dernier. Cette version fournit plusieurs nouvelles fonctionnalités et améliorations.
 +
 +==== Fin de vie ====
 +
 +//Référence:// [[https://mariadb.org/about/maintenance-policy/|https://mariadb.org/about/maintenance-policy/]].\\ 
 +La Foundation MariaDB peut décider de maintenir les versions sélectionnées au-delà de la période normale de 5 ans //(fin de vie)//(( **Fin de vie**//(////Eol - ////End of life////)//: Sedit en [[https://fr.wikipedia.org/wiki/Informatique|informatique]] d'un logiciel ou d'un produit en fin de vie que l'[[https://fr.wikipedia.org/wiki/Éditeur_de_logiciel|éditeur]] ou le [[https://fr.wikipedia.org/wiki/Constructeur_informatique|constructeur]] ne fait plus évoluer.\\ //Référence//: [[https://fr.wikipedia.org/wiki/Fin_de_vie_(produit)|https://fr.wikipedia.org/wiki/Fin_de_vie_(produit)]].
 +\\ \\ )) si leur utilisation est exceptionnellement répandue. Vu que la version MariaDB 5.5, incluse dans plusieurs distributions Linux importantes, jouissait d'une durée de vie jusqu'en //2017// //(date d'émission + 5ans)//, la Fondation s’est engagée à la maintenir jusqu’en //2020//.
 +
 +<WRAP column 45%>
 +<file>
 +[root@tchana ~]# rpm -qa | grep mariadb
 +
 +mariadb-server-5.5.60-1.el7_5.x86_64
 +mariadb-5.5.60-1.el7_5.x86_64
 +mariadb-libs-5.5.60-1.el7_5.x86_64
 +[root@tchana ~]#
 +</file>
 +Vu que la version //MariaDB 10.2// est assurée d'une durée de vie jusqu'en //2022//, nous avons décidé d'utiliser la //Collection MariaDB 10.2// au lieu de la version fournie par NethServer.
 +</WRAP>
 +<WRAP column 45%>
 +|{{ Images_Cahier-101-06-006.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Prérequis ====
 +
 +L'installation de //MariaDB 10.2// requière le référentiel ''stephdl'' que nous avons déjà installé. Voir le paragraphe [[nethserver_101_cahier_06_nethserver_wordPress#Référentiel stephdl]].
 +\\ 
 +
 +==== Installation de la Collection MariaDB 10.2 ====
 +
 +<file>
 +[root@tchana ~]# yum install -y --enablerepo=stephdl nethserver-rh-mariadb102
 +
 +...
 +Résumé de la transaction
 +============================================================================================
 +Installation   1 Paquet (+8 Paquets en dépendance)
 +
 +Taille totale des téléchargements : 27 M
 +Taille d'installation : 135 M
 +...
 +Installé :
 +  nethserver-rh-mariadb102.noarch 0:0.0.5-1.ns7.sdl
 +
 +Dépendances installées :
 +  rh-mariadb102.x86_64 0:3.0-5.el7
 +  rh-mariadb102-mariadb.x86_64 1:10.2.8-5.el7
 +  rh-mariadb102-mariadb-common.x86_64 1:10.2.8-5.el7
 +  rh-mariadb102-mariadb-config.x86_64 1:10.2.8-5.el7
 +  rh-mariadb102-mariadb-errmsg.x86_64 1:10.2.8-5.el7
 +  rh-mariadb102-mariadb-server.x86_64 1:10.2.8-5.el7
 +  rh-mariadb102-mariadb-server-utils.x86_64 1:10.2.8-5.el7
 +  rh-mariadb102-runtime.x86_64 0:3.0-5.el7
 +
 +Terminé !
 +[root@tchana ~]#
 +</file>
 +
 +=== Vérification ===
 +
 +<file>
 +[root@tchana ~]# scl -l
 +
 +php56
 +php70
 +php71
 +php72
 +php73
 +rh-mariadb102
 +[root@tchana ~]#
 +</file>
 +
 +La Collection a été installée dans le répertoire ''/opt/rh''.
 +
 +<file>
 +[root@tchana ~]# ls -als /opt/rh
 +
 +total 0
 +0 drwxr-xr-x  3 root root 27  8 févr. 19:07 .
 +0 drwxr-xr-x. 5 root root 46  8 févr. 17:44 ..
 +0 dr-xr-xr-x  3 root root 59  8 févr. 19:08 rh-mariadb102
 +[root@tchana ~]#
 +</file>
 +
 +On affiche les propriétés de la Collection.
 +
 +<file>
 +[root@tchana ~]# config show rh-mariadb102-mariadb
 +
 +rh-mariadb102-mariadb=configuration
 +    LocalNetworkingOnly=no
 +    MaxAllowedPacket=16M
 +    TCPPort=3312
 +    access=private
 +    status=enabled
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_Cahier-101-03-005.png?25}} Le port <wrap em>3312</wrap> est à retenir, car nous l'utiliserons dans le fichier de configuration ''LocalSettings.php'' de MediaWiki.
 +
 +On vérifie que le démon soit activé.
 +
 +<file>
 +[root@tchana ~]# systemctl list-unit-files | grep mariadb
 +
 +mariadb.service                               disabled
 +rh-mariadb102-mariadb.service                 enabled
 +rh-mariadb102-mariadb@.service                disabled
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie que le démon soit en exécution.
 +
 +<file>
 +[root@tchana ~]# ps aux | grep mariadb102
 +
 +mysql     3653  0.2  2.3 1764152 92156 ?       Ssl  19:38   0:01 /opt/rh/rh-mariadb102/root/usr/libexec/mysqld --basedir=/opt/rh/rh-mariadb102/root/usr
 +root      5716  0.0  0.0 112736   980 pts/0    S+   19:53   0:00 grep --color=auto mariadb102
 +[root@tchana ~]#
 +</file>
 +
 +==== Journal de la Collection ====
 +
 +Le journal pour cette Collection est situé dans le fichier ''/var/log/rh-mariadb102/mariadb.log''.
 +
 +<file>
 +[root@tchana ~]# ls -ls /var/log/rh-mariadb102/mariadb.log
 +
 +12 -rw-rw---- 1 mysql mysql 7404  8 févr. 19:38 /var/log/rh-mariadb102/mariadb.log
 +[root@tchana ~]#
 +</file>
 +
 +==== Usage ====
 +
 +{{Images_Cahier-101-03-004.png?25}} Il n'existe pas de page dédiée à cette Collection dans l'interface Web. Si vous en avez besoin d'une, installez //nethserver-phpmyadmin// puis, lancez ''signal-event nethserver-phpmyadmin-save''.
 +
 +Stéphane a créé plusieurs raccourcis pour faciliter l'utilisation de cette Collection depuis votre terminal.
 +
 +<WRAP box>
 +<file>
 +mysql102
 +mysqladmin102
 +mysqlbinlog102
 +mysqlcheck102
 +mysql_config_editor102
 +mysqld_multi102
 +mysqldump102
 +mysqlimport102
 +mysql_plugin102
 +mysqlshow102
 +mysqlslap102
 +</file>
 +</WRAP>
 +
 +Si vous voulez lancer //MariaDb 10.2// depuis votre terminal, utilisez la commande suivante.
 +
 +<WRAP box>
 +<file>
 +mysql102
 +</file>
 +</WRAP>
 +
 +==== Mise à jour de la Collection ====
 +
 +Le Serveur NethServer utilise le référentiel ''remi-safe'' et ce dernier est __activé par défaut__. Lancez simplement la commande suivante pour mettre à jour la //Collection MariaDB 10.2//:
 +
 +<file>
 +[root@tchana ~]# yum update -y rh-mariadb102-mariadb --enablerepo=stephdl
 +
 +Modules complémentaires chargés : changelog, fastestmirror, nethserver_events
 +Loading mirror speeds from cached hostfile
 + * ce-base: mirror.rackspace.com
 + * ce-extras: mirror.rackspace.com
 + * ce-updates: mirror.rackspace.com
 + * epel: mirror.texas3006.com
 + * nethforge: mirror.nethserver.org
 + * nethserver-base: mirror.nethserver.org
 + * nethserver-updates: mirror.nethserver.org
 + * remi-safe: mirror.bebout.net
 +No packages marked for update
 +[root@tchana ~]#
 +</file>
 +{{Images_Cahier-101-03-006.png?25}} S'il y avait une mise à jour, elle serait installée avec cette commande.
 +\\ 
 +\\ 
 +
 +===== Création de la base de données pour MediaWiki =====
 +
 +On crée la base de données //(dans notre exemple, on la nomme <wrap hi>MediaWikiBD</wrap>)//.
 +
 +<file>
 +[root@tchana ~]# mysqladmin102 CREATE MediaWikiBD
 +
 +[root@tchana ~]#
 +</file>
 +
 +On entre dans la console MariaDB 10.2.
 +
 +<file>
 +[root@tchana ~]# mysql102
 +
 +Welcome to the MariaDB monitor.  Commands end with ; or \g.
 +Your MariaDB connection id is 9
 +Server version: 10.2.8-MariaDB MariaDB Server
 +
 +Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
 +
 +Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 +
 +MariaDB [(none)]>
 +</file>
 +
 +On vérifie que la base de données ait bien été créée.
 +
 +<file>
 +MariaDB [(none)]> show databases;
 +
 ++--------------------+
 +| Database           |
 ++--------------------+
 +| MediaWikiBD        |
 +| information_schema |
 +| mysql              |
 +| performance_schema |
 +| phpmyadmin         |
 ++--------------------+
 +5 rows in set (0.01 sec)
 +
 +MariaDB [(none)]>
 +</file>
 +
 +==== Grant ====
 +
 +{{Images_Cahier-101-03-006.png?25}} 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__.
 +
 +On crée un usager pour notre base de données et on lui donne //(grant)// les permissions nécessaires.
 +
 +<file>
 +MariaDB [(none)]> grant all on MediaWikiBD.* to usager_MWBD@localhost identified by 'mdp_MediaWikiBD';
 +
 +Query OK, 0 rows affected (0.01 sec)
 +
 +MariaDB [(none)]>
 +</file>
 +
 +=== Paramètres de la BD pour MediaWiki ===
 +
 +Notez le nom de la base de données: <wrap hi>MediaWikiBD</wrap>, le nom de l'usager: <wrap hi>usager<nowiki>_</nowiki>MWBD</wrap> et son mot de passe: <wrap hi>mdp<nowiki>_</nowiki>MediaWikiBD</wrap>; ils serviront plus tard dans le fichier de configuration de MediaWiki.
 +
 +{{Images_Cahier-101-03-008.png?25}} __Il ne faut pas prendre nos paramètres, ils ne sont pas assez robustes__.
 +
 +Vous devez exécuter la commande ''FLUSH PRIVILEGES'' ou la commande en ligne ''mysqladmin102 flushprivileges'' pour indiquer à MariaDB 10.2 qu'il doit recharger les droits.
 +
 +<file>
 +MariaDB [(none)]> FLUSH PRIVILEGES;
 +
 +Query OK, 0 rows affected (0.00 sec)
 +
 +MariaDB [(none)]>
 +</file>
 +
 +On vérifie les droits de l'usager .
 +
 +<file>
 +MariaDB [(none)]> show grants for usager_MWBD@localhost;
 +
 ++--------------------------------------------------------------------------------------------------------------------+
 +| Grants for usager_MWBD@localhost                                                                                   |
 ++--------------------------------------------------------------------------------------------------------------------+
 +| GRANT USAGE ON *.* TO 'usager_MWBD'@'localhost' IDENTIFIED BY PASSWORD '*BEB075ED0A4C05AB21866C4BAA23F5284D8CF90A' |
 +| GRANT ALL PRIVILEGES ON `MediaWikiBD`.* TO 'usager_MWBD'@'localhost'                                               |
 ++--------------------------------------------------------------------------------------------------------------------+
 +2 rows in set (0,00 sec)
 +
 +MariaDB [(none)]>
 +</file>
 +
 +On quitte la console de MariaDB 10.2.
 +
 +<file>
 +MariaDB [(none)]> exit;
 +
 +Bye
 +[root@tchana ~]#
 +</file>
 +\\ 
 +
 +===== Installation de git =====
 +
 +On installe ''git'' qui nous aidera pour les mises à jour de notre version MediaWiki.
 +
 +<file>
 +[root@tchana ~]# yum install -y git
 +
 +...
 +Installation de     2 paquet(s)
 +
 +Taille totale des téléchargements : 4.6 M
 +Taille d'installation : 15 M
 +...
 +Installé:
 +  git.x86_64 0:1.7.1-9.el6_9
 +
 +Dépendance(s) installée(s) :
 +  perl-Git.noarch 0:1.7.1-9.el6_9
 +
 +Terminé !
 +[root@tchana ~]#
 +</file>
 +\\ 
 +
 +===== Création de l'hôte virtuel mediawiki =====
 +
 +**Gestion -> Hôtes virtuels -> CRÉER NOUVEAU ->** onglet **Général**.
 +
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-008.png?400 }}|
 +
 +//**Nom**//\\ 
 +On peut utiliser n'importe quel mot pour //**Nom**//, mais il est préférable d'utiliser **mediawiki**, car un nouveau répertoire sera créé pour le nouvel hôte virtuel et il portera ce nom.
 +
 +C'est dans ce répertoire qu'on installera MediaWiki.
 +
 +On entre les informations demandées.
 +
 +**-> SOUMETTRE**.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-009.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 46%>
 +\\ 
 +\\ 
 +<nowiki>-</nowiki> Onglet **Bibliothèque d'applications PHP**.\\ 
 +<nowiki>-</nowiki> On ajuste tel que ci-dessous.\\ 
 +<nowiki>-</nowiki> **SOUMETTRE**.
 +|{{ Images_Cahier-201-03-010.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +<nowiki>-</nowiki> Onglet **Paramètres PHP**.\\ 
 +<nowiki>-</nowiki> On ajuste tel que ci-dessous.\\ 
 +<nowiki>-</nowiki> //**Autoriser l'accès PHP aux fichiers distants**// est une <wrap em>__faille de sécurité__</wrap>.\\ 
 +<nowiki>-</nowiki> **SOUMETTRE**.
 +|{{ Images_Cahier-201-03-011.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +{{ Images_Cahier-201-03-012.png?700}}
 +On vérifie le résultat.
 +<WRAP clear></WRAP>
 +\\
 +
 +==== Vérification du répertoire mediawiki ====
 +
 +La création de l'hôte virtuel a produit un nouveau répertoire: ''/var/lib/nethserver/vhost/mediawiki''. Ce répertoire prend le //**Nom**// utilisé à la section [[nethserver_201_cahier_03_mediawiki#Création de l'hôte virtuel mediawiki]].
 +
 +<file>
 +[root@tchana ~]# ls -alsd /var/lib/nethserver/vhost/mediawiki
 +
 +0 drwxr-sr-x 2 ftp apache 6 May 25 18:12 /var/lib/nethserver/vhost/mediawiki
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_icone-201-003_Note.png?25}} On voit que le propriétaire est ''ftp'' au cas où on utiliserait le service FTP pour la manipulation des fichiers du site. MediaWiki a son propre processus de téléchargement et il n'a pas besoin d'un service FTP externe. De plus, avoir ''ftp'' comme propriétaire interfère avec certains logiciels tel WordPress. C'est pour cette raison qu'on n'active jamais FTP sur nos serveurs NethServer.
 +
 +On change le propriétaire.
 +
 +<file>
 +[root@tchana ~]# chown apache /var/lib/nethserver/vhost/mediawiki
 +
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# ls -alsd  /var/lib/nethserver/vhost/mediawiki
 +
 +0 drwxr-sr-x 2 apache apache 6 May 25 18:12 /var/lib/nethserver/vhost/mediawiki
 +[root@tchana ~]#
 +</file>
 +\\ 
 +
 +==== Création d'une entrée DNS pour l'hôte mediawiki ====
 +
 +{{ Images_Cahier-201-03-013.png?600}}
 +**Configuration -> DNS ->** onglet **Hôtes -> CRÉER NOUVEAU**.
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 46%>
 +{{Images_Cahier-101-03-006.png?25}} On coche //**wildcard dns record**// et ainsi on pourra accéder à l'hôte virtuel en utilisant tous ses CNAME dont un des plus importants est ''mail'' pour accéder à la messagerie électronique.
 +
 +Le //**Nom d'hôte**// est le FQDN qu'on utilisera pour accéder à notre MediaWiki.
 +
 +L'//**Adresse IP**// est celle de l'interface du réseau LOCAL du Serveur NethServer.
 +
 +**-> SOUMETTRE**.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-014.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +{{ Images_Cahier-201-03-015.png?700}}
 +On vérifie le résultat.
 +<WRAP clear></WRAP>
 +\\
 +
 +==== Configuration de la messagerie électronique ====
 +
 +Si on veut que MediaWiki puisse envoyer et recevoir des courriels, il faut configurer le domaine de l'hôte virtuel en tant que serveur de messagerie électronique.
 +
 +<WRAP column 46%>
 +**Configuration -> Courrier (Email) ->** onglet  **Domaines -> CRÉER NOUVEAU**.
 +|{{ Images_Cahier-201-03-016.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +<nowiki>-</nowiki> On entre les informations demandées.\\ 
 +<nowiki>-</nowiki> **SOUMETTRE**.
 +|{{ Images_Cahier-201-03-017.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +{{ Images_Cahier-201-03-018.png?700}}
 +On vérifie le résultat.
 +<WRAP clear></WRAP>
 +\\
 +
 +=== Création d'un alias pour l'utilisateur michelandre ===
 +
 +Il nous faut créer un alias de messagerie pour l'utilisateur __michelandre__ qui sera l'administrateur du site MediaWiki. Ainsi, il pourra recevoir des courriels en provenance de MediaWiki.
 +
 +<WRAP column 46%>
 +\\ 
 +\\
 +**Gestion -> Adresse mail ->** onglet  **Alias de messagerie -> CRÉER NOUVEAU**.
 +|{{ Images_Cahier-201-03-019.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +<nowiki>-</nowiki> On entre les informations demandées.\\ 
 +<nowiki>-</nowiki> //**Destination**//, on entre __michelandre__, on clique **A­jou­ter** et on choisit **michelandre@micronator-dev.org**.\\ 
 +<nowiki>-</nowiki> **SOUMETTRE**.
 +|{{ Images_Cahier-201-03-020.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +{{ Images_Cahier-201-03-021.png?700}}
 +On vérifie le résultat.
 +<WRAP clear></WRAP>
 +\\
 +
 +L'utilisateur __michelandre__ pourra voir ses courriels en se connectant à:
 +
 +- https://www.micronator-dev.org/webmail, ou
 +- https://www.mail.mediawiki.micronator-dev.org/webmail.
 +\\ 
 +
 +===== Redirection par le module Proxy inverse =====
 +
 +//Référence:// [[http://docs.nethserver.org/en/v7/ui/ProxyPass.html|http://docs.nethserver.org/en/v7/ui/ProxyPass.html]].
 +
 +On installe le module **Proxy Inverse** qui s'occupera de rediriger les accès à MediaWiki vers le bon endroit.
 +
 +==== Installation ====
 +
 +{{ Images_Cahier-201-03-022.png?600}}
 +**Administration -> Gestionnaire des logiciels ->** onglet **Disponible ->** cocher **Proxy inverse -> AJOUTER**.
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 30%>
 +\\ 
 +**APPLIQUER LES CHAN­GE­MENTS**.
 +|{{ Images_Cahier-201-03-023.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +**Recharger la page**.
 +|{{ Images_Cahier-201-03-024.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +Le nouveau menu //**Proxy inverse**// est disponible.
 +|{{ Images_Cahier-201-03-025.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Configuration du mandataire inversé ====
 +
 +<WRAP column 46%>
 +**Passerelle -> Proxy inverse ->** onglet **Hôtes virtuels -> CRÉER NOUVEAU**.\\ 
 +{{ Images_Cahier-201-03-026.png?200 }}
 +
 +On configure le Serveur NethServer en tant que mandataire inversé pour:\\ 
 +<WRAP centeralign>**www.mediawiki.micronator-dev.org**.</WRAP>
 +
 +<nowiki>-</nowiki> On entre les informations demandées.
 +
 +<nowiki>-</nowiki> **SOUMETTRE**.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-027.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 15%>
 +On vérifie le résultat.
 +</WRAP>
 +<WRAP column 77%>
 +|{{ Images_Cahier-201-03-028.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Vérification de la connexion redirigée et sécurisée ====
 +
 +{{Images_Cahier-101-03-003.png?22}} On __vidange l'historique__ de notre navigateur et le cache DNS du poste de travail, puis on s'assure que //java script// et les //témoins// soient activés.
 +
 +On se rend à l'URL https://www.mediawiki.micronator-dev.org.
 +
 +{{Images_icone-201-003_Note.png?25}} Si on utilisait seulement le protocole **http**, il serait transformé en **http<wrap em>s</wrap>**, car lors de la configuration à l'onglet //**Hôtes virtuels**//, nous avons coché: ☑ **Nécessite une connexion SSL chiffrée**.
 +
 +<WRAP column 46%>
 +C'est la page Web par défaut de NethServer qui s'affiche. C'est le comportement normal, car nous n'avons encore aucun fichier dans le répertoire de MediaWiki.
 +
 +{{Images_Cahier-101-03-006.png?25}} Même si le protocole affiché est http<wrap em>s</wrap>, la connexion n'est pas sécurisée, car le cer­ti­fi­cat ne contient pas le CNAME //mediawiki//. La prochaine section règlera ce problème.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-029.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +\\ 
 +\\ 
 +
 +====== Certificat Let's Encrypt ======
 +
 +===== CNAME =====
 +
 +{{Images_Cahier-101-03-006.png?25}} On installe un certificat Let's Encrypt selon la section __Certificat pour un domaine LOCAL__ du [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: //Création d'un Serveur NethServer virtuel// du "Cours NethServer-101".
 +
 +Il faut ajouter les CNAME **mediawiki** chez [[https://www.cloudflare.com/|https://www.cloudflare.com/]].
 +
 +<WRAP column 46%>
 +On clique **micronator-dev.org**.
 +|{{ Images_Cahier-201-03-030.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +**DNS**.
 +|{{ Images_Cahier-201-03-031.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 20%>
 +On ajoute les CNAME:
 +\\ 
 +
 +**mediawiki**
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +
 +**www.mediawiki** 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +
 +**mail.mediawiki**
 +</WRAP>
 +<WRAP column 72%>
 +|{{ Images_Cahier-201-03-032.png?700 }}|
 +
 +|{{ Images_Cahier-201-03-033.png?700 }}|
 +
 +|{{ Images_Cahier-201-03-034.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 20%>
 +On rafraîchit la page, on vérifie et on quitte [[https://www.cloudflare.com/|cloudflare.com]].
 +</WRAP>
 +<WRAP column 72%>
 +|{{ Images_Cahier-201-03-035.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +==== Demande d'un certificat de test ====
 +
 +On force ''--force'' la demande d'un certificat de TEST ''--test''  pour notre domaine //micronator-dev.org// et six de ses CNAME.
 +
 +{{Images_icone-201-003_Note.png?25}} Le certificat sera "émis pour" le premier domaine ''-d'' de la liste, c.-à-d. //micronator-dev.org//.
 +
 +<file>
 +[root@tchana ~]# /root/.acme.sh/acme.sh                                             \
 +                      --issue                                                       \
 +                      --dns dns_cf                                                  \
 +                      -d micronator-dev.org                                         \
 +                      -d www.micronator-dev.org                                     \
 +                      -d mail.micronator-dev.org                                    \
 +                      -d wpad.micronator-dev.org                                    \
 +                      -d mediawiki.micronator-dev.org                               \
 +                      -d www.mediawiki.micronator-dev.org                           \
 +                      -d mail.mediawiki.micronator-dev.org                          \
 +                      --cert-file /etc/pki/tls/certs/cert.pem                       \
 +                      --ca-file /etc/pki/tls/certs/chain.pem                        \
 +                      --key-file /etc/pki/tls/private/privkey.pem                   \
 +                      --reloadcmd "/sbin/e-smith/signal-event certificate-update"   \
 +                      --force                                                       \
 +                      --test
 +
 +...
 +[lun. juin  3 15:01:15 EDT 2019] Installing cert to:/etc/pki/tls/certs/cert.pem
 +[lun. juin  3 15:01:15 EDT 2019] Installing CA to:/etc/pki/tls/certs/chain.pem
 +[lun. juin  3 15:01:15 EDT 2019] Installing key to:/etc/pki/tls/private/privkey.pem
 +[lun. juin  3 15:01:15 EDT 2019] Run reload cmd: /sbin/e-smith/signal-event certificate-update
 +[lun. juin  3 15:01:18 EDT 2019] Reload success
 +[root@tchana ~]#
 +</file>
 +
 +La demande d'un certificat de //test// a été couronné de succès.
 +
 +==== Demande d'un certificat officiel ====
 +
 +On force le renouvellement pour l'obtention d'un certificat officiel.
 +
 +<file>
 +[root@tchana ~]# /root/.acme.sh/acme.sh                                             \
 +                      --issue                                                       \
 +                      --dns dns_cf                                                  \
 +                      -d micronator-dev.org                                         \
 +                      -d www.micronator-dev.org                                     \
 +                      -d mail.micronator-dev.org                                    \
 +                      -d wpad.micronator-dev.org                                    \
 +                      -d mediawiki.micronator-dev.org                               \
 +                      -d www.mediawiki.micronator-dev.org                           \
 +                      -d mail.mediawiki.micronator-dev.org                          \
 +                      --cert-file /etc/pki/tls/certs/cert.pem                       \
 +                      --ca-file /etc/pki/tls/certs/chain.pem                        \
 +                      --key-file /etc/pki/tls/private/privkey.pem                   \
 +                      --reloadcmd "/sbin/e-smith/signal-event certificate-update"   \
 +                      --force
 +
 +...
 +[lun. juin  3 15:03:02 EDT 2019] Installing cert to:/etc/pki/tls/certs/cert.pem
 +[lun. juin  3 15:03:02 EDT 2019] Installing CA to:/etc/pki/tls/certs/chain.pem
 +[lun. juin  3 15:03:02 EDT 2019] Installing key to:/etc/pki/tls/private/privkey.pem
 +[lun. juin  3 15:03:02 EDT 2019] Run reload cmd: /sbin/e-smith/signal-event certificate-update
 +[lun. juin  3 15:03:04 EDT 2019] Reload success
 +[root@tchana ~]#
 +</file>
 +
 +La demande d'un certificat officiel a été couronné de succès.
 +\\ 
 +
 +===== Vérification de la connexion sécurisée =====
 +
 +  - On se rend à: https://www.mediawiki.micronator-dev.org.
 +  - On peut aussi utiliser **http://...** qui sera transformé en **https://...**
 +
 +<WRAP column 46%>
 +Le cadenas est __vert__, car le certificat a été émis par Let's Encrypt qui est une autorité de certification reconnue et la connexion est sécurisée par un chiffrement //TLS/SSL//.
 +
 +C'est la page Web par défaut de NethServer qui s'affiche. C'est le comportement normal, car nous n'avons encore aucun fichier dans le répertoire de MediaWiki.
 +
 +Si nous avions un site //WordPress// dans le répertoire web par défaut, c'est la page //WordPress// du site qui s'afficherait.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-036.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +{{Images_Cahier-101-03-003.png?22}} Si vous avez de la difficulté à vous connecter, vidanger le cache DNS du poste de travail et celui du navigateur Firefox.
 +
 +<WRAP column 55%>
 +<nowiki>-</nowiki> Sur le poste de travail, ouvrir un écran de commandes.\\ 
 +<nowiki>-</nowiki> ''ifconfig  /flushdns''.
 +|{{ Images_Cahier-201-03-037.png?600 }}|
 +\\ 
 +\\ 
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +</WRAP>
 +<WRAP column 37%>
 +**Historique -> Supprimer l'historique ré­cent... -> tout -> Effacer maintenant**.
 +|{{ Images_Cahier-201-03-038.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +====== Installation de MediaWiki ======
 +
 +<WRAP column 30%>
 +===== 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]].
 +
 +À la date d'aujourd'hui, c'est la version //1.31.1// qui est la dernière version LTS(( **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]]. \\ \\ )) //(Long Term Support)//.
 +</WRAP>
 +<WRAP column 60%>
 +|{{ Images_Cahier-201-03-039.png?600 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +On se rend dans le répertoire ''mediawiki''.
 +
 +<file>
 +[root@tchana ~]# cd /var/lib/nethserver/vhost/mediawiki/
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# pwd
 +
 +/var/lib/nethserver/vhost/mediawiki
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie le contenu du répertoire.
 +
 +<file>
 +[root@tchana mediawiki]# ls -als
 +
 +total 0
 +0 drwxr-sr-x 2 apache apache  6 25 mai   18:12 .
 +0 drwxr-xr-x 3 root   root   23 25 mai   18:12 ..
 +[root@tchana mediawiki]#
 +</file>
 +
 +===== 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.\\ 
 +{{Images_Cahier-101-03-004.png?25}} Si vous voulez réduire le nombre de révisions qui sont clonées, ajoutez ''--depth=1'' à la commande ci-dessous. \\ 
 +À la console du serveur, on entre la commande ci-dessous pour que ''git'' fasse le téléchargement. Ne pas oublier le "<wrap em>.</wrap>" à la fin de la commande. Ce "." indique le répertoire courant.
 +
 +<file>
 +[root@tchana mediawiki]# git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git --branch REL1_31 --depth=1 .
 +
 +Cloning into '.'...
 +remote: Counting objects: 7317, done
 +remote: Finding sources: 100% (7317/7317)
 +remote: Getting sizes: 100% (6239/6239)
 +remote: Compressing objects:  99% (91737/91738)
 +remote: Total 7317 (delta 1648), reused 3191 (delta 1077)
 +Receiving objects: 100% (7317/7317), 27.13 MiB | 1.73 MiB/s, done.
 +Resolving deltas: 100% (1648/1648), done.
 +[root@tchana mediawiki]#
 +</file>
 +
 +==== 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.
 +
 +<file>
 +[root@tchana mediawiki]# git submodule update --init
 +
 +Submodule 'extensions/CategoryTree' (https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTree) registered for path 'extensions/CategoryTree'
 +...
 +
 +...
 +Submodule path 'skins/Vector': checked out 'f0327dc5558395186eddd3911508817482cd4bc4'
 +Cloning into 'vendor'...
 +remote: Counting objects: 5, done
 +remote: Total 25438 (delta 0), reused 25438 (delta 0)
 +Receiving objects: 100% (25438/25438), 22.01 MiB | 1.78 MiB/s, done.
 +Resolving deltas: 100% (17591/17591), done.
 +Submodule path 'vendor': checked out '1521f359a06aed626e860285769ed78a7152cdec'
 +[root@tchana mediawiki]#
 +</file>
 +
 +==== Ajustement du propriétaire et du groupe ====
 +
 +<file>
 +[root@tchana mediawiki]# chown -R apache:apache *  ; chown -R apache:apache .*
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +==== Ajustement des droits ====
 +
 +On renforce la sécurité de l’accès aux fichiers <wrap em>f</wrap> en supprimant les droits à "other".
 +
 +<file>
 +[root@tchana mediawiki]# find . -type f -exec chmod 640 {} \;
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On répète l'opération pour les répertoires <wrap em>d</wrap>.
 +
 +<file>
 +[root@tchana mediawiki]# find . -type d -exec chmod 2750 {} \;
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# ls -als
 +
 +total 1296
 +  4 drwxr-s--- 16 apache apache   4096  3 juin  15:20 .
 +  0 drwxr-xr-x  3 root   root       23 25 mai   18:12 ..
 +  8 -rw-r-S---  1 apache apache   4697  3 juin  15:20 api.php
 +136 -rw-r-S---  1 apache apache 136895  3 juin  15:20 autoload.php
 +  0 drwxr-s---  2 apache apache     23  3 juin  15:20 cache
 +  4 -rw-r-S---  1 apache apache    116  3 juin  15:20 CODE_OF_CONDUCT.md
 +  4 -rw-r-S---  1 apache apache   3571  3 juin  15:20 composer.json
 +  4 -rw-r-S---  1 apache apache    102  3 juin  15:20 composer.local.json-sample
 + 20 -rw-r-S---  1 apache apache  19421  3 juin  15:20 COPYING
 + 12 -rw-r-S---  1 apache apache  11526  3 juin  15:20 CREDITS
 +  4 drwxr-s---  8 apache apache   4096  3 juin  15:20 docs
 +  4 -rw-r-S---  1 apache apache    207  3 juin  15:20 .eslintrc.json
 +  4 drwxr-s--- 24 apache apache   4096  3 juin  15:20 extensions
 +  4 -rw-r-S---  1 apache apache     95  3 juin  15:20 FAQ
 +  0 drwxr-s---  9 apache apache    193  3 juin  15:21 .git
 +  4 -rw-r-S---  1 apache apache    258  3 juin  15:20 .gitattributes
 +  4 -rw-r-S---  1 apache apache   1041  3 juin  15:20 .gitignore
 +  4 -rw-r-S---  1 apache apache   3962  3 juin  15:20 .gitmodules
 +  4 -rw-r-S---  1 apache apache     97  3 juin  15:20 .gitreview
 +  4 -rw-r-S---  1 apache apache   3499  3 juin  15:20 Gruntfile.js
 +872 -rw-r-S---  1 apache apache 888845  3 juin  15:20 HISTORY
 +  0 drwxr-s---  2 apache apache     37  3 juin  15:20 images
 +  8 -rw-r-S---  1 apache apache   7705  3 juin  15:20 img_auth.php
 + 12 drwxr-s--- 71 apache apache   8192  3 juin  15:20 includes
 +  4 -rw-r-S---  1 apache apache   1579  3 juin  15:20 index.php
 +  4 -rw-r-S---  1 apache apache   3681  3 juin  15:20 INSTALL
 +  4 -rw-r-S---  1 apache apache   2042  3 juin  15:20 jsduck.json
 +  0 drwxr-s---  6 apache apache    229  3 juin  15:20 languages
 +  4 -rw-r-S---  1 apache apache   1950  3 juin  15:20 load.php
 + 24 -rw-r-S---  1 apache apache  23988  3 juin  15:20 .mailmap
 + 12 drwxr-s--- 17 apache apache   8192  3 juin  15:20 maintenance
 +  0 drwxr-s---  4 apache apache    110  3 juin  15:20 mw-config
 +  4 -rw-r-S---  1 apache apache   4059  3 juin  15:20 opensearch_desc.php
 +  4 -rw-r-S---  1 apache apache   1149  3 juin  15:20 package.json
 +  8 -rw-r-S---  1 apache apache   4428  3 juin  15:20 .phpcs.xml
 + 12 -rw-r-S---  1 apache apache  12026  3 juin  15:20 profileinfo.php
 +  4 -rw-r-S---  1 apache apache   1529  3 juin  15:20 README
 +  0 lrwxrwxrwx  1 apache apache      6  3 juin  15:20 README.mediawiki -> README
 + 36 -rw-r-S---  1 apache apache  33239  3 juin  15:20 RELEASE-NOTES-1.31
 +  0 drwxr-s---  5 apache apache     63  3 juin  15:20 resources
 +  4 -rw-r-S---  1 apache apache    199  3 juin  15:20 SECURITY
 +  0 drwxr-s---  2 apache apache    162  3 juin  15:20 serialized
 +  0 drwxr-s---  5 apache apache     84  3 juin  15:20 skins
 +  4 -rw-r-S---  1 apache apache   1703  3 juin  15:20 StartProfiler.sample
 +  4 -rw-r-S---  1 apache apache    125  3 juin  15:20 .stylelintrc.json
 +  0 drwxr-s---  9 apache apache    126  3 juin  15:20 tests
 +  4 -rw-r-S---  1 apache apache   1087  3 juin  15:20 thumb_handler.php
 + 24 -rw-r-S---  1 apache apache  22633  3 juin  15:20 thumb.php
 +  4 -rw-r-S---  1 apache apache   2487  3 juin  15:20 .travis.yml
 + 12 -rw-r-S---  1 apache apache  12247  3 juin  15:20 UPGRADE
 +  0 drwxr-s--- 10 apache apache    264  3 juin  15:22 vendor
 +[root@tchana mediawiki]#
 +</file>
 +\\ 
 +
 +===== Installation de MediaWiki =====
 +
 +On se rend sur notre site: https://mediawiki.FQDN, c.-à-d. https://www.mediawiki.micronator-dev.org.
 +
 +<WRAP column 30%>
 +On clique **set up the wiki**.
 +|{{ Images_Cahier-201-03-040.png?400 }}|
 +</WRAP>
 +<WRAP column 62%>
 +On choisit la langue du wiki **-> Continuer**.
 +|{{ Images_Cahier-201-03-041.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 46%>
 +{{Images_icone-201-003_Note.png?25}} On peut ignorer le message à propos de //PECL//.
 +
 +//**L’environnement a été vérifié. Vous pouvez installer MediaWiki.**// **-> Continuer**.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-042.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +{{Images_icone-201-003_Note.png?25}} 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.
 +
 +<WRAP column 30%>
 +<nowiki>-</nowiki> On prend le défaut pour le type de base de donnée.\\ 
 +<nowiki>-</nowiki> //**Nom d’hôte de la base de données :**//\\ 
 +On indique obligatoirement **127.0.0.1:<wrap em>3312</wrap>**.\\ 
 +//(Le port <wrap em>3312</wrap> étant celui utilisé par MariaDB-102.)//
 +|{{ Images_Cahier-201-03-043.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +<nowiki>-</nowiki> On entre les paramètres décrits au paragraphe [[nethserver_201_cahier_03_mediawiki#Paramètres de la BD pour MediaWiki]].\\ 
 +<wrap hi>MediaWikiBD</wrap>\\ 
 +<wrap hi>usager<nowiki>_</nowiki>MWBD</wrap>\\ 
 +<wrap hi>mdp<nowiki>_</nowiki>MediaWikiBD</wrap>\\ 
 +<nowiki>-</nowiki> **Continuer**.
 +|{{ Images_Cahier-201-03-044.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +
 +On prend les défauts **-> Continuer**.
 +|{{ Images_Cahier-201-03-045.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +\\ 
 +\\
 +On entre le nom désiré pour notre wiki.
 +|{{ Images_Cahier-201-03-046.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +<nowiki>-</nowiki> On entre le nom de l'administrateur de notre wiki et son mot de passe qu'on confirme.\\ 
 +<nowiki>-</nowiki> On entre l'adresse courriel de l'administrateur.
 +|{{ Images_Cahier-201-03-047.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +<nowiki>-</nowiki> Pour faciliter la configuration, on demande plus de question.\\ 
 +<nowiki>-</nowiki> Continuer.
 +|{{ Images_Cahier-201-03-048.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +Si vous n'avez pas de certificat SSH d'une Autorité de Certification //(CA)// reconnue, il vaut mieux utiliser une //**Adresse de courriel**// autre que celle du serveur, car vous ne pourrez accéder à //Webmail//; __ce dernier n'autorise que les connexions sécurisées__.
 +
 +  * Pour l'installation d'un certificat Let's Encrypt sur un serveur LOCAL, voir le  [[nethserver_101_cahier_04_local_certificat_let_encrypt|Cahier-04]]: //NethServer LOCAL & Certificat Let's Encrypt// du "Cours NethServer-101".
 +  * Pour un serveur directement branché à l'Internet, voir le [[nethserver_101_cahier_05_vdsl_fqdn_internet_et_nethserver|Cahier05]]: //VDSL, FQDN, Internet et NethServer// du "Cours NethServer-101".
 +
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +\\ 
 +On choisit le profil des droits d'utilisateurs.
 +|{{ Images_Cahier-201-03-049.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +\\ 
 +On choisit notre licence.
 +|{{ Images_Cahier-201-03-050.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +<nowiki>-</nowiki> On choisit **michelandre@mediawiki.micronator-dev.org** pour les retours de courriels.\\ 
 +<nowiki>-</nowiki> Au choix, on active les notifications.
 +|{{ Images_Cahier-201-03-051.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +{{Images_Cahier-101-03-003.png?22}}  Ci-dessus, à droite, si on choisit une autre //**Adresse de courriel de retour**//, il faudra __créer l'usager__ dans l'interface Web NethServer et aussi __créer un alias de messagerie__ pour ce nouvel utilisateur. 
 +
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +\\ 
 +On choisit les habillages.
 +|{{ Images_Cahier-201-03-052.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +\\ 
 +On choisit les extensions désirées.
 +|{{ Images_Cahier-201-03-053.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +<nowiki>-</nowiki> On coche **Activer le téléchargement de fichiers**.\\ 
 +<nowiki>-</nowiki> Pour l'instant, le logo par défaut sera utilisé.
 +|{{ Images_Cahier-201-03-054.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 30%>
 +<nowiki>-</nowiki> On choisit de ne pas utiliser de mise en cache.\\ 
 +<nowiki>-</nowiki> **Continuer**.
 +|{{ Images_Cahier-201-03-055.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +**Continuer**.
 +|{{ Images_Cahier-201-03-056.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +**Continuer**.
 +|{{ Images_Cahier-201-03-057.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 30%>
 +On sauvegarde le fichier de configuration sur le poste de travail **-> OK**.
 +</WRAP>
 +<WRAP column 30%>
 +|{{ Images_Cahier-201-03-058.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +===== Téléversement du fichier de configuration =====
 +
 +<WRAP column 30%>
 +On téléverse le fichier de configuration, qu'on vient de sauvegarder sur le poste de travail, à la racine de notre site.\\ 
 +Pour ce faire, on peut utiliser //WinSCP// ou //Filezilla//.
 +</WRAP>
 +<WRAP column 62%>
 +|{{ Images_Cahier-201-03-059.png?800 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +===== 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.
 +
 +<WRAP box round>
 +<file>
 +[root@tchana ~]# cd /var/lib/nethserver/vhost/mediawiki/
 +
 +[root@tchana mediawiki]#
 +</file>
 +</WRAP>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# pwd
 +
 +/var/lib/nethserver/vhost/mediawiki
 +[root@tchana mediawiki]#
 +</file>
 +
 +==== Ajustement du propriétaire et du groupe ====
 +
 +<file>
 +[root@tchana mediawiki]# chown -R apache:apache *  ; chown -R apache:apache .*
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +==== Ajustement des droits ====
 +
 +On renforce la sécurité de l’accès aux fichiers <wrap em>f</wrap> en supprimant les droits à "other".
 +
 +<file>
 +[root@tchana mediawiki]# find . -type f -exec chmod 640 {} \;
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On répète l'opération pour les répertoires <wrap em>d</wrap>.
 +
 +<file>
 +[root@tchana mediawiki]# find . -type d -exec chmod 2750 {} \;
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie pour les fichiers, les répertoires et les fichiers cachés et de plus, "other" n'a aucun droits.
 +
 +<file>
 +[root@tchana mediawiki]# ls -als
 +
 +total 1304
 +  4 drwxr-s--- 16 apache apache   4096  3 juin  16:39 .
 +  0 drwxr-xr-x  3 root   root       23 25 mai   18:12 ..
 +  8 -rw-r-S---  1 apache apache   4697  3 juin  15:20 api.php
 +...
 +  4 -rw-r-S---  1 apache apache    207  3 juin  15:20 .eslintrc.json
 +...
 +  0 drwxr-s---  2 apache apache     37  3 juin  16:23 images
 +...
 +  8 -rw-r-S---  1 apache apache   5652  3 juin  16:38 LocalSettings.php
 +...
 +  0 drwxr-s--- 10 apache apache    264  3 juin  15:22 vendor
 +[root@tchana mediawiki]#
 +</file>
 +\\ 
 +
 +===== Accès et login à MediaWiki =====
 +
 +<WRAP column 20%>
 +On retourne à l'écran d'installation et on clique **accéder à votre wiki**.
 +</WRAP>
 +<WRAP column 72%>
 +|{{ Images_Cahier-201-03-060.png?800 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 72%>
 +**Se connecter**.
 +|{{ Images_Cahier-201-03-061.png?800 }}|
 +</WRAP>
 +<WRAP column 20%>
 +On se connecte.
 +|{{ Images_Cahier-201-03-062.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 20%>
 +Victoire totale, notre site MediaWiki est fonctionnel.
 +\\ 
 +\\ 
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +</WRAP>
 +<WRAP column 72%>
 +|{{ Images_Cahier-201-03-063.png?800 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +====== Configuration ======
 +
 +===== Préparation =====
 +
 +{{Images_Cahier-101-03-003.png?22}} Si nous avons installé MediaWiki plus d'une fois à cause d'une erreur, si nous avons changé d'adresse IP du serveur ou du poste de travail ou pour quelque raison que ce soit, il faudrait mieux être prudent et vidanger le cache DNS du poste de travail et celui du navigateur Firefox.
 +
 +<WRAP column 55%>
 +<nowiki>-</nowiki> Sur le poste de travail, ouvrir un écran de commandes.\\ 
 +<nowiki>-</nowiki> **ifconfig  /flushdns**.
 +|{{ Images_Cahier-201-03-064.png?600 }}|
 +</WRAP>
 +<WRAP column 37%>
 +**Historique -> Supprimer l'historique ré­cent... -> tout -> Effacer maintenant**.
 +|{{ Images_Cahier-201-03-065.png?500 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Login =====
 +
 +Si ce n'est déjà fait, on se logue à notre MediaWiki.
 +
 +<WRAP column 62%>
 +On donne l'adresse à notre fireteur et on se connecte.
 +|{{ Images_Cahier-201-03-066.png?700 }}|
 +</WRAP>
 +<WRAP column 30%>
 +On se logue.
 +|{{ Images_Cahier-201-03-067.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Confirmation de l'adresse courriel =====
 +
 +L'adresse courriel est facultative, mais elle est nécessaire pour réinitialiser votre mot de passe si vous veniez à l'oublier.
 +
 +Vous pourriez aussi choisir de laisser les autres vous contacter sur votre page de discussion utilisateur, sans qu'il ne soit nécessaire de révéler votre identité.
 +
 +<WRAP column 20%>
 +**Préférences**.
 +</WRAP>
 +<WRAP column 72%>
 +|{{ Images_Cahier-201-03-068.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 30%>
 +Onglet **Informations personnelles ->** cadre  **Options des courriels ->** cliquez **Confirmez votre adresse de courriel**.
 +|{{ Images_Cahier-201-03-069.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +**Envoyer un code de confirmation**.
 +|{{ Images_Cahier-201-03-070.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +MediaWiki affiche que le courriel de confirmation a été envoyé.
 +|{{ Images_Cahier-201-03-071.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +\\ 
 +Dans le courriel qu'on reçoit, on clique le **lien de confirmation**.
 +|{{ Images_Cahier-201-03-072.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +\\ 
 +MediaWiki affiche que notre adresse courriel a été confirmée.
 +|{{ Images_Cahier-201-03-073.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +Dans **Préférences ->** onglet **Informations personnelles ->** cadre **Options des courriels ->** une ligne indique que notre adresse de courriel a été confirmée.
 +|{{ Images_Cahier-201-03-074.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 30%>
 +===== Importation de fichiers =====
 +
 +Sur la page d'accueil, on clique **Importer un fichier**.
 +</WRAP>
 +<WRAP column 14%>
 +|{{ Images_Cahier-201-03-075.png?200 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 48%>
 +**Parcourir ->** sélectionner l'image **-> Ouvrir ->** entrer une description **->** décocher **Suivre ce fichier -> Importer le fichier**.
 +|{{ Images_Cahier-201-03-076.png?400 }}|
 +{{Images_icone-201-003_Note.png?25}} //**Remarquez les Formats de fichiers autorisés : png, gif, jpg, jpeg et webp**//. Nous réglerons ce détail dans une prochaine section.
 +</WRAP>
 +<WRAP column 44%>
 +<nowiki>-</nowiki> Le fichier a été importé.\\ 
 +<nowiki>-</nowiki> **Afficher les informations détaillées**.
 +|{{ Images_Cahier-201-03-077.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 23%>
 +Les métadonnées sont affichées.
 +</WRAP>
 +<WRAP column 60%>
 +|{{ Images_Cahier-201-03-078-A.png?600 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Répertoires d'importation =====
 +
 +Après quelques importations d'images, MediaWiki aura créé plusieurs sous-répertoires pour les y emmagasiner et il en aura fait de même pour leurs miniatures //(thumb)//.
 +
 +<file>
 +[root@tchana ~]# ls -als /var/lib/nethserver/vhost/mediawiki/images/
 +
 +total 12
 +0 drwxr-s---  6 apache apache   89  3 juin  20:35 .
 +4 drwxr-s--- 16 apache apache 4096  3 juin  16:39 ..
 +0 drwxr-sr-x  3 apache apache   16  3 juin  20:35 9
 +0 drwxr-sr-x  3 apache apache   15  3 juin  20:35 archive
 +4 -rw-r-S---  1 apache apache  252  3 juin  15:20 .htaccess
 +0 drwxr-sr-x  2 apache apache    6  3 juin  20:35 lockdir
 +4 -rw-r-S---  1 apache apache   84  3 juin  15:20 README
 +0 drwxr-sr-x  3 apache apache   15  3 juin  20:35 thumb
 +[root@tchana ~]#
 +</file>
 +
 +On affiche le contenu des sous-répertoires.
 +
 +<file>
 +[root@tchana ~]# ls -alsR /var/lib/nethserver/vhost/mediawiki/images/9
 +
 +/var/lib/nethserver/vhost/mediawiki/images/9:
 +total 0
 +0 drwxr-sr-x 3 apache apache 16  3 juin  20:35 .
 +0 drwxr-s--- 6 apache apache 89  3 juin  20:35 ..
 +0 drwxr-sr-x 2 apache apache 42  3 juin  20:35 90
 +
 +/var/lib/nethserver/vhost/mediawiki/images/9/90:
 +total 180
 +  0 drwxr-sr-x 2 apache apache     42  3 juin  20:35 .
 +  0 drwxr-sr-x 3 apache apache     16  3 juin  20:35 ..
 +180 -rw-r--r-- 1 apache apache 183095  3 juin  20:35 But_du_cahier-201.03_APT.png
 +[root@tchana ~]#
 +</file>
 +
 +<file>
 +[root@tchana ~]# ls -alsR /var/lib/nethserver/vhost/mediawiki/images/thumb/
 +
 +/var/lib/nethserver/vhost/mediawiki/images/thumb/:
 +total 0
 +0 drwxr-sr-x 3 apache apache 15  3 juin  20:35 .
 +0 drwxr-s--- 6 apache apache 89  3 juin  20:35 ..
 +0 drwxr-sr-x 3 apache apache 16  3 juin  20:35 9
 +
 +/var/lib/nethserver/vhost/mediawiki/images/thumb/9:
 +total 0
 +0 drwxr-sr-x 3 apache apache 16  3 juin  20:35 .
 +0 drwxr-sr-x 3 apache apache 15  3 juin  20:35 ..
 +0 drwxr-sr-x 3 apache apache 42  3 juin  20:35 90
 +
 +/var/lib/nethserver/vhost/mediawiki/images/thumb/9/90:
 +total 0
 +0 drwxr-sr-x 3 apache apache  42  3 juin  20:35 .
 +0 drwxr-sr-x 3 apache apache  16  3 juin  20:35 ..
 +0 drwxr-sr-x 2 apache apache 132  3 juin  20:35 But_du_cahier-201.03_APT.png
 +
 +/var/lib/nethserver/vhost/mediawiki/images/thumb/9/90/But_du_cahier-201.03_APT.png:
 +total 288
 +  0 drwxr-sr-x 2 apache apache    132  3 juin  20:35 .
 +  0 drwxr-sr-x 3 apache apache     42  3 juin  20:35 ..
 + 12 -rw-r--r-- 1 apache apache  10663  3 juin  20:35 120px-But_du_cahier-201.03_APT.png
 + 52 -rw-r--r-- 1 apache apache  51071  3 juin  20:35 320px-But_du_cahier-201.03_APT.png
 +224 -rw-r--r-- 1 apache apache 226306  3 juin  20:35 800px-But_du_cahier-201.03_APT.png
 +[root@tchana ~]#
 +</file>
 +
 +===== Formats de fichiers autorisés =====
 +
 +<WRAP column 46%>
 +Par défaut, les seuls formats de fichiers autorisés sont: //png//, //gif//, //jpg//, //jpeg// et //webp//.
 +
 +Pour remédier à cette situation, il faut éditer le fichier ''LocalSettings.php''.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-079.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +On ajoute, à la fin du fichier ''LocalSettings.php'', des lignes de paramètres avec celles de leur commentaire.
 +
 +{{Images_icone-201-003_Note.png?25}} Afin de faciliter la maintenance, 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)//.
 +
 +{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat >> /var/lib/nethserver/vhost/mediawiki/LocalSettings.php <<'EOT'
 +
 +#####  ***********************
 +# 2018-05-19_22h48 HNE //  Michel-André
 +# On ajoute à la fin du fichier les paramétrages spécifiques (pour bien différencier
 +# l'installation par défaut des réglages et extensions spécifiques) afin de faciliter
 +# la maintenance.
 +
 +# Limite de taille de fichier, ici 50MB
 +$wgMaxUploadSize = 1024*1024*50;
 +
 +# Doit-on vérifier l'extension du nom de fichier à l'upload? oui
 +$wgCheckFileExtensions = true;
 +
 +# Les extensions autorisées
 +$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ppt', 'pdf', 'psd', 'mp3', 'xls', 'xlsx', 'swf', 'doc','docx', 'odt', 'odc', 'odp', 'odg', 'mpp', 'webp');
 +
 +# Les extensions spécifiquement interdites
 +# HTML may contain cookie-stealing JavaScript and web bugs
 +# PHP scripts may execute arbitrary code on the server
 +# Other types that may be interpreted by some servers
 +# May contain harmful executables for Windows victims
 +$wgFileBlacklist = array( 'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht', 'php', 'phtml', 'php3', 'php4', 'php5', 'phps', 'shtml', 'jhtml', 'pl', 'py', 'cgi', 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' );
 +
 +EOT
 +
 +
 +</file>
 +
 +{{Images_Cahier-101-03-008.png?25}} Porter une attention particulière aux fichiers qui peuvent contenir des macros.
 +
 +{{Images_icone-201-003_Note.png?25}} Ici, la limite est de 50Mo.
 +
 +<WRAP box>
 +<file>
 +...
 +# Limite de taille de fichier, ici 50MB
 +$wgMaxUploadSize = 1024*1024*50;
 +...
 +</file>
 +</WRAP>
 +
 +{{Images_Cahier-101-03-006.png?25}} On peut spécifier un nombre plus grand dans le fichier ''LocalSettings.php'' mais, la véritable limite maximale qu'on peut définir est celle spécifiée par //**UploadMaxFilesize**// au paragraphe [[nethserver_201_cahier_03_mediawiki#UploadMaxFilesize]].
 +
 +On vérifie notre ajout au fichier ''LocalSettings.php''.
 +
 +<file>
 +[root@tchana ~]# tail -23 /var/lib/nethserver/vhost/mediawiki/LocalSettings.php
 +
 +#####  ***********************
 +# 2018-05-19_22h48 HNE //  Michel-André
 +# On ajoute à la fin du fichier les paramétrages spécifiques (pour bien différencier
 +# l'installation par défaut des réglages et extensions spécifiques) afin de faciliter
 +# la maintenance.
 +
 +# Limite de taille de fichier, ici 50MB
 +$wgMaxUploadSize = 1024*1024*50;
 +
 +# Doit-on vérifier l'extension du nom de fichier à l'upload? oui
 +$wgCheckFileExtensions = true;
 +
 +# Les extensions autorisées
 +$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ppt', 'pdf', 'psd', 'mp3', 'xls', 'xlsx', 'swf', 'doc','docx', 'odt', 'odc', 'odp', 'odg', 'mpp', 'webp');
 +
 +# Les extensions spécifiquement interdites
 +# HTML may contain cookie-stealing JavaScript and web bugs
 +# PHP scripts may execute arbitrary code on the server
 +# Other types that may be interpreted by some servers
 +# May contain harmful executables for Windows victims
 +$wgFileBlacklist = array( 'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht', 'php', 'phtml', 'php3', 'php4', 'php5', 'phps', 'shtml', 'jhtml', 'pl', 'py', 'cgi', 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' );
 +
 +[root@tchana ~]#
 +</file>
 +
 +<WRAP column 30%>
 +On vérifie dans l'interface MediaWiki.
 +
 +**Accueil -> Importer un fichier**.
 +</WRAP>
 +<WRAP column 62%>
 +|{{ Images_Cahier-201-03-080.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Logo du wiki =====
 +
 +La taille maximale 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.
 +
 +{{Images_Cahier-101-03-006.png?25}} Il ne faut tout simplement pas écraser le fichier ''wiki.png'' par notre logo, car à la prochaine mise à jour, celle-ci va écraser ce fichier.
 +
 +==== Importation du fichier de notre logo ====
 +
 +<WRAP column 22%>
 +**Importer un fichier**.
 +|{{ Images_Cahier-201-03-081.png?400 }}|
 +</WRAP>
 +<WRAP column 70%>
 +**Parcourir**.
 +|{{ Images_Cahier-201-03-082.png?800 }}|
 +{{Images_icone-201-003_Note.png?25}} On peut remarquer la //**Taille maximale du fichier : 50 Mio**// qu'on a configurée à la section [[nethserver_201_cahier_03_mediawiki#Formats de fichiers autorisés]].
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 46%>
 +<nowiki>-</nowiki> On se rend dans le répertoire contenant le fichier de notre logo sur notre poste de travail, on le sélectionne **-> Ouvrir**.\\ 
 +<nowiki>-</nowiki> Notre logo apparaît dans MediaWiki.
 +|{{ Images_Cahier-201-03-083.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +<nowiki>-</nowiki> On ajoute une description.\\ 
 +<nowiki>-</nowiki> On décoche **Suivre ce fichier**.\\ 
 +<nowiki>-</nowiki> **Importer le fichier**.
 +|{{ Images_Cahier-201-03-084.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 20%>
 +On claque sur le nom du fichier **-> Copier l'adresse du lien**.
 +</WRAP>
 +<WRAP column 72%>
 +|{{ Images_Cahier-201-03-085.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +On voit où se trouve le fichier de notre logo.
 +
 +<file>
 +https://www.mediawiki.micronator-dev.org/images/b/bb/LogoMicronatorMediawiki_135_APT.png
 +</file>
 +
 +Le répertoire racine de notre site est: ''https://www.mediawiki.micronator-dev.org/''.
 +
 +Le chemin relatif du fichier est donc: ''/images/b/bb/LogoMicronatorMediawiki_135_APT.png''.
 +
 +● On spécifie notre logo à la fin du fichier de configuration ''LocalSettings.php''.
 +
 +{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat >> /var/lib/nethserver/vhost/mediawiki/LocalSettings.php <<'EOT'
 +
 +#####  ***********************
 +# Le logo de Micronator
 +$wgLogo = "{$wgScriptPath}/images/b/bb/LogoMicronatorMediawiki_135_APT.png";
 +
 +EOT
 +
 +
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# tail -5 /var/lib/nethserver/vhost/mediawiki/LocalSettings.php
 +
 +#####  ***********************
 +# Le logo de Micronator
 +$wgLogo = "{$wgScriptPath}/images/b/bb/LogoMicronatorMediawiki_135_APT.png";
 +
 +[root@tchana ~]#
 +</file>
 +\\ 
 +
 +<WRAP column 20%>
 +On se rend à la page d'**Accueil**.
 +
 +Notre logo apparaît.
 +\\ 
 +\\ 
 +\\ 
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +
 +</WRAP>
 +<WRAP column 72%>
 +|{{ Images_Cahier-201-03-086.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP centeralign>**Notre site MediaWiki est toujours fonctionnel.**</WRAP>
 +\\ 
 +
 +====== 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 à travers des données stockées par SMW: le terme "Semantic MediaWiki" est quelquefois utilisé pour désigner la famille complète des extensions.
 +
 +Là où SMW est utile
 +
 +Semantic MediaWiki introduit certaines balises supplémentaires dans le texte wiki qui permettent aux utilisateurs d'ajouter des "annotations sémantiques" au wiki. Bien qu'à première vue, ceci tend à rendre les choses plus complexes, cela peut considérablement simplifier la structure du wiki, aider les utilisateurs à trouver un maximum d'informations en un minimum de temps ainsi qu'augmenter la qualité générale et la cohérence du wiki.
 +
 +===== LocalSettings.php =====
 +
 +==== Paramètre $wgShellLocale ====
 +
 +Il nous faut changer le paramètre ''$wgShellLocale'' dans le fichier ''LocalSettings.php'' de MediaWiki.
 +
 +//Référence:// [[https://www.semantic-mediawiki.org/wiki/Help:Installation/General_notes|https://www.semantic-mediawiki.org/wiki/Help:Installation/General_notes]].\\ 
 +{{Images_Cahier-101-03-003.png?22}} Si vous utilisez MediaWiki //1.30.x et supérieur//, il est recommandé de changer le paramètre de configuration ''$wgShellLocale'' //(MediaWiki.org)// en **C.UTF-8**, tel que recommandé par les principaux développeurs de MediaWiki.
 +
 +On se rend dans le répertoire racine de notre MediaWiki.
 +
 +<file>
 +[root@tchana ~]# cd /var/lib/nethserver/vhost/mediawiki
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# pwd
 +
 +/var/lib/nethserver/vhost/mediawiki
 +[root@tchana mediawiki]#
 +</file>
 +
 +On fait une sauvegarde du fichier.
 +
 +<file>
 +[root@tchana mediawiki]# cp LocalSettings.php  LocalSettings.php_avant-Semantic
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# ls -als LocalSettings.php*
 +
 +8 -rw-r-S--- 1 apache apache 7092  3 juin  21:24 LocalSettings.php
 +8 -rw-r----- 1 root   apache 7092  3 juin  22:08 LocalSettings.php_avant-Semantic
 +[root@tchana mediawiki]#
 +</file>
 +
 +On affiche le paramètre.
 +
 +<file>
 +[root@tchana mediawiki]# cat LocalSettings.php | grep wgShellLocale
 +
 +$wgShellLocale = "en_US.utf8";
 +[root@tchana mediawiki]#
 +</file>
 +
 +On change la valeur du paramètre de: //en_US.utf8// à: **C.UTF-8**.
 +
 +<file>
 +[root@tchana mediawiki]# sed -i 's/en_US.utf8/C.UTF-8/' LocalSettings.php
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# cat LocalSettings.php | grep wgShellLocale
 +
 +$wgShellLocale = "C.UTF-8";
 +[root@tchana mediawiki]#
 +</file>
 +
 +===== 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 d'utiliser Composer.
 +
 +==== Allow php access to remote files ====
 +
 +<WRAP column 32%>
 +L'//installeur de Composer// va avoir besoin d'exécuter un fichier php externe.
 +
 +Il nous faut modifier tempo­rai­re­ment l'accès PHP aux fichiers distants.
 +
 +**Configuration -> Paramètres PHP ->** onglet  **Php V7.2 SCL**.
 +
 +On coche //**Allow php access to remote files**// **-> SOUMETTRE**.
 +</WRAP>
 +<WRAP column 60%>
 +|{{ Images_Cahier-201-03-087.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== mbstring ====
 +
 +L'extension **mbstring** permet l'utilisation de fonctions PHP //multi-octets//.
 +
 +On s'assure que l'extension //mbstring// est présente dans PHP-7.2.
 +
 +<file>
 +[root@tchana mediawiki]# php --re mbstring | head -n 1
 +
 +Extension [ <persistent> extension #31 mbstring version 7.2.19 ] {
 +[root@tchana mediawiki]#
 +</file>
 +
 +On s'assure qu'on est bien dans le répertoire racine de notre wiki.
 +
 +<file>
 +[root@tchana mediawiki]# pwd
 +
 +/var/lib/nethserver/vhost/mediawiki
 +[root@tchana mediawiki]
 +</file>
 +
 +On télécharge l'//installeur de Composer//.
 +
 +<file>
 +[root@tchana mediawiki]# wget http://getcomposer.org/installer
 +
 +--2019-06-03 22:59:06--  http://getcomposer.org/installer
 +Résolution de getcomposer.org (getcomposer.org)... 142.44.245.229, 2607:5300:201:2100::4:d105
 +Connexion vers getcomposer.org (getcomposer.org)|142.44.245.229|:80...connecté.
 +requête HTTP transmise, en attente de la réponse...200 OK
 +Longueur: 263790 (258K) [application/octet-stream]
 +Sauvegarde en : «installer»
 +
 +100%[==================================================>] 263 790     1,58MB/  ds 0,2s
 +
 +2019-06-03 22:59:06 (1,58 MB/s) - «installer» sauvegardé [263790/263790]
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# ls -als installer
 +
 +260 -rw-r--r-- 1 root apache 263790 29 janv. 09:19 installer
 +[root@tchana mediawiki]#
 +</file>
 +
 +On installe //Composer//.
 +
 +<file>
 +[root@tchana mediawiki]# php installer
 +
 +All settings correct for using Composer
 +Downloading...
 +
 +Composer (version 1.8.5) successfully installed to: /var/lib/nethserver/vhost/mediawiki/composer.phar
 +Use it: php composer.phar
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie l'installation.
 +
 +<file>
 +[root@tchana mediawiki]# ls -als composer.phar
 +
 +1872 -rwxr-xr-x 1 root apache 1914314  3 juin  22:59 composer.phar
 +[root@tchana mediawiki]#
 +</file>
 +
 +On supprime le fichier installeur.
 +
 +<file>
 +[root@tchana mediawiki]# rm installer
 +
 +rm : supprimer fichier « installer » ? o
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# ls -als insta*
 +
 +ls: impossible d'accéder à insta*: Aucun fichier ou dossier de ce type
 +[root@tchana mediawiki]#
 +</file>
 +
 +===== Installation de Semantic MediaWiki avec Composer =====
 +
 +==== Préparation ====
 +
 +{{Images_Cahier-101-03-003.png?22}} On peut ignorer l'avertissement car nous utilisons les options: ''--no-plugins'' et ''--no-scripts''. Pour plus de détails, voir: [[https://getcomposer.org/root|https://getcomposer.org/root]].
 +
 +<file>
 +[root@tchana mediawiki]# php composer.phar install --no-plugins --no-scripts
 +
 +Do not run Composer as root/super user! See https://getcomposer.org/root for details
 +Loading composer repositories with package information
 +Updating dependencies (including require-dev)
 +Package operations: 49 installs, 3 updates, 0 removals
 +  - Updating pear/console_getopt (v1.4.1 => v1.4.2): As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension.
 +This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost.
 +Installing 'unzip' may remediate them.
 +Downloading (100%)
 +  - Updating pear/pear-core-minimal (v1.10.3 => v1.10.9): Downloading (100%)
 +...
 +  - Installing wmde/hamcrest-html-matchers (v0.1.1): Downloading (100%)
 +monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
 +...
 +monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
 +symfony/var-dumper suggests installing ext-intl (To show region name in time zone dump)
 +...
 +symfony/console suggests installing symfony/process
 +psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
 +psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.)
 +wikimedia/avro suggests installing ext-gmp (Large integer support for 32-bit platforms.)
 +sebastian/global-state suggests installing ext-uopz (*)
 +phpunit/php-code-coverage suggests installing ext-xdebug (^2.5.5)
 +phpunit/phpunit suggests installing phpunit/php-invoker (^1.1)
 +phpunit/phpunit suggests installing ext-xdebug (*)
 +Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
 +Writing lock file
 +Generating optimized autoload files
 +[root@tchana mediawiki]#
 +</file>
 +
 +==== Installation de la version 3.0 de SMW ====
 +
 +<file>
 +[root@tchana mediawiki]# php composer.phar require mediawiki/semantic-media-wiki "~3.0"
 +
 +Do not run Composer as root/super user! See https://getcomposer.org/root for details
 +./composer.json has been updated
 +> ComposerHookHandler::onPreUpdate
 +Loading composer repositories with package information
 +Updating dependencies (including require-dev)
 +Package operations: 23 installs, 1 update, 0 removals
 +  - Installing composer/installers (v1.6.0): Downloading (100%)
 +...
 +  - Installing 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
 +[root@tchana mediawiki]#
 +</file>
 +
 +==== Activation de SMW ====
 +
 +{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat >> LocalSettings.php <<'EOT'
 +
 +#####  ***********************
 +# EXTENSION:SemanticMediaWiki
 +# Semantic MediaWiki introduit certaines balises supplémentaires dans le texte wiki qui
 +# permettent aux utilisateurs d'ajouter des "annotations sémantiques" au wiki.
 +require_once "$IP/extensions/SemanticMediaWiki/SemanticMediaWiki.php";
 +enableSemantics( '10.10.10.75' );
 +
 +EOT
 +
 +
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# tail -7 LocalSettings.php
 +
 +#####  ***********************
 +# EXTENSION:SemanticMediaWiki
 +# Semantic MediaWiki introduit certaines balises supplémentaires dans le texte wiki qui
 +# permettent aux utilisateurs d'ajouter des "annotations sémantiques" au wiki.
 +require_once "$IP/extensions/SemanticMediaWiki/SemanticMediaWiki.php";
 +enableSemantics( '10.10.10.75' );
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +==== setupStore.php ====
 +
 +Configuration du système de stockage SMW actuellement sélectionné dans ''LocalSettings.php''.
 +
 +<file>
 +[root@tchana mediawiki]# cd extensions/SemanticMediaWiki/maintenance
 +
 +[root@tchana maintenance]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana maintenance]# pwd
 +
 +/var/lib/nethserver/vhost/mediawiki/extensions/SemanticMediaWiki/maintenance
 +[root@tchana maintenance]#
 +</file>
 +
 +=== Installation et mise à niveau de la base de données ===
 +
 +{{Images_icone-201-003_Note.png?25}} Veiller noter que cette commande nécessite d'avoir la permission de __modifier/créer__ des tables de base de données.
 +
 +<file>
 +[root@tchana maintenance]# 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.
 +[root@tchana maintenance]#
 +</file>
 +
 +==== Ajustement des droits, propriétaire et groupe ====
 +
 +On renforce la sécurité de l’accès aux fichiers <wrap em>f</wrap> en supprimant les droits à "other".
 +
 +<file>
 +[root@tchana maintenance]# find  /var/lib/nethserver/vhost/mediawiki/ -type f -exec chmod 640 {} \;
 +
 +[root@tchana maintenance]#
 +</file>
 +
 +On répète l'opération pour les répertoires <wrap em>d</wrap>.
 +
 +<file>
 +[root@tchana maintenance]# find /var/lib/nethserver/vhost/mediawiki/ -type d -exec chmod 2750 {} \;
 +
 +[root@tchana maintenance]#
 +</file>
 +
 +On ajuste __**R**__écursivement le //propriétaire:groupe//.
 +
 +<file>
 +[root@tchana maintenance]# chown -R apache:apache /var/lib/nethserver/vhost/mediawiki/
 +
 +[root@tchana maintenance]#
 +</file>
 +
 +Fichiers cachés.
 +
 +<file>
 +[root@tchana maintenance]# chown -R apache:apache /var/lib/nethserver/vhost/mediawiki/.*
 +
 +[root@tchana maintenance]#
 +</file>
 +
 +===== Fonctions administrateur et base de données =====
 +
 +Deux étapes sont nécessaires:
 +
 +  - Installation et mise à niveau __de la base de données__.
 +  - Réparation et mise à niveau __des données__.
 +
 +==== Installation et mise à niveau de la base de données ====
 +
 +Cette étape a été complétée à la section précédente [[nethserver_201_cahier_03_mediawiki#setupStore.php]] par le lancement de la commande php ''setupStore.php''.
 +
 +{{Images_icone-201-003_Note.png?25}} On peut relancer la mise à niveau de la base de données sans causer de dégâts.
 +
 +<WRAP column 40%>
 +On recherche la page **Special:SemanticMediaWiki**.
 +</WRAP>
 +<WRAP column 52%>
 +|{{ Images_Cahier-201-03-088.png?500 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On clique le lien **Spécial:SemanticMediaWiki**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-089.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +À l'onglet **Maintenance**, on clique **Initialiser ou mettre à niveau les tables**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-090.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +Tout s'est bien passé.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-091.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +==== Réparation et mise à niveau des données ====
 +
 +<WRAP column 40%>
 +On recherche la page **Special:SemanticMediaWiki**.
 +</WRAP>
 +<WRAP column 52%>
 +|{{ Images_Cahier-201-03-092.png?500 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On clique le lien **Spécial:SemanticMediaWiki**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-093.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +À l'onglet **Maintenance**, on clique **Commencer la mise à jour des données**.
 +
 +<WRAP column 22%>
 +Cette requête prend un certain temps //(plus de 20-30 minutes ou beaucoup plus)//.
 +
 +{{Images_Cahier-101-03-004.png?25}} On peut accélérer la mise à jour des données - voir plus bas...
 +
 +{{Images_icone-201-003_Note.png?25}} 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)//.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-094.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 46%>
 +Après quelques minutes, on rafraîchit la page pour voir la progression.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-095.png?500 }}|
 +
 +|{{ Images_Cahier-201-03-096.png?500 }}|
 +
 +|{{ Images_Cahier-201-03-097.png?500 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +=== Accélération de la mise à jour des données ===
 +
 +{{Images_Cahier-101-03-004.png?25}} On peut accéler la mise à jour des données en lançant la commande ci-dessous.
 +
 +<file>
 +[root@tchana maintenance]#  php /var/lib/nethserver/vhost/mediawiki/maintenance/runJobs.php --maxjobs 10000
 +
 +
 +</file>
 +
 +{{Images_Cahier-101-03-006.png?25}} Au retour de l'invite, on rafraîchit la page MediaWiki Sémantique ci-dessus.
 +
 +<WRAP column 22%>
 +Une fois l'opération terminée, l'écran ci-contre apparaît.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-098.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Allow php access to remote files ====
 +
 +<WRAP column 22%>
 +{{Images_Cahier-101-03-008.png?25}} L'installation de Semantic MediaWiki est installé. Il nous faut enlever l'accès PHP aux fichiers distants, car c'est une faille de sécurité.
 +
 +**Configuration -> Paramètres PHP ->** onglet **Php V7.2 SCL**.
 +
 +On décoche //**Allow php access to remote files**// **-> SOUMETTRE**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-099.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Vérification de l'installation =====
 +
 +<WRAP column 22%>
 +Si on n'est pas certain du bon déroulement des opérations, on peut vérifier avec:\\ 
 +**Accueil -> Pages spéciales -> Données et outils -> Version ->** cadre **Extensions installées**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-100.png?700 }}|
 +</WRAP>
 +
 +===== Création d'une page classique =====
 +
 +Nous allons créer une page classique que nous appellerons **TestSMW**.
 +
 +☑ On recherche cette page. Comme elle n'existe pas, Mediawiki nous offre de la créer **-> TestSMW**.
 +
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-101.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-102.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +☑ On entre le texte ci-dessous pour vérifier que Semantic Mediawiki affichera la propriété ''Dummypage'' lorsqu'on cherchera les propriétés de cette page:
 +
 +<file>
 +Property test: [[testproperty::Dummypage]]
 +</file>
 +
 +<WRAP column 22%>
 +☑ On donne une description sous //**Résumé**// et on clique **Prévisualiser**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-103.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +☑ Si on est satisfait de la page, on clique **Enregistrer**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-104.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +☑ Notre page apparaît et Semantic MediaWiki af­fiche les propriétés de la page.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-105.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +☑ Après avoir enregistré la page, on peut aussi cliquer sur le lien **Chercher les pro­pri­é­tés** dans la barre d'ou­tils à gauche.\\ 
 +Cette vue af­fi­che //**Testproperty**// avec la valeur //**Dummypage**//
 +</WRAP>
 +<WRAP column 17%>
 +|{{ Images_Cahier-201-03-106.png?700 }}|
 +</WRAP>
 +<WRAP column 53%>
 +|{{ Images_Cahier-201-03-107.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP centeralign>**Semantic Mediawiki //(SMW)// fonctionne correctement.**</WRAP>
 +\\ 
 +
 +====== 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**.
 +
 +<WRAP column 22%>
 +Ci-contre, les boutons que nous voulons ultimement obtenir pour faciliter la création de pages.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-108.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Téléchargement =====
 +
 +//Adresse de téléchargement://\\ 
 +[[https://www.mediawiki.org/wiki/Special:ExtensionDistributor/CharInsert|https://www.mediawiki.org/wiki/Special:ExtensionDistributor/CharInsert]].\\ 
 +[[https://www.mediawiki.org/wiki/Extension:CharInsert|https://www.mediawiki.org/wiki/Extension:CharInsert]]
 +
 +<WRAP column 22%>
 +On télécharge le fichier de l'extension dans un répertoire sur le poste de travail.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-109.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +On téléverse le fichier ''tar.gz'' sur le serveur, dans le répertoire des extensions:
 +
 +''/var/lib/nethserver/vhost/mediawiki/extensions''.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-110.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +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.
 +
 +<WRAP box round>
 +<file>
 +[root@tchana maintenance]# cd /var/lib/nethserver/vhost/mediawiki/extensions/
 +
 +[root@tchana extensions]#
 +</file>
 +</WRAP>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana extensions]# pwd
 +
 +/var/lib/nethserver/vhost/mediawiki/extensions
 +[root@tchana extensions]#
 +</file>
 +
 +On vérifie que l'extension ait bien été téléversée dans ce répertoire.
 +
 +<file>
 +[root@tchana extensions]# ls -asl CharInsert-REL1_31*
 +
 +24 -rw-r--r-- 1 root apache 22356  4 juin  00:39 CharInsert-REL1_31-b5f34be.tar.gz
 +[root@tchana extensions]#
 +</file>
 +
 +===== Extraction du fichier tar.gz =====
 +
 +On extraie.
 +
 +<file>
 +[root@tchana extensions]# 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
 +[root@tchana extensions]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana extensions]# ls -lsd CharInsert/
 +
 +4 drwxr-xr-x 6 sssd polkitd 4096 17 avril  2018 CharInsert/
 +[root@tchana extensions]#
 +</file>
 +
 +On supprime le fichier ''tar.gz''.
 +
 +<file>
 +[root@tchana extensions]# rm CharInsert-REL1_31-b5f34be.tar.gz
 +
 +rm : supprimer fichier « CharInsert-REL1_31-b5f34be.tar.gz » ? o
 +[root@tchana extensions]#
 +</file>
 +
 +==== Ajustement des droits, propriétaire et groupe ====
 +
 +On renforce la sécurité de l’accès aux fichiers <wrap em>f</wrap> en supprimant les droits à "other".
 +
 +<file>
 +[root@tchana extensions]# find CharInsert/ -type f -exec chmod 640 {} \;
 +
 +[root@tchana extensions]#
 +</file>
 +
 +On répète l'opération pour les répertoires <wrap em>d</wrap>.
 +
 +<file>
 +[root@tchana extensions]# find CharInsert/ -type d -exec chmod 2750 {} \;
 +
 +[root@tchana extensions]#
 +</file>
 +
 +On ajuste __**R**__écursivement le propriétaire:groupe.
 +
 +<file>
 +[root@tchana extensions]# chown -R apache:apache CharInsert/
 +
 +[root@tchana extensions]#
 +</file>
 +
 +Les fichiers cachés.
 +
 +<file>
 +[root@tchana extensions]# chown -R apache:apache CharInsert/.*
 +
 +[root@tchana extensions]#
 +</file>
 +
 +On vérifie,
 +
 +<file>
 +[root@tchana extensions]# ls -alsd CharInsert
 +
 +4 drwxr-s--- 6 apache apache 4096 17 avril  2018 CharInsert
 +[root@tchana extensions]#
 +</file>
 +
 +===== LocalSettings.php =====
 +
 +Il faut maintenant modifier le fichier ''LocalSettings.php'' pour indiquer à MediaWiki qu'une nouvelle extension est disponible.
 +
 +On se rend dans le répertoire racine du wiki.
 +
 +<file>
 +[root@tchana extensions]# cd /var/lib/nethserver/vhost/mediawiki
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On fait une sauvegarde du fichier qu'on s'apprête à modifier.
 +
 +<file>
 +[root@tchana mediawiki]# cp LocalSettings.php  LocalSettings.php_avant_CharInsert
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# ls -ls LocalSettings.php_avant_CharInsert
 +
 +8 -rw-r----- 1 root apache 7426  4 juin  00:52 LocalSettings.php_avant_CharInsert
 +[root@tchana mediawiki]#
 +</file>
 +
 +{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat >> /var/lib/nethserver/vhost/mediawiki/LocalSettings.php <<'EOT'
 +
 +#####  ***********************
 +# EXTENSION:CHARINSERT
 +# CharInsert is an extension that creates JavaScript links that when clicked, insert
 +# predefined text into the text box.
 +require_once( "$IP/extensions/CharInsert/CharInsert.php" );
 +
 +EOT
 +
 +
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# tail -7 LocalSettings.php
 +
 +#####  ***********************
 +# EXTENSION:CHARINSERT
 +# CharInsert is an extension that creates JavaScript links that when clicked, insert
 +# predefined text into the text box.
 +require_once( "$IP/extensions/CharInsert/CharInsert.php" );
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +===== Vérification sur le site =====
 +
 +<WRAP column 22%>
 +**Acceuil -> Pages spéciales -> Données et outils -> Version -> Extensions installées -> Greffons de l'analyseur syntaxique**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-111.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +En bas de la page, sous //**Balises étendues de l'analyseur syntaxique**//, on voit aussi //**<charinsert>**//.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-112.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== É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 ====
 +
 +<WRAP column 22%>
 +Sur la même page, nous cliquons **insertion de caractères absents des claviers usuels**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-114.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +La page s'affiche; c'est l'installation de l'extension //CharInsert// qui l'a créée. Elle est vide.
 +
 +**Modifier** pour éditer cette page.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-115.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On est prêt à entrer le texte de cette page...
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-116.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +{{Images_Cahier-101-03-003.png?22}} Nous allons copier le contenu de la page originale du site de __mediawiki.org__ et le coller sur notre page.
 +
 +<WRAP column 22%>
 +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 **Mediawiki:Edittools**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-117.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 46%>
 +On clique **View source**.
 +|{{ Images_Cahier-201-03-118.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +On sélectionne tout le texte **[Ctl + A]**, on le copie **[CTL + C]**...
 +|{{ Images_Cahier-201-03-119.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +  * ... et on le colle **[CTL + V]**, dans la page **MediaWiki:Edittools** de notre site.
 +  * On entre un commentaire:
 +
 +<file>
 +Copié de: https://www.mediawiki.org/w/index.php?title=MediaWiki:Edittools&action=edit
 +</file>
 +
 +<WRAP column 22%>
 +On clique **Enregistrer**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-120.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +Ce qui nous donne la page ci-contre.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-121.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +{{Images_icone-201-003_Note.png?25}} N'ayez crainte, plus loin lorsque nous aurons terminé, la page apparaîtra telle que ci-contre.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-122.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Page MediaWiki:Gadgets-definition ====
 +
 +La liste des gadgets disponibles est définie par la page **MediaWiki:Gadgets-definition**. C'est l'installation de l'extension //CharInsert// qui a aussi créé cette page.
 +
 +Nous allons éditer notre page **MediaWiki:Gadgets-definition** qui ne contiendra qu'une seule ligne et qui définira le gadget **Edittools**.
 +
 +<WRAP column 22%>
 +Exemple de cette future page. //(Voir plus loin pour le texte à copier/coller.)//
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-123.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +=== Syntaxe ===
 +
 +Format de la ligne de cette page.
 +
 +<file>
 +* nom_du_gadget [options (peut être omis)] | nom-page1-utilisée | nom-page2-utilisée...
 +</file>
 +
 +Une ligne de définition commence par un ou plusieurs <wrap em>*</wrap> //(le caractère astérisque)//.
 +
 +Premier champ:\\ 
 +//**(Nom du gadget)**//\\ 
 +**->** Le premier champ "nom<nowiki>_</nowiki>du<nowiki>_</nowiki>gadget" est le nom interne du gadget.\\ 
 +**->** Forme générale: **nom**<nowiki>_</nowiki>**du**<nowiki>_</nowiki>**gadget**.\\
 +**->** Exemple: **Edittools**.
 +
 +Deuxième champ:\\
 +//**(Options)**//\\ 
 +**->** Forme générale: **[option-1** <nowiki>|</nowiki> **option-2** <nowiki>|</nowiki> **... option-N]**.\\ 
 +**->** Exemple: **[ResourceLoader**<nowiki>|</nowiki>**Default]**.
 +
 +^Nom^Paramètres^Description^Depuis^
 +| ResourceLoader|Aucun|Marque les scripts du gadget comme étant compatible avec [[http://www.mediawiki.org/wiki/ResourceLoader|ResourceLoader]].|?|
 +| dependencies|Noms des modules ResourceLoader séparés par une virgule|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).|?|
 +| rights|Noms des privilèges séparés par une virgule|Rend le gadget visible dans les préférences uniquement aux utilisateurs qui ont les [[http://www.mediawiki.org/wiki/Manual:User_rights/fr#Droits_et_groupes|privilèges]].|?|
 +| default|Aucun|Rend le gadget actif par défaut pour tout le monde (même les IPs!). Les utilisateurs enregistrés peuvent toujours le désactiver dans leurs préférences.|1.18|
 +
 +Troisième champ:\\
 +//**(Pages JavaScript ou CSS)**//\\
 +**->** Le troisième champ fait référence aux pages de codes JavaScript ou CSS qui construisent le gadget. Les noms de ces pages doivent respectivement se terminer par .js ou .css. Un gadget peut utiliser n'importe quelle quantité de pages de code. Du code commun peut être inséré dans une page de code utilisée par plusieurs gadgets.\\ 
 +**->** Forme générale:  **nom-page1-utilisée | nom-page2-utilisée...**\\ 
 +**->** Exemple: **Edittools.js**.
 +
 +Voici un extrait de la page **MediaWiki:Gadgets-definition** du site [[https://www.mediawiki.org/|https://www.mediawiki.org/]]; vous pouvez la consulter en cherchant **MediaWiki:Gadgets-definition** puis cliquez **View source**.
 +
 +<WRAP box>
 +<file>
 +...
 +* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
 +* Edittools[ResourceLoader|default]|Edittools.js
 +* HotCat[ResourceLoader]|HotCat.js
 +...
 +</file>
 +</WRAP>
 +
 +=== Édition de la page MediaWiki:Gadgets-definition ===
 +
 +<WRAP column 22%>
 +Sur notre site, on cherche la page: **MediaWiki:Gadgets-definition**. C'est l'installation de l'extension //CharInsert// qui l'a aussi créée.
 +
 +Cliquer **Modifier**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-125.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +On entre le texte et la description ci-dessous, puis on enregistre.
 +
 +<file>
 +* Edittools[ResourceLoader|default]|Edittools.js
 +</file>
 +
 +<file>
 +Le premier greffon
 +</file>
 +
 +<WRAP column 22%>
 +Enregistrer.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-126.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +Voilà, la page a été modifiée.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-127.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +=== Vérification sur le site ===
 +
 +**Préférences -> Gadgets**.
 +
 +{{Images_icone-201-003_Note.png?25}} Le gadget est bien là et il est coché, car on a spécifié l'option //**default**// sur la ligne qu'on a insérée pour la page //MediaWiki:Gadgets-definition//. Cette option rend le gadget actif par défaut, pour tout le monde.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-128.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +{{Images_icone-201-003_Note.png?25}} L'onglet //**Gadgets**// n'apparaîtra dans la page //Spécial:Préférences// qu'après avoir édité la page //MediaWiki:Gadgets-definition// et il faut que cette dernière contienne au moins une ligne pour définir un gadget valide.\\ 
 +{{Images_Cahier-101-03-004.png?25}} Sur la page //Spécial:Préférence//, un utilisateur pourra sélectionner les gadgets qu'il désire utiliser.
 +
 +==== Page MediaWiki:Gadget-Edittools ====
 +
 +Le premier champ, "<nowiki>nom_du_gadget</nowiki>", d'une ligne de la page //MediaWiki:Gadgets-definition// est le nom interne du gadget. Ce champ réfère à une page qui explique en quelques mots ce que fait ce gadget.
 +
 +Le nom de cette page prend la forme suivante: **MediaWiki:Gadget-nom**<nowiki>_</nowiki>**du_gadget**.
 +
 +{{Images_icone-201-003_Note.png?25}} L'espace de noms **MediaWiki:** est implicite et il n'est pas écrit dans le premier champ de la ligne, mais il faut l'utiliser pour éditer la page.\\ 
 +{{Images_Cahier-101-03-006.png?25}} Le //nom interne du gadget// doit commencer par une lettre //([A-Za-z])// suivi par n'importe quelle suite de lettres, chiffres //([0-9])//, traits d’union //("-")//, tirets bas //("_")//, deux-points //(":")// et points //(".")//.
 +
 +Pour notre gadget, le nom de la page sera: **MediaWiki:Gadget-Edittools**. On utilise la syntaxe MediaWiki pour la description du gadget.
 +
 +<WRAP column 22%>
 +Sur notre site, on cherche la page: **MediaWiki:Gadget-Edittools**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-129.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +La page n'existe pas; on clique **Créer**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-130.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +On entre la ligne suivante.
 +
 +<file>
 +'''''EditTools''''' est un gadget qui enrichit l'édition de texte en regroupant les sections sous un menu déroulant et en convertissant les balises de la syntaxe en boutons cliquables.
 +</file>
 +\\ 
 +
 +<WRAP column 22%>
 +On donne une description.
 +
 +<file>
 +Le premier greffon
 +</file>
 +
 +**-> Enregistrer**
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-131.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +=== Vérification sur le site ===
 +
 +On se rend à la page **Préférences -> Gadgets**.
 +
 +Le gadget est toujours là et maintenant, la nouvelle description s'affiche.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-132.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +==== Page MediaWiki:Gadget-Edittools.js ====
 +
 +Sur notre site, on cherche la page: **MediaWiki:Gadget-Edittools.js -> Créer**.
 +
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-133.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-134.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +{{Images_Cahier-101-03-003.png?22}} 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 //MediaWiki:Gadget-Edittools.js//.
 +
 +On se rend sur le site [[http://www.mediawiki.org/|http://www.mediawiki.org]]
 +<WRAP column 22%>
 +On cherche **MediaWiki:Gadget-Edittools.js ->  View source**.\\ 
 +On sélectionne tout le texte **[Ctl + A]** et on le copie  **[Ctl + C]**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-135.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On revient sur notre site, on colle le texte **[Ctl + V]** sur notre page //MediaWiki:Gadget-Edittools.js//, on entre une description.
 +
 +<file>
 +Pour le greffon Edittools
 +</file>
 +
 +Puis, on clique **Enregistrer**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-136.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Vérification finale =====
 +
 +<WRAP column 22%>
 +Sur notre site, à la page d'**Acceuil**, on clique **Modifier**.
 +
 +Les boutons cliquables des balises sont là et ils sont bien définis.
 +
 +{{Images_Cahier-101-03-003.png?22}} Si les boutons n'apparaissent pas, on rafraîchit la page du navigateur.
 +
 +Le menu déroulant //**Standard**// est là, lui aussi.
 +
 +Avec les extensions //CharInsert// et //WikiEditor//, nous avons maintenant plus de choix pour le formatage de nos pages.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-137.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +\\ 
 +\\
 +
 +====== Masquer une révision (RevisionDelete) ======
 +
 +===== Introduction =====
 +
 +//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é attribué la permission **deleterevision**. Cette permission n'est offerte à aucun usager dans la configuration par défaut de MediaWiki.
 +
 +Cette fonctionnalité a la faculté de masquer/afficher: la révision elle-même, le nom de l'usager qui a fait l'édition de la page, l'édition du résumé ou toute combinaison de ces trois paramètres.
 +
 +Lorsque masqué, le contenu de la révision ne peut être vu par aucun usager si celui-ci ne possède pas le droit //deleterevision//. Essayer de comparer cette révision avec une autre ou tenter d'y accéder avec **&oldid=page** donnera une erreur disant que la révision a été enlevée des archives publiques. Il en sera de même pour la recherche par l'individu impliqué, d'une entrée masquée dans le journal et ne retournera aucun résultat.
 +
 +{{Images_icone-201-003_Note.png?25}} 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.
 +
 +{{Images_Cahier-101-03-003.png?22}} 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é,
 +  - le 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 =====
 +
 +{{Images_icone-201-003_Note.png?25}} __Les exemples de cette section sont ceux de la version 0.2.0 / 2018-07-11 de ce document__.
 +
 +Pour l'activation de //RevisionDelete//, on doit insérer quelque//(s)// paramètre//(s)// dans le fichier ''LocalSettings.php''.
 +
 +=== Masquer une révision par un usager ===
 +
 +{{Images_Cahier-101-03-006.png?25}} L'octroi de ce privilège aux usagers __n'est pas recommandé__.
 +
 +<WRAP box>
 +<file>
 +$wgGroupPermissions['user']['deleterevision'] = true;
 +</file>
 +</WRAP>
 +
 +=== Masquer une révision aux usagers ===
 +
 +<WRAP box>
 +<file>
 +$wgGroupPermissions['sysop']['deleterevision'] = true;
 +</file>
 +</WRAP>
 +
 +==== LocalSettings.php ====
 +
 +Si ce n'est déjà fait, on se rend dans le répertoire racine de notre MediaWiki.
 +
 +<WRAP box round>
 +<file>
 +[root@tchana ~]# cd /var/lib/nethserver/vhost/mediawiki
 +
 +[root@tchana mediawiki]#
 +</file>
 +</WRAP>
 +
 +On fait une sauvegarde du fichier qu'on s'apprête à modifier.
 +
 +<file>
 +[root@tchana mediawiki]# cp LocalSettings.php LocalSettings.php_avant_deleterevision
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# ls -ls LocalSettings.php_avant_deleterevision
 +
 +8 -rw-r----- 1 root apache 7664  4 juin  14:06 LocalSettings.php_avant_deleterevision
 +[root@tchana mediawiki]#
 +</file>
 +
 +Ce paramètre va donner le droit //RevisionDelete// à tous les administrateurs //(sysop)//.\\ 
 +{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat >> /home/e-smith/files/ibays/wiki/html/LocalSettings.php <<'EOT'
 +
 +#####  ***********************
 +# RevisionDelete
 +#
 +# Ce paramètre va donner le droit RevisionDelete à tous les administrateurs. Si on ajoute
 +# cette ligne dans LocalSettings.php, tout administrateur qui est logué va voir une case à
 +# cocher sur chaque ligne des révisions de même qu'un bouton au-dessus et en dessous des
 +# révisions qui affichera "Masquer/afficher les versions sélectionnées".
 +# Les versions et événements supprimés seront encore présents dans l'historique de la page
 +# et dans les journaux, mais leur contenu textuel sera inaccessible au public. Les autres
 +# administrateurs du Wiki de Micronator pourront toujours accéder au contenu caché et le
 +# restaurer à travers cette même interface, à moins que des restrictions supplémentaires ne
 +# soient mises en place. Contrairement à ce qu'indique le nom de cette page, les nformations
 +# ne sont pas effacées mais simplement cachées à la vue des usagers.
 +$wgGroupPermissions['sysop']['deleterevision'] = true;
 +
 +EOT
 +
 +
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# tail -16 LocalSettings.php
 +
 +#####  ***********************
 +# RevisionDelete
 +#
 +# Ce paramètre va donner le droit RevisionDelete à tous les administrateurs. Si on ajoute
 +# cette ligne dans LocalSettings.php, tout administrateur qui est logué va voir une case à
 +# cocher sur chaque ligne des révisions de même qu'un bouton au-dessus et en dessous des
 +# révisions qui affichera "Masquer/afficher les versions sélectionnées".
 +# Les versions et événements supprimés seront encore présents dans l'historique de la page
 +# et dans les journaux, mais leur contenu textuel sera inaccessible au public. Les autres
 +# administrateurs du Wiki de Micronator pourront toujours accéder au contenu caché et le
 +# restaurer à travers cette même interface, à moins que des restrictions supplémentaires ne
 +# soient mises en place. Contrairement à ce qu'indique le nom de cette page, les nformations
 +# ne sont pas effacées mais simplement cachées à la vue des usagers.
 +$wgGroupPermissions['sysop']['deleterevision'] = true;
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +==== Masquer une révision de la page "Test" ====
 +
 +Après avoir ajouté ces lignes dans ''LocalSettings.php'', tout administrateur qui est logué va voir une case à cocher sur chaque ligne des révisions de même qu'un bouton au-dessus et en dessous des révisions qui affichera "Masquer/afficher les versions sélectionnées".
 +
 +<WRAP column 22%>
 +{{Images_Cahier-101-03-006.png?25}} On crée la page **Test** et __on la modifie à quelques reprises__ puis, on la recherche.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-138.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +On clique **Afficher l'historique**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-139.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +On peut sélectionner une version et la masquer en cliquant **Afficher/masquer les versions sélectionnées**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-140.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +On sélectionne une version et on clique **Afficher/masquer les versions sélectionnées**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-141.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +Cocher les __restrictions de visibilité__ qu'on veut masquer, donner une __raison__ et **Appliquer à la révision sélectionnée**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-142.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +On confirme en cliquant **Appliquer à la révision sélectionné**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-143.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +{{Images_icone-201-003_Note.png?25}} Contrairement à ce qui est indiqué sur cette page, les informations __ne sont pas supprimées__ mais, simplement cachées à la vue des usagers.\\ 
 +{{Images_icone-201-003_Note.png?25}} //Les versions et les événements supprimés seront encore présents dans l'historique de la page et dans les journaux mais, leurs contenus textuels seront inaccessibles au public//. Les administrateurs du Wiki de Micronator pourront toujours accéder au contenu caché et le restaurer à travers cette même interface, à moins que des restrictions supplémentaires ne soient mises en place. 
 +
 +<WRAP column 22%>
 +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.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-144.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +=== Entrée dans le journal ===
 +
 +**Acceuil -> Pages spéciales ->** cadre ** Outils pour les pages -> Voir les pages supprimées -> journal des suppressions**.
 +
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-145.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-03-146.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +Le journal affiche qu'on a modifié la visibilité d'une révision sur la page //**Test**//:\\ 
 +<nowiki>-</nowiki> //contenu masqué//\\ 
 +<nowiki>-</nowiki> //résumé de modification masqué//\\ 
 +<nowiki>-</nowiki> //nom d'utilisateur masqué//.
 +
 +Il donne aussi la raison donnée pour le masquage:\\ 
 +<nowiki>-</nowiki> //(Pour un test)//.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-147.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +=== Masquer plusieurs révisions ===
 +
 +<WRAP column 22%>
 +Si on sélectionne plus d'une révisions...
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-148.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 22%>
 +... une page un peu plus complexe s'affiche.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-149.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +=== Droits des groupes d'utilisateurs ===
 +
 +**Acceuil -> Pages spéciales-> Utilisateurs et droits rattachés -> Droits des groupes d'utilisateurs -> Administrateurs**.
 +
 +<WRAP column 22%>
 +Une nouvelle ligne a été ajoutée.
 +</WRAP>
 +<WRAP column 70%>
 +{{ Images_Cahier-201-03-150.png?700 }}
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +\\ 
 +\\ 
 +
 +====== Ajouts au menu principal ======
 +
 +===== Introduction =====
 +
 +On veut ajouter une nouvelle ligne au menu principal.
 +
 +  - Nom de la nouvelle page: //**AideDeRF232**//
 +  - Titre de la nouvelle ligne du menu: //**Aide pour RF-232**//
 +
 +{{Images_Cahier-101-03-004.png?25}} Ici, nous utilisons une orthographe différente pour faire une distinction arbitraire entre le __Nom__ et le __Titre__ pour accentuer leur différence lors de l'ajout du lien de cette page au menu principal. Voir [[nethserver_201_cahier_03_mediawiki#Ajout d'une nouvelle ligne au menu]].
 +
 +===== Création de la page =====
 +
 +{{Images_icone-201-003_Note.png?25}} __Les exemples de ce chapitre sont ceux de la version 0.2.0 / 2018-07-11 de ce document__.
 +
 +On crée une nouvelle page contenant des liens d'aide qu'on nomme: **AideDeRF232** et on y ajoute des liens vers des pages d'aide.
 +
 +<WRAP column 46%>
 +Rechercher **AideDeRF232**.
 +|{{ Images_Cahier-201-03-151.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +Cliquer **AideDeRF232** pour créer la page.
 +|{{ Images_Cahier-201-03-152.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +Faire une liste à puces <wrap em>*</wrap> de liens d'aide.\\ 
 +{{Images_Cahier-101-03-003.png?22}} 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 le contenu de l'encadré et le coller dans la nouvelle page **-> Enregistrer**.
 +
 +<file>
 +* [http://www.mediawiki.org/wiki/Sysadmin_hub/fr Inst MAJ config]
 +* [http://meta.wikimedia.org/wiki/Help:Editor/fr Manuel de l'éditeur]
 +* [http://www.mediawiki.org/wiki/Manual:LocalSettings.php/fr LocalSettings.php]
 +* [http://meta.wikimedia.org/wiki/Help:Wikitext_examples/fr Syntaxe wiki]
 +* [http://meta.wikimedia.org/wiki/Help:Table/fr Les tableaux]
 +* [http://meta.wikimedia.org/wiki/Help:Link/fr Les liens]
 +* [http://www.mediawiki.org/wiki/Manual:Security Security]
 +* [http://dev.mysql.com/doc/refman/5.5/en/grant.html GRANT Syntax]
 +* [http://www.mediawiki.org/wiki/Manual:Configuring_file_uploads Téléchargements]
 +* [http://www.mediawiki.org/wiki/Manual:LocalSettings.php#Security Upload location]
 +* [http://www.mediawiki.org/wiki/Extension:Configure Extension:Configure]
 +* [http://www.mediawiki.org/wiki/Help:Assigning_permissions permissions]
 +* [http://www.mediawiki.org/wiki/Help:User_rights User rights]
 +* [https://commons.wikimedia.org/wiki/File%3ACheatsheet-en.svg CheatSheet]
 +* [https://www.mediawiki.org/wiki/Extension:Interwiki#Download Extension:Interwiki]
 +
 +
 +</file>
 +
 +<WRAP column 52%>
 +Ce qui donnera la page ci-contre.\\ 
 +{{Images_Cahier-101-03-003.png?22}} On clique quelques liens pour vérifier qu'ils fonctionnent correctement.
 +</WRAP>
 +<WRAP column 25%>
 +|{{ Images_Cahier-201-03-153.png?125 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Ajout d'une nouvelle ligne au menu =====
 +
 +<WRAP column 22%>
 +Pour éditer le menu, il faut recher­cher la page en incluant son espace de noms: **MediaWiki:Sidebar**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-154.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +La page //**MediaWiki:Sidebar**// apparaît; pour l'éditer, on clique **Modifier**.\\ 
 +Dans le format: __Nom-de-la-page|Titre du menu__, on ajoute la nouvelle ligne <wrap hi>** <nowiki>**</nowiki> AideDeRF232<nowiki>|</nowiki>Aide pour RF-232**</wrap>. //(Ne pas oublier " <wrap em>|</wrap>".)//
 +
 +<WRAP column 1%>
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +**<wrap em>-></wrap>**
 +
 +</WRAP>
 +<WRAP column 32%>
 +<file>
 +* navigation
 +** mainpage|mainpage-description
 +** recentchanges-url|recentchanges
 +** randompage-url|randompage
 +** helppage|help-mediawiki
 +** AideDeRF232|Aide pour RF-232
 +* SEARCH
 +* TOOLBOX
 +* LANGUAGES
 +</file>
 +
 +**Prévisualiser -> Enregistrer**.
 +</WRAP>
 +<WRAP column 57%>
 +|{{ Images_Cahier-201-03-155.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 46%>
 +La nouvelle ligne est ajoutée au menu principal.
 +|{{ Images_Cahier-201-03-156.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +**Aide pour RF-232**, la page des liens d'aide apparaît.
 +|{{ Images_Cahier-201-03-157.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +===== Ajout d'un nouveau bloc au menu =====
 +
 +Au lieu d'ajouter une ligne, on aurait pu ajouter un nouveau bloc <wrap hi>* NethServer</wrap> au menu principal. On recherche la page **MediaWiki:Sidebar** et on la modifie tel que ci-dessous.
 +
 +<file>
 +* navigation
 +** mainpage|mainpage-description
 +** recentchanges-url|recentchanges
 +** randompage-url|randompage
 +** helppage|help-mediawiki
 +* NethServer
 +** AideDeRF232|Aide pour RF-232
 +* SEARCH
 +* TOOLBOX
 +* LANGUAGES
 +</file>
 +
 +<WRAP column 32%>
 +|{{ Images_Cahier-201-03-158.png?400 }}|
 +</WRAP>
 +<WRAP column 60%>
 +|{{ Images_Cahier-201-03-159.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +
 +===== 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 ''LocalSettings.php''.
 +
 +{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat >> /var/lib/nethserver/vhost/mediawiki/LocalSettings.php <<'EOT'
 +
 +#####  ***********************
 +# Pour faire ouvrir les liens dans une nouvelle fenêtre.
 +#
 +$wgExternalLinkTarget = '_blank';
 +
 +EOT
 +
 +
 +</file>
 +
 +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**//.)//
 +
 +{{Images_icone-201-003_Note.png?25}} __Ne s'applique pas au //Menu Principal//__.
 +
 +Lorsque la valeur est changée, les affichages doivent être rafraîchis pour rendre l'assignation effective.
 +
 +Consulter aussi les liens: [[http://www.mediawiki.org/wiki/Manual:Hooks/LinkerMakeExternalLink|Manual:Hooks/LinkerMakeExternalLink]] et [[http://www.mediawiki.org/wiki/Manual:$wgNoFollowLinks|Manual:$wgNoFollowLinks]].
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +\\ 
 +\\ 
 +
 +====== Mise à jour de Mediawiki ======
 +
 +===== Restez à jour =====
 +
 +{{Images_Cahier-101-03-006.png?25}} Ici, mise à jour ne signifie pas de passer à une version supérieure de MediaWiki, mais seulement une mise à jour des fichiers de la branche actuelle.
 +
 +===== Mise à jour =====
 +
 +On se rend dans le répertoire racine de notre MediaWiki.
 +
 +<file>
 +[root@tchana ~]# cd /var/lib/nethserver/vhost/mediawiki/
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# pwd
 +
 +/var/lib/nethserver/vhost/mediawiki
 +[root@tchana mediawiki]#
 +</file>
 +
 +On met à jour. Toutes les dernières modifications concernant la branche que nous utilisons seront appliquées.
 +
 +<file>
 +[root@tchana mediawiki]# git pull
 +
 +remote: Counting objects: 5, done
 +remote: Finding sources: 100% (3/3)
 +remote: Total 3 (delta 2), reused 3 (delta 2)
 +Unpacking objects: 100% (3/3), done.
 +From https://gerrit.wikimedia.org/r/p/mediawiki/core
 +   63a9098..c698e1b  REL1_31    -> origin/REL1_31
 +Updating 63a9098..c698e1b
 +Fast-forward
 + package.json | 2 +-
 + 1 file changed, 1 insertion(+), 1 deletion(-)
 +[root@tchana mediawiki]#
 +</file>
 +
 +On met à jour les sous-modules.
 +
 +<file>
 +[root@tchana mediawiki]# git submodule update --init
 +
 +[root@tchana mediawiki]#
 +</file> 
 +
 +Rien n'est retourné, il n'existe aucune mise à jour pour les sous-modules.
 +
 +==== Ajustement des droits, propriétaire et groupe ====
 +
 +Ci-dessus, il y a eu <wrap em>1 insertion(+)</wrap>. On n'est jamais trop prudent... On renforce la sécurité de l’accès aux fichiers <wrap em>f</wrap> en supprimant les droits à "other".
 +
 +<file>
 +[root@tchana mediawiki]# find . -type f -exec chmod 640 {} \;
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On répète l'opération pour les répertoires <wrap em>d</wrap>.
 +
 +<file>
 +[root@tchana mediawiki]# find . -type d -exec chmod 2750 {} \;
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On ajuste __**R**__écursivement le propriétaire:groupe.
 +
 +<file>
 +[root@tchana mediawiki]# chown -R apache:apache *
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +Fichiers cachés.
 +
 +<file>
 +[root@tchana mediawiki]# chown -R apache:apache .*
 +
 +[root@tchana mediawiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana mediawiki]# ls -als
 +
 +total 3404
 +   4 drwxr-s--- 16 apache apache    4096  4 juin  16:14 .
 +   0 drwxr-xr-x  3 root   root        23 25 mai   18:12 ..
 +   8 -rw-r-S---  1 apache apache    4697  3 juin  15:20 api.php
 +...
 +   4 -rw-r-S---  1 apache apache     207  3 juin  15:20 .eslintrc.json
 +...
 +   8 -rw-r-S---  1 apache apache    7791  4 juin  16:09 LocalSettings.php
 +...
 +   4 drwxr-s--- 40 apache apache    4096  4 juin  12:29 vendor
 +[root@tchana mediawiki]#
 +</file>
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +\\ 
 +\\ 
 +
 +====== Mise à jour des Collections ======
 +
 +Présentement, nous avons deux Collections d'installées: //**PHP**// et //**MariaDB 10.2**//. Elles peuvent être mises à jour à la console du serveur.
 +
 +===== Mises à jour =====
 +
 +On lance les mises à jour des deux Collections.
 +
 +<file>
 +[root@tchana ~]# yum update -y nethserver-php-scl nethserver-rh-mariadb102
 +
 +Modules complémentaires chargés : changelog, fastestmirror, nethserver_events
 +...
 + * ce-base: mirror.atlanticmetro.net
 +...
 +Résolution des dépendances
 +--> Lancement de la transaction de test
 +---> Le paquet nethserver-php-scl.x86_64 0:1.2.4-1.ns7.sdl sera mis à jour
 +...
 +Dépendances résolues
 +...
 +Résumé de la transaction
 +============================================================================================
 +Installation            ( 3 Paquets en dépendance)
 +Mettre à jour  1 Paquet
 +
 +Taille totale des téléchargements : 754 k
 +...
 +  Installation : php72-php-opcache-7.2.19-2.el7.remi.x86_64                             1/5
 +...
 +  Vérification : nethserver-php-scl-1.2.4-1.ns7.sdl.x86_64                              5/5
 +
 +Dépendances installées :
 +  php71-php-opcache.x86_64 0:7.1.30-1.el7.remi php72-php-opcache.x86_64 0:7.2.19-2.el7.remi
 +  php73-php-opcache.x86_64 0:7.3.6-1.el7.remi
 +
 +Mis à jour :
 +  nethserver-php-scl.x86_64 0:1.2.5-1.ns7.sdl
 +
 +Terminé !
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_icone-201-003_Note.png?25}} Les mises à jour disponibles ont été installées.\\ 
 +{{Images_Cahier-101-03-003.png?22}} Dans la commande ci-dessus, on peut omettre l'option <wrap em>-y</wrap> et ''yum'' demandera si on veut mette a jour. Il suffit de répondre <wrap em>y</wrap> ou <wrap em>n</wrap> pour oui ou non.
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +\\ 
 +\\ 
 +
 +====== Mises à jour de NethServer ======
 +
 +===== Serveur NethServer =====
 +
 +De temps à autre, il faut mettre à jour le Serveur NethServer pour diverses raisons: suite à des mises à jour des logiciels qui composent NethServer, failles de sécurité découvertes par des utilisateurs ou des développeurs, etc.
 +
 +<WRAP column 46%>
 +<nowiki>-</nowiki> **Administration -> Gestionnaire des logiciels ->** onglet **Mises à jour**.\\ 
 +<nowiki>-</nowiki> **TÉLÉCHARGER ET INSTALLER**.
 +|{{ Images_Cahier-201-03-160.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +\\ 
 +\\ 
 +À la fin de la mise à jour, **Recharger la page**.
 +|{{ Images_Cahier-201-03-161.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== Instantané VirtualBox =====
 +
 +{{Images_Cahier-101-03-004.png?25}} À ce stade-ci, on peut prendre un instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
 +\\ 
 +\\ 
 +
 +====== Appendices ======
 +
 +===== Écran conventionnel de démarrage =====
 +
 +<WRAP column 45%>
 +Si nous voulons voir l'écran conventionnel de démarrage tel que ci-contre, il suffit de supprimer un seul paramètre dans le fichier de configuration de grub:
 +
 +<WRAP centeralign>
 + ''/etc/default/grub''
 +</WRAP>
 +|{{ Images_Cahier-101-03-368.png?400 }}|
 +</WRAP>
 +<WRAP column 45%>
 +|{{ Images_Cahier-101-03-367.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Suppression du paramètre rhgb ====
 +
 +Ligne originale dans le fichier ''/etc/default/grub''.
 +
 +<file>
 +GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=VolGroup/lv_root rd.lvm.lv=VolGroup/lv_swap nodmraid rhgb quiet"
 +</file>
 +
 +Après avoir enlevé le paramètre **rhgb**.
 +
 +<file>
 +GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=VolGroup/lv_root rd.lvm.lv=VolGroup/lv_swap nodmraid quiet"
 +</file>
 +
 +On signale le changement en régénérant le fichier de configuration.
 +
 +<file>
 +[root@tchana ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
 +
 +Generating grub configuration file ...
 +Found linux image: /boot/vmlinuz-3.10.0-957.5.1.el7.x86_64
 +Found initrd image: /boot/initramfs-3.10.0-957.5.1.el7.x86_64.img
 +Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
 +Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
 +Found linux image: /boot/vmlinuz-0-rescue-8ee070fd1a7a4e8daf17a7dae9f85ac1
 +Found initrd image: /boot/initramfs-0-rescue-8ee070fd1a7a4e8daf17a7dae9f85ac1.img
 +done
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_Cahier-101-03-005.png?25}} Au prochain réamorçage, le nouveau fichier grub sera effectif.
 +\\ 
 +\\ 
 +
 +===== Table de mappe de clavier =====
 +
 +On affiche les différentes mappes de clavier(( **Table de mappe de clavier**: n.f. Disposition des touches d'un clavier.\\ //Référence:// [[http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=18050861#eng|http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=18050861#eng]]. \\ \\ )) "ca" disponibles.
 +
 +<file>
 +[root@tchana ~]# localectl list-keymaps | grep ca
 +
 +ca
 +ca-eng
 +ca-fr-dvorak
 +ca-fr-legacy
 +ca-multi
 +ca-multix
 +dvorak-ca-fr
 +es-cat
 +ph-capewell-dvorak
 +ph-capewell-qwerf2k6
 +[root@tchana ~]#
 +</file>
 +
 +On active le clavier //**ca-multi**//.
 +
 +<file>
 +[root@tchana ~]# localectl set-keymap ca-multi
 +
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# localectl
 +
 +   System Locale: LANG=fr_FR.UTF-8
 +       VC Keymap: ca-multi
 +      X11 Layout: us
 +[root@tchana ~]#
 +</file>
 +\\ 
 +
 +===== Fermeture automatique de session (session timeout) =====
 +
 +//Référence:// [[http://docs.nethserver.org/en/v7/access.html#session-timeouts|http://docs.nethserver.org/en/v7/access.html#session-timeouts]]. \\ 
 +Par défaut //(à partir de NethServer 7.5.1804)//, une session de gestion du serveur se termine après **60** minutes d'inactivité //(délai d'inactivité)// et expire 8 heures après la connexion //(durée de vie de la session)//.
 +
 +La commande ci-dessous définit **2** heures de délai d'inactivité et **16** heures de durée de vie de session maximale. Le temps est exprimé en secondes.
 +
 +<file>
 +[root@tchana ~]# config setprop httpd-admin MaxSessionIdleTime 7200 MaxSessionLifeTime 57600
 +
 +[root@tchana ~]#
 +</file>
 +
 +Désactivation des délais.
 +
 +<file>
 +[root@tchana ~]# config setprop httpd-admin MaxSessionIdleTime '' MaxSessionLifeTime ''
 +
 +[root@tchana ~]#
 +</file> 
 +
 +{{Images_Cahier-101-03-006.png?25}}  Les nouvelles valeurs de délais affecteront les nouvelles sessions. Ils ne changent aucune session active.
 +\\ 
 +\\ 
 +
 +
 +===== Fuseau horaire =====
 +
 +Pour le fuseau horaire, il existe un fichier pour //**Montréal**//.
 +
 +<file>
 +[root@tchana ~]# ls -ls /usr/share/zoneinfo/America/ -> grep Montreal
 +
 + 4 -rw-r--r--  3 root root 3477  1 avril 08:27 Montreal
 +[root@tchana ~]#
 +</file>
 +
 +==== Changement du fuseau horaire ====
 +
 +On affiche le fuseau horaire actuel.
 +
 +<file>
 +[root@tchana ~]# ls -l /etc/localtime
 +
 +lrwxrwxrwx 1 root root 37 19 mai   23:48 /etc/localtime -> ../usr/share/zoneinfo/America/Toronto
 +[root@tchana ~]#
 +</file>
 +
 +On change le fuseau horaire pour celui de Montréal.
 +
 +<file>
 +[root@tchana ~]# timedatectl set-timezone America/Montreal
 +
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# ls -l /etc/localtime
 +
 +lrwxrwxrwx 1 root root 38 22 mai   14:02 /etc/localtime -> ../usr/share/zoneinfo/America/Montreal
 +[root@tchana ~]#
 +</file>
 +
 +Voilà! Le fuseau horaire Montréal est récupéré...
 +\\ 
 +\\ 
 +
 +===== Certificat Let's Encrypt =====
 +
 +==== Description ====
 +
 +Un certificat émis par l'autorité de certification **Let's Encrypt** vous permettra de chiffrer les connexions de votre serveur avec une clé TLS/SSL reconnue mondialement. Les utilisateurs pourront utiliser https.
 +
 +//Référence:// [[https://fr.wikipedia.org/wiki/Let's_Encrypt|https://fr.wikipedia.org/wiki/Let's_Encrypt]]. \\ 
 +Let's Encrypt est une autorité de certification //(CA)// lancée le 3 décembre 2015 //(Bêta Version Publique)//. Cette autorité fournit des certificats gratuits X.509 pour le protocole cryptographique TLS au moyen d'un mécanisme automatisé destiné à se passer du processus complexe actuel impliquant la création manuelle, la validation, la signature, l'installation et le renouvellement des certificats pour la sécurisation des sites Internet.
 +
 +=== Examen du certificat ===
 +
 +{{Images_Cahier-101-03-006.png?25}}  On examine le certificat émis par Let's Encrypt pour notre serveur //**dorgee.micronator-101.org**// qui est directement branché à l'Internet.
 +
 +Si la demande de certificat a fonctionnée sans erreur, essayez de vous connecter à la page de l'interface Web du Serveur NethServer. Le certificat devrait incorporer tous les noms d'hôtes que vous avez inclus et être valide pour les quatre-vingt-dix prochains jours.
 +
 +On se connecte à l'interface Web: https://www.micronator-101.org:980.
 +
 +<WRAP column 30%>
 +<nowiki>-</nowiki> Le cadenas est vert. \\ 
 +<nowiki>-</nowiki> On se logue.
 +|{{ Images_Cahier-101-03-369.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +<nowiki>-</nowiki> On clique le **cadenas**.\\ 
 +<nowiki>-</nowiki> On clique l'icône  "**>**".
 +|{{ Images_Cahier-101-03-370.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\
 +**Plus d'informations**.
 +|{{ Images_Cahier-101-03-371.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP center>
 +<WRAP column 45%>
 +\\
 +\\
 +<nowiki>-</nowiki> Onglet **Sécurité**.\\
 +<nowiki>-</nowiki> Afficher le certificat.
 +|{{ Images_Cahier-101-03-372.png?400 }}|
 +</WRAP>
 +<WRAP column 45%>
 +<nowiki>-</nowiki> Onglet **Détails**.\\ 
 +<nowiki>-</nowiki> //**Émis pour**//  micronator-101.org\\ 
 +<nowiki>-</nowiki> //**Émis par**//  Let's Encrypt Authority X3\\
 +<nowiki>-</nowiki> On voit la date de début et de fin.
 +|{{ Images_Cahier-101-03-373.png?400 }}|</WRAP>
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP center>
 +<WRAP column 45%>
 +\\
 +\\
 +<nowiki>-</nowiki> **Validité  ->  Pas après**.\\ 
 +<nowiki>-</nowiki> Le certificat est valide pour 90 jours.
 +|{{ Images_Cahier-101-03-374.png?400 }}|
 +</WRAP>
 +<WRAP column 45%>
 +<nowiki>-</nowiki> **Nom alternatif du sujet du certificat**.\\ 
 +<nowiki>-</nowiki> Tous nos CNAME choisis lors de la demande du certificat sont affichés.\\ 
 +<nowiki>-</nowiki> **Fermer** toutes les fenêtres du certificat.\\
 +|{{ Images_Cahier-101-03-375.png?400 }}|</WRAP>
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Vérification par Qualsys SSLLabs ====
 +
 +{{Images_Cahier-101-03-006.png?25}}  __Seulement pour un serveur directement branché à l'Internet__. {{Images_Cahier-101-03-006.png?25}}
 +
 +Une fois que vous avez obtenu votre certificat, testez-le en vous rendant chez Qualsys SSLLabs, [[https://www.ssllabs.com/ssltest/|https://www.ssllabs.com/ssltest/]].\\ 
 +Soumettez le nom FQDN de votre domaine pour vérifier que le certificat fonctionne correctement.
 +
 +<WRAP center>
 +<WRAP column 45%>
 +\\ 
 +//**Hostname:**//  **micronator-101.org  ->  Submit**.
 +|{{ Images_Cahier-101-03-376.png?400 }}|
 +</WRAP>
 +<WRAP column 45%>
 +<nowiki>-</nowiki> //**Overall Rating**//  →  A.\\ 
 +<nowiki>-</nowiki> //**Certificate**//  →  100%.
 +|{{ Images_Cahier-101-03-377.png?400 }}|</WRAP>
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Répertoire well-known ====
 +
 +//Référence:// [[https://dev-notes.eu/2017/01/apache-directives-in-config-vs-htaccess/|https://dev-notes.eu/2017/01/apache-directives-in-config-vs-htaccess/]]\\ 
 +//Référence:// [[http://httpd.apache.org/docs/current/howto/htaccess.html#page-header|http://httpd.apache.org/docs/current/howto/htaccess.html#page-header]].\\ 
 +Pour un serveur branché directement à l'Internet, lors d'une demande d'un certificat à Let's Encrypt, ce dernier doit pouvoir accéder au répertoire ''.well-known'' et à son sous-répertoire ''acme-challenge''.
 +
 +On peut faire la demande de certificat à la page de l'interface Web:\\ 
 +**Configuration  ->  Certificat du serveur  ->**  on déroule le menu et on choisit  **Requête de certificat Let's Encrypt**.
 +
 +Pour plus de détails, voir le [[nethserver_101_cahier_05_vdsl_fqdn_internet_et_nethserver|Cahier-05]]: //VDSL, FQDN, Internet et NethServer//.
 +
 +__Pour un serveur branché directement à l'Internet__, nous devons créer un fichier ''/etc/httpd/conf.d/z_well-known.conf'' pour indiquer à Apache de rendre accessibles le répertoire ''.well-known'' et son sous-répertoire ''acme-challenge''.
 +
 +**Création du fichier z_well-known.conf**
 +
 +{{Images_Cahier-101-03-006.png?25}}  Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat > /etc/httpd/conf.d/z_well-known.conf <<'EOT'
 +Alias "/.well-known/acme-challenge/" "/var/www/html/.well-known/acme-challenge/"
 +<Directory "/var/www/html/.well-known/acme-challenge/">
 +   Require all granted
 +   Options -Indexes +FollowSymLinks
 +   AllowOverride All
 +</Directory>
 +
 +EOT
 +
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# ls -als /etc/httpd/conf.d/z_well-known.conf
 +
 +4 -rw-r--r-- 1 root root 231 10 juin  11:03 /etc/httpd/conf.d/z_well-known.conf
 +[root@tchana ~]#
 +</file>
 +
 +On affiche le contenu du fichier.
 +
 +<file>
 +[root@tchana ~]# cat /etc/httpd/conf.d/z_well-known.conf
 +
 +Alias "/.well-known/acme-challenge/" "/var/www/html/.well-known/acme-challenge/"
 +<Directory "/var/www/html/.well-known/acme-challenge/">
 +   Require all granted
 +   Options -Indexes +FollowSymLinks
 +   AllowOverride All
 +</Directory>
 +
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_Cahier-101-03-006.png?25}}  Il n'y a pas de ligne vide au dessus de __Alias...__ Ci-dessus, Nous en avons inséré une afin de faciliter la copie de la commande.
 +
 +**Sauvegarde du fichier**
 +
 +On vérifie si le nom du fichier ''/etc/httpd/conf/z_well-known.conf'' est déjà présent dans le fichier d'inclusion de la sauvegarde des données: ''/etc/backup-data.d/custom.include'', sinon on l'insère.
 +
 +{{Images_Cahier-101-03-006.png?25}}  Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +NouvelleInclusion="/etc/httpd/conf/z_well-known.conf"
 +if grep -Fxq "$NouvelleInclusion" /etc/backup-data.d/custom.include
 +then
 +    # L'entrée a été trouvée dans custom.include
 +    echo -e "\nLe fichier custom.include contient déjà l'entrée:\n$NouvelleInclusion \n"
 +else
 +    # L'entrée n'a pas été trouvée dans custom.include
 +    echo -e "$NouvelleInclusion" >> /etc/backup-data.d/custom.include
 +    echo -e "\nL'entrée: $NouvelleInclusion a été ajoutée\n"
 +fi
 +
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# cat /etc/backup-data.d/custom.include | grep z_well-known.conf
 +
 +/etc/httpd/conf/z_well-known.conf
 +[root@tchana ~]#
 +</file>
 +
 +Ci-dessus, il n'y a pas de ligne vide avant "<nowiki>/etc/httpd/conf/z_well-known.conf</nowiki>". Nous en avons inséré une afin de faciliter la copie de la commande.
 +
 +**Redémarrage du démon httpd**
 +
 +On redémarre le démon Apache afin qu'il relise ses fichiers de configuration.
 +
 +<file>
 +[root@tchana ~]# systemctl restart httpd
 +
 +[root@tchana ~]#
 +</file>
 +\\
 +
 +===== Changement du mot de passe de root =====
 +
 +//Référence:// [[https://www.rootusers.com/how-to-reset-root-user-password-in-centos-rhel-7/|https://www.rootusers.com/how-to-reset-root-user-password-in-centos-rhel-7/]].\\ 
 +Réinitialiser le mot de passe de root est normalement une tâche simple si vous êtes déjà connecté avec les privilèges de root. Toutefois, si vous oubliez le mot de passe et devez le changer, les choses deviennent un peu plus difficiles.\\
 +Le processus a changé de la version 6 de CentOS/RHEL //(Red Hat Enterprise Linux)// à la version 7. Auparavant, vous démarriez en **mode mono-utilisateur**, puis changiez le mot de passe en tant qu'utilisateur root. À partir de la version 7, les modes équivalents sont: **mode de secours** et **mode d’urgence**. Cependant, ces modes d'opération nécessitent le mot de passe de root avant de pouvoir faire quoi que ce soit. Cette section va vous guider dans le nouveau processus pour changer le mot de passe perdu de root. Cette procédure sera exécutée à la console du système Linux, assurez-vous donc que vous y avez accès avant de commencer.
 +
 +{{Images_Cahier-101-03-003.png?22}}  Comme pour toutes les tâches de maintenance du système, assurez-vous de disposer d'une sauvegarde/instantané du système avant de poursuivre.
 +
 +Si votre système Linux est en cours d'exécution, redémarrez-le. S'il ne roule pas, démarrez-le.
 +
 +Pour **CentOS 7**, le menu de démarrage vous laissera 5 secondes pour sélectionner le noyau du système d’exploitation à démarrer. Ces 5 secondes sont importantes, car elles permettent aux administrateurs de sélectionner différents noyaux ou d’éditer les paramètres du noyau existant avant le démarrage.
 +
 +Dans le menu de démarrage, appuyez sur "**e**" pour modifier le noyau existant tel qu'indiqué ci-dessous.
 +
 +{{ Images_Cahier-101-03-378.png?800 }}
 +\\
 +
 +Dans les options de //**grub**//, recherchez la ligne qui commence par ''linux16'' et allez à la fin. Entrez ''rd.break'' à la fin de cette ligne tel qu'indiqué ci-dessous.
 +
 +<file>
 +rd.break
 +</file>
 +
 +{{ Images_Cahier-101-03-379.png?800 }}
 +\\
 +
 +Appuyez sur **[Ctrl]** + **[x]** pour démarrer avec ces options qui vous amèneront à l'invite //**initramfs**// avec un shell root.
 +
 +{{ Images_Cahier-101-03-380.png?800 }}
 +\\
 +
 +À ce stade, le système de fichiers racine est monté en mode lecture seule //(ro)// dans le répertoire ''/sysroot'' et doit être remonté avec les autorisations de lecture/écriture //(rw)// pour que nous puissions réellement apporter certaines modifications. Ceci est réalisé avec la commande ''mount -o  remount,rw  /sysroot''.
 +
 +<file>
 +switch_root:/# mount -o  remount,rw  /sysroot
 +
 +switch_root:/#
 +</file>
 +
 +{{ Images_Cahier-101-03-381.png?800 }}
 +\\
 +
 +Une fois le système de fichiers remonté, changez-le en une //**prison chroot**// afin que le répertoire ''/sysroot'' soit utilisé comme racine du système de fichiers. Ceci est nécessaire pour que toutes les commandes que nous exécuterons se rapportent à ''/sysroot''. La commande à lancer est ''chroot  /sysroot''.
 +
 +<file>
 +switch_root:/# chroot /sysroot
 +
 +sh-4.2#
 +</file>
 +
 +{{ Images_Cahier-101-03-382.png?800 }}
 +\\
 +
 +À partir d'ici, le mot de passe de root peut être réinitialisé à l’aide de la commande ''passwd''.
 +
 +<file>
 +sh-4.2# passwd
 +
 +Changing password for user root.
 +New password: Nouveau-mot-de-passe-de-root
 +Retype new passwd: Nouveau-mot-de-passe-de-root
 +passwd: all authentification tokens updated successfully.
 +sh-4.2#
 +</file> 
 +
 +{{ Images_Cahier-101-03-383.png?800 }}
 +\\
 +
 +Si vous n'utilisiez pas SELinux, vous pourriez redémarrer à ce stade et tout irait bien. Cependant, par défaut, CentOS/RHEL-7 active SELinux. Nous devons donc corriger le contexte du fichier ''/etc/shado''w. En effet, lorsque la commande ''passwd'' est exécutée, elle crée un nouveau fichier ''/etc/shadow''. SELinux n'étant pas en cours d'exécution dans ce mode, le fichier est créé sans aucun contexte SELinux, ce qui peut entraîner des problèmes lors du redémarrage.
 +
 +On crée le fichier ''/.autorelabel'' à l’aide de ''touch''.
 +
 +<file>
 +sh-4.2# touch  /.autorelabel
 +
 +sh-4.2#
 +</file> 
 +
 +{{Images_Cahier-101-03-006.png?25}}  La création de ce fichier effectuera automatiquement un ré-étiquetage de tous les fichiers au prochain démarrage. Notez que cela peut prendre un certain temps en fonction de la quantité de fichiers que vous avez. Peut prendre environ **2** minutes pour un serveur CentOS-7 ordinaire.
 +
 +On quitte l'environnement chroot.
 +
 +<file>
 +sh-4.2# exit
 +
 +exit
 +sh-4.2#
 +</file>  
 +
 +On quitte le shell racine initramfs //(peut prendre un certain temps, être patient...)//. Le serveur s'amorce.
 +
 +<file>
 +sh-4.2# exit
 +
 +logout
 +...
 +</file>
 +
 +==== Vérification ====
 +
 +__À la console du serveur__, vous devriez pouvoir vous connecter et utiliser le système avec le nouveau mot de passe que vous avez créé.
 +\\ 
 +\\ 
 +
 +===== ERROR Failed to send host log message =====
 +
 +Cette erreur s'affiche seulement lors de l'amorçage d'un serveur roulant sous **VirtualBox**.
 +
 +{{ Images_Cahier-101-03-384.png?800 }}
 +\\
 +
 +<WRAP center>
 +<WRAP column 45%>
 +<nowiki>-</nowiki> On arrête le Serveur NethServer.\\ 
 +<nowiki>-</nowiki> À l'écran VirtualBox, on sélectionne la machine  **->  État actuel  ->  Configuration**.
 +|{{ Images_Cahier-101-03-385.png?400 }}|
 +\\
 +Au retour, on amorce le Serveur NethServer et le message ne s'affichera plus.
 +</WRAP>
 +<WRAP column 45%>
 +\\
 +**Affichage  ->  onglet Écran  ->  Contrôleur graphique  ->**  on change pour  **VboxVGA  ->  OK**.
 +|{{ Images_Cahier-101-03-386.png?400 }}|
 +</WRAP>
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +===== Martian source =====
 +
 +Si dans le fichier journal ''/var/log/messages'', vous voyez plusieurs lignes telles que ci-dessous, c'est que l'IP de la passerelle du réseau vert de la carte //**enp0s3**// ou les //**Serveurs DNS**// ne sont corrects.
 +
 +<file>
 +...IPv4: martian source 192.168.1.1...
 +...IPv4: martian source 192.168.1.1...
 +...IPv4: martian source 192.168.1.1...
 +</file>
 +
 +==== Passerelle du réseau de la carte enp0s3 ====
 +
 +On trouve notre passerelle en lançant un ''traceroute'' vers google.com
 +
 +<file>
 +[root@dorgee ~]# traceroute google.com
 +
 +traceroute to google.com (172.217.165.14), 30 hops max, 60 byte packets
 +  lo0-0-lns03-tor.teksavvy.com (206.248.155.139)  10.367 ms  11.449 ms  11.487 ms
 +  ae0-2150-bdr01-tor.teksavvy.com (69.196.136.172)  11.523 ms  11.793 ms  11.826 ms
 +  72.14.212.134 (72.14.212.134)  11.868 ms  12.430 ms  12.306 ms
 +  74.125.244.161 (74.125.244.161)  12.736 ms 74.125.244.145 (74.125.244.145)  14.002 ms 74.125.244.161 (74.125.244.161)  13.174 ms
 +  216.239.40.255 (216.239.40.255)  13.577 ms  13.923 ms 216.239.41.175 (216.239.41.175)  13.923 ms
 +  yyz12s06-in-f14.1e100.net (172.217.165.14)  13.020 ms  12.009 ms  11.291 ms
 +[root@dorgee ~]#
 +</file>
 +L'adresse IP de la ligne #1 est //**206.248.155.139**// et elle est donc la passerelle utilisée par notre connexion.
 +\\
 +\\
 +
 +<WRAP column 45%>
 +**Configuration  ->  Réseau  ->  Périphérique enp0s3  →  Éditer**.
 +
 +On change l'IP de la passerelle pour l'IP de l'interface vert / enp0s3 →  **206.248.155.139**.
 +
 +**SOUMETTRE**.
 +</WRAP>
 +<WRAP column 45%>
 +|{{ Images_Cahier-101-03-395.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Serveurs DNS ====
 +
 +//Référence://  [[https://korben.info/1-1-1-1-ou-9-9-9-9-ou-8-8-8-8-quel-dns-choisir.html|https://korben.info/1-1-1-1-ou-9-9-9-9-ou-8-8-8-8-quel-dns-choisir.html]].\\ 
 +... Le **DNS de Cloudflare** est un bon DNS, car il est le plus rapide, mais aussi parce qu'ils ont pris les devants et s'engagent à ne pas revendre les données, et ne conservent pas les logs au-delà de 24h...\\ 
 +Le principal avantage bien sûr, c'est que contrairement au DNS de Google qui permet de mieux vous profiler pour vous balancer de la pub, on sait que Cloudflare ne trempe pas là dedans. Cela reste une boîte américaine, donc c'est évidemment à prendre avec toutes les précautions d'usage...
 +
 +//Référence://  pour //**8.8.8.8**// -  [[https://www.dnsperf.com/dns-resolver/google|https://www.dnsperf.com/dns-resolver/google]].
 +
 +//Autre référence:// comparaison mondiale des performances de différents DNS:\\
 + [[https://medium.com/@nykolas.z/dns-resolvers-performance-compared-cloudflare-x-google-x-quad9-x-opendns-149e803734e5|https://medium.com/@nykolas.z/dns-resolvers-performance-compared-cloudflare-x-google-x-quad9-x-opendns-149e803734e5]].
 +
 +//Référence://  pour ci-dessous //**1.1.1.1**//  -  [[https://www.dnsperf.com/#!dns-resolvers|https://www.dnsperf.com/#!dns-resolvers]].
 +
 +<WRAP center>
 +<WRAP column 45%>
 +|{{ Images_Cahier-101-03-396.png?400 }}|
 +</WRAP>
 +<WRAP column 45%>
 +|{{ Images_Cahier-101-03-397.png?400 }}|</WRAP>
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 45%>
 +**Configuration  ->  Réseau  ->  Serveurs DNS**.
 +
 +On ajuste le //**DNS Primaire**// et //**Secondaire**//.
 +
 +{{Images_Cahier-101-03-005.png?25}} Le serveur //**DNS primaire**// **1.1.1.1** est le plus rapide et le plus utilisée de tout l'Internet.
 +
 +Le serveur //**DNS secondaire**// **206.248.182.3** est le défaut de notre FAI.
 +
 +**Soumettre**.
 +</WRAP>
 +<WRAP column 45%>
 +|{{ Images_Cahier-101-03-398.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +Si votre FAI filtre l'adresse 1.1.1.1, prendre 8.8.8.8 ou une de celles citées dans la référence ci-dessous:\\ 
 +[[https://medium.com/@nykolas.z/dns-resolvers-performance-compared-cloudflare-x-google-x-quad9-x-opendns-149e803734e5|https://medium.com/@nykolas.z/dns-resolvers-performance-compared-cloudflare-x-google-x-quad9-x-opendns-149e803734e5]]. 
 +\\ 
 +\\ 
 +
 +===== Serveur de production =====
 +
 +{{ Images_Cahier-201-03-165.png?600}}
 +Une fois que vous maîtrisez tous les aspects de: MediaWiki, Let's Encrypt, Fail2ban, ClamAV et de BackupPC, vous pouvez créer un réseau de Production incluant un serveur MediaWiki, un serveur de sauvegardes et un serveur de développement; ce qui est le but ultime que nous vous souhaitons.
 +<WRAP clear></WRAP>
 +\\ 
 +\\ 
 +{{NS-101_002_Banniere_Victoire.png?50}}  Victoire totale, hissons la bannière de la victoire.
 +\\ 
 +
 +----
 +
 +====== Crédits ======
 +
 +© 2016-2018-2019 RF-232\\ 
 +Auteur: Michel-André\\ 
 +Remerciement: Tous les contributeurs GNU/GPL\\ 
 +Intégré par: Michel-André Robillard CLP\\ 
 +Contact: michelandre at micronator.org\\ 
 +
 +Répertoire de ce document: <nowiki>E:\000_DocPourRF232_general\RF-232_NethServer-201\RF-232_Cours_NethServer-201-03_MediaWiki_2019-08-15_15h37.odt</nowiki>.
 +
 +Historique des modifications:
 +
 +^Version^Date^Commentaire^Auteur|
 +|0.0.1|2016-05-04|Début.|Michel-André|
 +|0.0.2|2016-05-16|Correction index.htm pour index.html. Vérifié que tous les wiki sont de couleur Magenta. Enlevé le chapitre sur "Privilèges sur la base de données WikiDB". Ajout de la commande find pour le répertoire images.|Michel-André|
 +|0.1.0|2018-05-19|Mise à jour pour SME-9.2 et MediaWiki-1.30.0|Michel-André|
 +|0.1.1|2018-07-03|- Ajustements pour les référentiels remi-safe, smecontribs et epel.\\ - Ajout de l'Extension:WikiEditor.\\ - Mise à jour de certaines explications.|Michel-André|
 +|0.1.2|2018-07-05|Ajout pour la sauvegarde/récupération de la BD de MySQL55.|Michel-André|
 +|0.2.0|2018-07-11|- Mise à jour pour smeserver-mysql57.\\ - Changements pour l'installation de Mediawiki-1.31 à l'aide de git, pour le téléchargement et la mise à jour de MediaWiki, au lieu d'utiliser un fichier tar.gz.\\ - Ré-écriture des chapitres: Répertoires spéciaux à sauvegarder et Sau­vegarde/restauration MySQL57.|Michel-André|
 +|0.3.0|2018-11-24|Mise à jour pour vers la version MediaWiki-1.31.1/LTS.|Michel-André|
 +|4.0.0|2019-05-25|Adaptation pour NethServer-7.6.1810.|Michel-André|
 +|4.0.1|2019-05-25|Correction pour le ©.|Michel-André|
 +|4.1.0|2019-08-14|Ajustements pour DokuWiki.|Michel-André|
 +|4.1.1|2019-08-19|Suppression du "sticky bit" pour les fichiers|Michel-André|
 +|12345678901| | |12345678901|
 +
 +
 +<html><hr style="width:50%; margin: 0 auto;"></html>
 +
 +===== AVIS DE NON-RESPONSABILITÉ =====
 +
 +Ce document est uniquement destiné à informer. Les informations, ainsi que les contenus et fonctionnalités de ce do­cument sont fournis sans engagement et peuvent être modifiés à tout moment. RF‑232 n'offre aucune garantie quant à l'actualité, la conformité, l'exhaustivité, la qualité et la durabilité des informations, contenus et fonctionnalités de ce document. L'accès et l'utilisation de ce document se font sous la seule responsabilité du lecteur ou de l'utilisateur.
 +
 +RF‑232 ne peut être tenu pour responsable de dommages de quelque nature que ce soit, y compris des dommages di­rects ou indirects, ainsi que des dommages consécutifs résultant de l'accès ou de l'utilisation de ce document ou de son contenu.
 +
 +Chaque internaute doit prendre toutes les mesures appropriées //(mettre à jour régulièrement son logiciel antivirus, ne pas ouvrir des documents suspects de source douteuse ou non connue)// de façon à protéger le contenu de son ordina­teur de la contamination d'éventuels virus circulant sur la Toile.
 +
 +Toute reproduction interdite
 +Vous reconnaissez et acceptez que tout le contenu de ce document, incluant mais sans s’y limiter, le texte et les images, sont protégés par le droit d’auteur, les marques de commerce, les marques de service, les brevets, les secrets industriels et les autres droits de propriété intellectuelle. Sauf autorisation expresse de RF-232, vous acceptez de ne pas vendre, délivrer une licence, louer, modifier, distribuer, copier, reproduire, transmettre, afficher publiquement, exécuter en public, publier, adapter, éditer ou créer d’oeuvres dérivées de ce document et de son contenu.
 +
 +==== Avertissement====
 +
 +Bien que nous utilisions ici un vocabulaire issu des techniques informatiques, nous ne prétendons nullement à la précision technique de tous nos propos dans ce domaine.
 +\\
 +\\