Outils pour utilisateurs

Outils du site


nethserver_201_cahier_04_dokuwiki

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
nethserver_201_cahier_04_dokuwiki [2020-01-09 20:48] michelandrenethserver_201_cahier_04_dokuwiki [2025-01-12 19:30] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +\\ 
 +[[cours_nethserver_101|{{ Images_Cahier-201-04-000.png?650 }}]]
 +\\ 
 +====== Description générale ======
  
 +Ce document décrit l'installation et la configuration de **DokuWiki** sur un Serveur NethServer-7.6.1810:
 +
 +Ce cahier 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-04-003.png?450 }}
 +\\ 
 +
 +===== DokuWiki =====
 +
 +//Référence:// [[https://fr.wikipedia.org/wiki/DokuWiki|https://fr.wikipedia.org/wiki/DokuWiki]].
 +
 +**DokuWiki** est un moteur de wiki libre sous licence GNU GPL conforme aux standards, simple à utiliser, dont le but principal est de créer des documentations de toute sorte. Ce logiciel est développé en **PHP** par **Andreas Gohr**. Il est destiné aux équipes de développement, aux travaux de groupe et aux petites entreprises. Il a une syntaxe simple qui assure la lisibilité des fichiers de données en dehors du Wiki et facilite la création de textes structurés. Toutes les données sont stockées dans des fichiers texte et donc aucune base de données n’est nécessaire.
 +
 +DokuWiki a été créé par Andreas Gohr en juin 2004. La première version officielle est sortie en juillet sur //Freshmeat//. L’une des étapes importantes de la phase du développement a été la refonte des analyseurs syntaxiques et de la partie rendu en janvier 2005. Cette nouvelle réalisation a été synonyme de performances bien meilleures et a ainsi rendu DokuWiki utilisable pour les projets de documentation plus importants. Elle a apporté une interface générique pour les extensions qui a simplifié le travail de développement et de maintenance des extensions. Ces améliorations ont bien été perçues par la communauté puisque DokuWiki fait désormais partie des distributions //Debian// depuis avril 2005 et //Gentoo// depuis juillet 2005. Aujourd’hui, DokuWiki fait partie des moteurs de Wiki les plus connus.
 +
 +//Manuel DokuWiki:// [[https://www.dokuwiki.org/fr:manual|https://www.dokuwiki.org/fr:manual]].
 +
 +===== 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-01]]: -> Les bases de Linux.
 +  - [[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis|Cahier-02]]: -> Installation et configuration des logiciels prérequis sur le poste de travail.
 +  - [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: -> Création d'un Serveur NethServer virtuel.
 +  - [[nethserver_101_cahier_04_local_certificat_let_encrypt|Cahier-04]]: -> Serveur NethServer LOCAL & Let's Encrypt.
 +  - [[nethserver_101_cahier_05_vdsl_fqdn_internet_et_nethserver|Cahier-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-06]]: -> Installation de WordPress.
 +  - [[nethserver_101_cahier_07_nethserver_wordPress_wordfence|Cahier-07]]: -> Installation de l'extension de sécurité Wordfence.
 +  - [[nethserver_101_cahier_08_woocommerce_paypal_stripe|Cahier-08]]: -> WooCommerce, comptes chez Stripe et   PayPal pour les paiements en ligne.
 +  - [[nethserver_101_cahier_09_duplicator_migration|Cahier-09]]: -> Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator.
 +  - [[nethserver_101_cahier_10_mandataire_inverse|Cahier-10]]: -> Serveur mandataire inversé.
 +  - [[nethserver_101_cahier_11_nethserver_backuppc|Cahier-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.
 +
 +==== Logiciels ====
 +
 +Tous les logiciels nécessaires sont du domaine public ou LIBRE sous licence //GPL//; ils ne coûtent pas un sou. Le seul achat nécessaire est l'obtention d'un nom de domaine au prix initial de $15 CAD et son renouvellement annuel d'environ $30 CAD.
 +
 +==== But final ====
 +
 +Après avoir suivi le //Cours NethServer-101//, vous posséderez un site de //Commerce en ligne// fiable et hautement sécuritaire. De plus, vous pourrez utiliser un clone de votre site, sur un //Serveur NethServer// virtuel roulant sur votre poste de travail, pour tester de nouvelles extensions et applications sans compromettre la sécurité ou l'intégrité de votre site en ligne.
 +
 +{{ NS-101_001_Diagramme.png?500 }}
 +
 +===== 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-04-004.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-101.org ====
 +
 +Serveur et passerelle pour la documentation.
 +
 +==== tchana.micronator-dev.org ====
 +
 +Serveur virtuel LOCAL sous VirtualBox Version 6.0.4 r128413 //(Qt5.6.2)//.
 +
 +==== Répertoire d'installation ====
 +
 +Nous installerons DokuWiki dans le répertoire ''/var/lib/nethserver/vhost/dokuwiki''.
 +
 +===== Poste de travail =====
 +
 +Windows-8.1, on utilisera ce poste de travail pour tous ce document.
 +
 +===== É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 DokuWiki.
 +
 +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 DokuWiki. 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-04-100.png?600}}
 +==== FQDN du serveur ====
 +
 +**Configuration -> DNS ->** onglet **Hôtes**.
 +
 +Le FQDN du serveur: //micronator-dev.org// est bien ce qu'il devrait être.\\ 
 +//mediawiki.micronator-dev.org// provient du [[nethserver_201_cahier_03_mediawiki|Cahier-03]]: //MediaWiki// du "Cours NethServer-201".
 +\\
 +
 +{{ 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}} Dokuwiki 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-04-101.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 ''dokuwiki'' 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 DokuWiki.\\ 
 +{{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 dokuwiki__ 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 qu'entre autres 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>
 +\\
 +
 +===== Installation de git =====
 +
 +On installe ''git'' qui nous aidera pour les mises à jour de notre version DokuWiki.
 +
 +<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 dokuwiki =====
 +
 +**Gestion -> Hôtes virtuels -> CRÉER NOUVEAU ->** onglet  **Général**.
 +
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-04-005.png?400 }}|
 +==== NOM ====
 +
 +On peut utiliser n'importe quel mot pour **NOM**, mais il est préférable d'utiliser **dokuwiki**, 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 DokuWiki.
 +
 +On entre les informations demandées.
 +
 +**SOUMETTRE**.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-04-006.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-04-007.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +<nowiki>-</nowiki> Onglet **Paramètres PHP**.\\ 
 +<nowiki>-</nowiki> On ajuste tel que ci-dessous.\\ 
 +<wrap em><nowiki>***</nowiki></wrap> //**Autoriser l'accès PHP aux fichiers distants**// est une faille de sécurité.\\ 
 +<nowiki>-</nowiki> **SOUMETTRE**.
 +|{{ Images_Cahier-201-04-008.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On vérifie le résultat.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-009.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Vérification du répertoire dokuwiki ====
 +
 +La création de l'hôte virtuel a produit un nouveau répertoire: ''/var/lib/nethserver/vhost/dokuwiki''. Ce répertoire prend le nom utilisé à la section [[nethserver_201_cahier_04_dokuwiki#NOM]].
 +
 +<file>
 +[root@tchana ~]# ls -alsd /var/lib/nethserver/vhost/dokuwiki
 +
 +0 drwxr-sr-x 2 ftp apache 7 juin  13:01 /var/lib/nethserver/vhost/dokuwiki
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_icone-201-003_Note.png?25}} On voit que le propriétaire est <wrap em>ftp</wrap> au cas où on utiliserait le service FTP pour la manipulation des fichiers du site. DokuWiki 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/dokuwiki
 +
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# ls -alsd  /var/lib/nethserver/vhost/dokuwiki
 +
 +0 drwxr-sr-x 2 apache apache 7 juin  13:01 /var/lib/nethserver/vhost/dokuwiki
 +[root@tchana ~]#
 +</file>
 +
 +==== Création d'une entrée DNS pour l'hôte dokuwiki ====
 +
 +<WRAP column 22%>
 +**Configuration -> DNS ->** onglet **Hôtes -> CRÉER NOUVEAU**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-010.png?700 }}|
 +</WRAP>
 +<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 DokuWiki.
 +
 +L'adresse IP est celle de l'interface du réseau LOCAL du Serveur NethServer.
 +
 +**SOUMETTRE**.
 +
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-04-011.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On vérifie le résultat.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-012.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +===== Configuration de la messagerie électronique =====
 +
 +Si on veut que DokuWiki 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-04-014.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +<nowiki>-</nowiki> On entre les informations demandées.\\ 
 +<nowiki>-</nowiki> **SOUMETTRE**.
 +|{{ Images_Cahier-201-04-015.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On vérifie le résultat.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-016.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Création d'un alias pour l'utilisateur michelandre ====
 +
 +Il nous faur créer un //alias// de messagerie pour l'utilisateur __michelandre__ qui sera l'administrateur du site DokuWiki. Ainsi, il pourra recevoir des courriels en provenance de DokuWiki et autres hôtes virtuels.
 +
 +<WRAP column 46%>
 +\\ 
 +\\ 
 +**Gestion -> Adresse mail ->** onglet  **Alias de messagerie -> CRÉER NOUVEAU**.
 +|{{ Images_Cahier-201-04-017.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-04-018.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On vérifie le résultat.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-03-021.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +L'utilisateur __michelandre__ pourra voir ses courriels en se connectant à:
 +
 +  * https://www.micronator-dev.org/webmail  ou
 +  * https://www.mail.dokuwiki.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 à DokuWiki 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.dokuwiki.micronator-dev.org**.</WRAP>
 +
 +<nowiki>-</nowiki> On entre les informations demandées.
 +
 +<nowiki>-</nowiki> **SOUMETTRE**.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-04-024.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 15%>
 +On vérifie le résultat.
 +</WRAP>
 +<WRAP column 77%>
 +|{{ Images_Cahier-201-04-025.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.dokuwiki.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 DokuWiki.
 +
 +{{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 //dokuwiki//. La prochaine section règlera ce problème.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-04-026.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.
 +\\ 
 +
 +===== Fichier httpd.conf =====
 +
 +Le fichier ''/etc/httpd/conf/httpd.conf'' contient toutes les directives qui contrôlent le démon //httpd//. Celle qui a le plus d'influence sur les fichiers ''.htaccess'' du répertoire d'un site Web et de ses sous-répertoires est la directive ''AllowOverride'' vers la ligne 151 du fichier de configuration du démon.
 +
 +Par défaut, cette directive est à **None** et fait en sorte que le démon //httpd// ne traitera aucun fichier ''.htaccess'' qu'il trouvera; il les ignorera tous.
 +
 +Plus loin, après l'installation de DokuWiki, plusieurs fichiers ''.htaccess'' existeront.
 +
 +Nous allons donc créer un fichier ''/etc/httpd/conf.d/<wrap em>y</wrap>_dokuwiki.conf'' pour indiquer à Apache de lire les fichiers ''.htaccess'' qu'il rencontrera dans le répertoire ''dokuwiki''.
 +
 +==== Création du ficher y_docuwiki.conf ====
 +
 +{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat > /etc/httpd/conf.d/y_dokuwiki.conf <<'EOT'
 +# ************************************** 
 +# Michel-André, 2019-06-10 10h19
 +# Pour permettre la lecture de fichiers .htaccess du répertoire DokuWiki
 +<Directory "/var/lib/nethserver/vhost/dokuwiki">
 +    # Permet de suivre les liens synboliques
 +    Options Indexes FollowSymLinks
 +
 +    #
 +    # La directive AllowOverride ALL signifie d'écraser les directives du fichier de
 +    # configuration httpd.conf lorsque le démon rencontre des directives identiques
 +    # dans un fichier .htaccess.
 +    AllowOverride All
 +    #
 +    # Contrôle qui peut obtenir des pages de ce serveur.
 +    #
 +    Require all granted
 +</Directory>
 +
 +EOT
 +
 +
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# cat /etc/httpd/conf.d/y_dokuwiki.conf  |  grep -i AllowOverride
 +
 +    # La directive AllowOverride ALL signifie d'écraser les directives du fichier de
 +    AllowOverride All
 +[root@tchana ~]#
 +</file>
 +
 +==== Sauvegarde du fichier ====
 +
 +On vérifie si le nom du fichier ''/etc/httpd/conf.d/dokuwiki.conf'' est déjà inclus 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.d/y_dokuwiki.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 y_dokuwiki.conf
 +
 +/etc/httpd/conf.d/y_dokuwiki.conf
 +[root@tchana ~]#
 +</file>
 +
 +Ci-dessus, il n'y a pas de ligne vide avant __/etc/httpd/conf.d/y<nowiki>_</nowiki>dokuwiki.conf__. Nous en avons inséré une afin de faciliter la copie de la commande.
 +
 +{{Images_icone-201-003_Note.png?25}} Lors de son lancement, Apache incorpore tous les fichiers qui se trouvent dans le répertoire ''/etc/httpd/conf.d/'' et qui ont l'extension ''.conf''. Cette incorporation des fichiers se fait par ordre alphabétique et c'est pour cette raison qu'on a nommé notre nouveau fichier de configuration ''y_dokuwiki.conf''.
 +
 +===== 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]].
 +
 +__<wrap em>Pour un serveur branché directement à l'Internet</wrap>__, lors d'une demande d'un certificat de Let's Encrypt, ce dernier doit pouvoir accéder au répertoire ''.well-known'' et à son sous-répertoire ''acme-challenge''.
 +
 +Nous allons créer un fichier ''/etc/httpd/conf.d/z_well-known.conf'' pour indiquer à Apache de rendre accessibles les deux répertoires en question.
 +
 +==== 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 avons inséré une ligne vide pour 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à inclus 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 __/etc/httpd/conf/z<nowiki>_</nowiki>well-known.conf__. 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 son fichier de configuration.
 +
 +<file>
 +[root@tchana ~]# systemctl restart httpd
 +
 +[root@tchana ~]#
 +</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.
 +\\ 
 +\\ 
 +
 +====== Certificat Let's Encrypt ======
 +
 +===== CNAME =====
 +
 +{{Images_Cahier-101-03-006.png?25}} On met à jour le certificat Let's Encrypt qu'on a installé selon la section 
 +[[nethserver_101_cahier_04_local_certificat_let_encrypt#Certificat pour un domaine LOCAL|Certificat pour un domaine LOCAL]]
 +du Cahier-04: //NethServer LOCAL & Certificat Let's Encrypt// du "Cours NethServer-101".
 +
 +Il faut ajouter les CNAME dokuwiki 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:
 +\\ 
 +
 +**dokuwiki**
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +
 +**www.dokuwiki** 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +
 +**mail.dokuwiki** 
 +\\ 
 +\\ 
 +\\ 
 +\\ 
 +
 +**www.mail.dokuwiki**
 +</WRAP>
 +<WRAP column 72%>
 +|{{ Images_Cahier-201-04-027.png?700 }}|
 +
 +|{{ Images_Cahier-201-04-028.png?700 }}|
 +
 +|{{ Images_Cahier-201-04-029.png?700 }}|
 +
 +|{{ Images_Cahier-201-04-030.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-04-031.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 dix de ses CNAME.
 +
 +{{Images_Cahier-101-03-006.png?25}} Nous avons inclus les CNAME //mediawiki//, car précédemment, nous avons aussi installé MediaWiki selon le [[nethserver_201_cahier_03_mediawiki|Cahier-03]]: //MediaWiki// du "Cours NethServer-201". Si vous n'avez pas MediaWiki, ne pas inclure ces CNAME dans la commande ci-dessous.
 +
 +{{Images_icone-201-003_Note.png?25}} Le certificat sera "//émis pour//" le premier domaine <wrap em>-d</wrap> 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                          \
 +                      -d dokuwiki.micronator-dev.org                                \
 +                      -d www.dokuwiki.micronator-dev.org                            \
 +                      -d mail.dokuwiki.micronator-dev.org                           \
 +                      -d www.mail.dokuwiki.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
 +
 +...
 +[ven. juin  7 13:50:12 EDT 2019] Installing cert to:/etc/pki/tls/certs/cert.pem
 +[ven. juin  7 13:50:12 EDT 2019] Installing CA to:/etc/pki/tls/certs/chain.pem
 +[ven. juin  7 13:50:12 EDT 2019] Installing key to:/etc/pki/tls/private/privkey.pem
 +[ven. juin  7 13:50:12 EDT 2019] Run reload cmd: /sbin/e-smith/signal-event certificate-update
 +[ven. juin  7 13:50:12 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.
 +
 +{{Images_Cahier-101-03-006.png?25}} Nous avons inclus les CNAME //mediawiki//, car précédemment, nous avons aussi installé MediaWiki selon le [[nethserver_201_cahier_03_mediawiki|Cahier-03]]: //MediaWiki// du "Cours NethServer-201". Si vous n'avez pas MediaWiki, ne pas inclure ces CNAME dans la commande ci-dessous.
 +
 +<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                          \
 +                      -d dokuwiki.micronator-dev.org                                \
 +                      -d www.dokuwiki.micronator-dev.org                            \
 +                      -d mail.dokuwiki.micronator-dev.org                           \
 +                      -d www.mail.dokuwiki.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
 +
 +...
 +[ven. juin  7 13:52:13 EDT 2019] Installing cert to:/etc/pki/tls/certs/cert.pem
 +[ven. juin  7 13:52:13 EDT 2019] Installing CA to:/etc/pki/tls/certs/chain.pem
 +[ven. juin  7 13:52:13 EDT 2019] Installing key to:/etc/pki/tls/private/privkey.pem
 +[ven. juin  7 13:52:13 EDT 2019] Run reload cmd: /sbin/e-smith/signal-event certificate-update
 +[ven. juin  7 13:52:16 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.dokuwiki.micronator-dev.org|https://www.dokuwiki.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 DokuWiki.
 +
 +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-04-032.png?400 }}|
 +</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>
 +
 +===== 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.
 +\\ 
 +\\ 
 +
 +====== Installation de DokuWiki ======
 +
 +===== Téléchargement avec git =====
 +
 +On se rend dans le répertoire racine de notre futur DokuWiki.
 +
 +<file>
 +[root@tchana ~]# cd /var/lib/nethserver/vhost/dokuwiki/
 +
 +[root@tchana dokuwiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana dokuwiki]# pwd
 +
 +/var/lib/nethserver/vhost/dokuwiki
 +[root@tchana dokuwiki]#
 +</file>
 +
 +On indique à ''git'' la branche et le répertoire de destination pour l'extraction.
 +
 +<file>
 +[root@tchana dokuwiki]# git clone --branch stable                             \
 +                                  https://github.com/splitbrain/dokuwiki.git  \
 +                                  /var/lib/nethserver/vhost/dokuwiki
 +
 +Cloning into '/var/lib/nethserver/vhost/dokuwiki'...
 +remote: Enumerating objects: 135, done.
 +remote: Counting objects: 100% (135/135), done.
 +remote: Compressing objects: 100% (100/100), done.
 +remote: Total 105612 (delta 61), reused 81 (delta 35), pack-reused 105477
 +Receiving objects: 100% (105612/105612), 32.98 MiB | 1.80 MiB/s, done.
 +Resolving deltas: 100% (72692/72692), done.
 +[root@tchana dokuwiki]#
 +</file>
 +
 +==== Ajustement du propriétaire et du groupe ====
 +
 +<file>
 +[root@tchana dokuwiki]# chown -R apache:apache *  ; chown -R apache:apache .*
 +
 +[root@tchana dokuwiki]#
 +</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 dokuwiki]# find . -type f -exec chmod 640 {} \;
 +
 +[root@tchana dokuwiki]#
 +</file>
 +
 +On répète l'opération pour les répertoires <wrap em>d</wrap>.
 +
 +<file>
 +[root@tchana dokuwiki]# find . -type d -exec chmod 2750 {} \;
 +
 +[root@tchana dokuwiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana dokuwiki]# ls -als
 +
 +total 140
 + 4 drwxr-s--- 11 apache apache  4096  7 juin  14:30 .
 + 0 drwxr-xr-x  4 apache apache    39  7 juin  10:10 ..
 + 4 -rw-r-S---  1 apache apache  1777  7 juin  14:30 appveyor.yml
 + 0 drwxr-s---  2 apache apache   160  7 juin  14:30 bin
 + 4 -rw-r-S---  1 apache apache  1062  7 juin  14:30 composer.json
 +20 -rw-r-S---  1 apache apache 18058  7 juin  14:30 composer.lock
 + 4 drwxr-s---  2 apache apache  4096  7 juin  14:30 conf
 +20 -rw-r-S---  1 apache apache 18092  7 juin  14:30 COPYING
 + 0 drwxr-s---  3 apache apache    36  7 juin  14:30 _cs
 + 4 drwxr-s--- 12 apache apache  4096  7 juin  14:30 data
 + 4 -rw-r-S---  1 apache apache  3547  7 juin  14:30 doku.php
 + 4 -rw-r-S---  1 apache apache   344  7 juin  14:30 .editorconfig
 +20 -rw-r-S---  1 apache apache 19141  7 juin  14:30 feed.php
 + 0 drwxr-s---  8 apache apache   163  7 juin  14:30 .git
 + 4 -rw-r-S---  1 apache apache   331  7 juin  14:30 .gitattributes
 + 4 -rw-r-S---  1 apache apache  1935  7 juin  14:30 .gitignore
 + 4 -rw-r-S---  1 apache apache  1684  7 juin  14:30 .htaccess.dist
 + 4 drwxr-s---  8 apache apache  4096  7 juin  14:30 inc
 + 4 -rw-r-S---  1 apache apache  2097  7 juin  14:30 index.php
 +20 -rw-r-S---  1 apache apache 19233  7 juin  14:30 install.php
 + 0 drwxr-s---  8 apache apache   104  7 juin  14:30 lib
 + 4 -rw-r-S---  1 apache apache   306  7 juin  14:30 README
 + 0 drwxr-s---  6 apache apache   163  7 juin  14:30 _test
 + 4 -rw-r-S---  1 apache apache  1402  7 juin  14:30 .travis.yml
 + 0 drwxr-s--- 11 apache apache   209  7 juin  14:30 vendor
 + 4 -rw-r-S---  1 apache apache    21  7 juin  14:30 VERSION
 +[root@tchana dokuwiki]#
 +</file>
 +
 +===== Lancement de l'installation =====
 +
 +<WRAP column 22%>
 +On se rend sur notre site: https://dokuwiki.FQDN/install.php.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-033.png?600 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +Choisissez votre langue **->** entrez les informations demandées **-> Enregistrer**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-034.png?600 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On clique: **votre nouveau DokuWiki**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-035.png?600 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +**S'identifier**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-036.png?600 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +On entre le justificatif du super-utilisateur **-> S'identifier**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-037.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 22%>
 +Notre DokuWiki 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 70%>
 +|{{ Images_Cahier-201-04-038.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP centeralign>**Victoire totale, notre site DokuWiki est fonctionnel.**</WRAP>
 +
 +====== Configuration ======
 +
 +===== Préparation =====
 +
 +{{Images_Cahier-101-03-003.png?22}} Si nous avons installé DokuWiki plus d'une fois à cause d'une erreur, si nous avons changé l'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-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>
 +
 +===== Login =====
 +
 +Si ce n'est déjà fait, on se logue à notre DokuWiki **https://www.dokuwiki.micronator-dev.org -> S'identifier**.
 +
 +<WRAP column 30%>
 +|{{ Images_Cahier-201-04-039.png?400 }}|
 +</WRAP>
 +<WRAP column 62%>
 +|{{ Images_Cahier-201-04-040.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 30%>
 +On entre le justificatif du super-utilisateur **-> S'identifier**.
 +</WRAP>
 +<WRAP column 40%>
 +|{{ Images_Cahier-201-04-041.png?600 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 30%>
 +===== Logo =====
 +
 +Le fichier de notre logo doit être nommé ''logo.png''.
 +
 +**Gestionnaire Multimédia ->** onglet  **Envoyer -> Sélection de fichier...**
 +</WRAP>
 +<WRAP column 40%>
 +|{{ Images_Cahier-201-04-042.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 46%>
 +On sélectione notre logo: **logo.png -> Ouvrir**.
 +|{{ Images_Cahier-201-04-043.png?400 }}|
 +</WRAP>
 +<WRAP column 46%>
 +**Envoyer**.
 +|{{ Images_Cahier-201-04-044.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +On rafraîchit la page et notre logo apparaît.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-045.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +Notre logo se trouve dans le répertoire: ''/var/lib/nethserver/vhost/dokuwiki/data/media/''.
 +
 +<file>
 +[root@tchana ~]# ls -als /var/lib/nethserver/vhost/dokuwiki/data/media/wiki/logo.png
 +
 +12 -rw-r--r-- 1 apache apache 9485  8 juin  15:44 /var/lib/nethserver/vhost/dokuwiki/data/media/wiki/logo.png
 +[root@tchana ~]#
 +</file>
 +\\ 
 +
 +===== Relocalisation des répertoires data et conf =====
 +
 +Par mesure de sécurité, nous allons relocaliser les répertoires ''data'' et ''conf'' hors du répertoire racine de DokuWiki.
 +
 +==== Répertoire conf ====
 +
 +On crée le répertoire de destination.
 +
 +<file>
 +[root@tchana ~]# mkdir -p /etc/dokuwiki
 +
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_Cahier-101-03-006.png?25}} Le répertoire de destination doit avoir ''apache:apache'' comme propriétaire:groupe.
 +
 +<file>
 +[root@tchana ~]# chown apache:apache /etc/dokuwiki
 +
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# ls -alsd /etc/dokuwiki
 +
 +4 drwxr-xr-x 2 apache apache 4096 10 juin  15:17 /etc/dokuwiki
 +[root@tchana ~]#
 +</file>
 +
 +On copie le __contenu__ du répertoire ''conf'' dans le répertoire de destination.
 +
 +<file>
 +[root@tchana ~]# cp -a /var/lib/nethserver/vhost/dokuwiki/conf/* /etc/dokuwiki
 +
 +[root@tchana ~]#
 +</file>
 +
 +On supprime le répertoire ''conf'' original.
 +
 +<file>
 +[root@tchana ~]# rm -rf  /var/lib/nethserver/vhost/dokuwiki/conf/
 +
 +[root@tchana ~]#
 +</file>
 +
 +Pour remplacer le répertoire ''conf'' original, on créé un lien symbolique qui pointe vers le répertoire de destination.
 +
 +<file>
 +[root@tchana ~]# ln -s /etc/dokuwiki/  /var/lib/nethserver/vhost/dokuwiki/conf
 +
 +[root@tchana ~]
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# ls -als  /var/lib/nethserver/vhost/dokuwiki/conf
 +
 +0 lrwxrwxrwx 1 root apache 14 10 juin  15:06 /var/lib/nethserver/vhost/dokuwiki/conf -> /etc/dokuwiki/
 +[root@tchana ~]#
 +</file>
 +
 +==== Répertoire data ====
 +
 +On crée le répertoire de destination.
 +
 +<file>
 +[root@tchana ~]# mkdir -p /var/lib/dokuwiki/
 +
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# ls -alsd /var/lib/dokuwiki/
 +
 +0 drwxr-xr-x 3 root root 18 10 juin  15:18 /var/lib/dokuwiki/
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_Cahier-101-03-006.png?25}} Le répertoire ''/var/lib/dokuwiki/'' doit avoir ''root:root'' comme ''propriétaire:groupe''.
 +
 +On copie le __répertoire complet__ data dans le répertoire de destination.
 +
 +<file>
 +[root@tchana ~]# cp -a /var/lib/nethserver/vhost/dokuwiki/data   /var/lib/dokuwiki/
 +
 +[root@tchana ~]#
 +</file>
 +
 +On supprime le répertoire ''data'' original.
 +
 +<file>
 +[root@tchana ~]# rm -rf  /var/lib/nethserver/vhost/dokuwiki/data
 +
 +[root@tchana ~]#
 +</file>
 +
 +Pour remplacer le répertoire ''data'' original, on créé un lien symbolique qui pointe vers le répertoire de destination.
 +
 +<file>
 +[root@tchana ~]# ln -s /var/lib/dokuwiki/data   /var/lib/nethserver/vhost/dokuwiki/data
 +
 +[root@tchana ~]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# ls -als /var/lib/nethserver/vhost/dokuwiki/data
 +
 +0 lrwxrwxrwx 1 root apache 22 10 juin  15:15 /var/lib/nethserver/vhost/dokuwiki/data -> /var/lib/dokuwiki/data
 +[root@tchana ~]#
 +</file>
 +
 +==== Ajustement des droits ====
 +
 +On renforce la sécurité de l’accès aux fichiers <wrap em>f</wrap> en supprimant les droits à "other".
 +
 +{{Images_Cahier-101-03-006.png?25}} L'option ''<wrap em>-L</wrap>'' doit être avant le chemin pour suivre les Liens symboliques et le chemin doit se terminer par <wrap em>/</wrap>.
 +
 +<file>
 +[root@tchana dokuwiki]# find -L /var/lib/nethserver/vhost/dokuwiki/ -type f -exec chmod 640 {} \;
 +
 +[root@tchana dokuwiki]#
 +</file>
 +
 +On répète l'opération pour les répertoires <wrap em>d</wrap>.
 +
 +<file>
 +[root@tchana dokuwiki]# find -L /var/lib/nethserver/vhost/dokuwiki/ -type d -exec chmod 2750 {} \;
 +
 +[root@tchana dokuwiki]#
 +</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 ~]# ls -als /var/lib/nethserver/vhost/dokuwiki/
 +
 +total 132
 + 4 drwxr-s---  9 apache apache  4096 10 juin  15:18 .
 + 0 drwxr-xr-x  4 apache apache    39  7 juin  10:10 ..
 + 4 -rw-r-S---  1 apache apache  1777  7 juin  14:30 appveyor.yml
 + 0 drwxr-s---  2 apache apache   160  7 juin  14:30 bin
 +...
 + 0 lrwxrwxrwx  1 root   apache    14 10 juin  15:17 conf -> /etc/dokuwiki/
 +...
 + 0 lrwxrwxrwx  1 root   apache    22 10 juin  15:18 data -> /var/lib/dokuwiki/data
 +...
 + 4 -rw-r-S---  1 apache apache   344  7 juin  14:30 .editorconfig
 +...
 + 4 -rw-r-S---  1 apache apache    21  7 juin  14:30 VERSION
 +[root@tchana ~]#
 +</file>
 +\\ 
 +
 +===== Administrer =====
 +
 +<WRAP column 22%>
 +**Administrer -> Paramètres de configuration**.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-046.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +=== Répertoire d'enregistrement des données ===
 +
 +Si ce n'est déjà fait, on ajuste le chemin du répertoire ''data'' pour celui créé ci-dessus: ''/var/lib/dokuwiki/data''.
 +
 +{{ Images_Cahier-201-04-047.png?700 }}
 +\\
 +
 +<WRAP column 30%>
 +<nowiki>-</nowiki> Au bas de la page, **Enregistrer**.
 +
 +<nowiki>-</nowiki> On s'assure du succès de l'opération.
 +</WRAP>
 +<WRAP column 30%>
 +|{{ Images_Cahier-201-04-048.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +|{{ Images_Cahier-201-04-049.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +{{Images_Cahier-101-03-004.png?25}} On rafraîchit la page afin de s'assurer que tout fonctionne correctement.
 +
 +=== Mode de création des répertoires et fichiers ===
 +
 +En octal, commençant par <wrap em>0</wrap>.
 +
 +{{ Images_Cahier-201-04-050.png?700 }}
 +\\
 +
 +==== Paramètres d'affichage ====
 +
 +=== Format de date ===
 +
 +//Référence:// Fonction [[http://php.net/strftime|strftime]] de PHP.
 +
 +On change le format de ''%Y<wrap em>/</wrap>%m<wrap em>/</wrap>%d %H:%M'' pour ''%Y<wrap em>-</wrap>%m<wrap em>-</wrap>%d %H:%M'' qui est plus esthétique et plus facile à lire.
 +
 +{{ Images_Cahier-201-04-051.png?700 }}
 +\\
 +
 +<WRAP column 22%>
 +==== Paramètres de notification ====
 +
 +On peut spécifier une adresse courriel pour les notifications.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-052.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 30%>
 +<nowiki>-</nowiki> Au bas de la page, **Enregistrer**.
 +
 +<nowiki>-</nowiki> On s'assure du succès de l'opération.
 +</WRAP>
 +<WRAP column 30%>
 +|{{ Images_Cahier-201-04-048.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +|{{ Images_Cahier-201-04-049.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +{{Images_Cahier-101-03-004.png?25}} On rafraîchit la page afin de s'assurer que tout fonctionne correctement.
 +\\ 
 +
 +===== Création d'un nouveau compte =====
 +
 +<WRAP column 22%>
 +On crée un compte pour un usager qui n'a pas d'adresse courriel dans //dokuwiki.micronator-dev.org// afin d'avoir une ligne de notification dans la messagerie électronique de //michelandre@dokuwiki.micronator-dev.org//.
 +</WRAP>
 +<WRAP column 70%>
 +|{{ Images_Cahier-201-04-055.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP column 22%>
 +On s'assure que tout s'est passé correctement.
 +</WRAP>
 +<WRAP column 50%>
 +|{{ Images_Cahier-201-04-056.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +===== Vérification de la connexion à Webmail =====
 +
 +<WRAP column 46%>
 +<nowiki>-</nowiki> On vérifie que Webmail fonctionne correctement en se rendant à:https://www.mail.dokuwiki.micronator-dev.org/webmail.
 +
 +<nowiki>-</nowiki> L'utilisateur __michelandre__ se connecte.
 +</WRAP>
 +<WRAP column 46%>
 +|{{ Images_Cahier-201-04-057.png?500 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\
 +
 +<WRAP column 30%>
 +Le récepteur des notifications a bien reçu le courriel lui annonçant qu'un nouvel utilisateur venait de créer un compte dans DokuWiki.
 +
 +===== 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 62%>
 +|{{ Images_Cahier-201-04-058.png?700 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +<WRAP centeralign>**Notre site DokuWiki est toujours fonctionnel.**</WRAP>
 +\\ 
 +
 +===== Extensions pour DokuWiki =====
 +
 +La syntaxe de DokuWiki peut être étendue par des extensions. La façon dont les extensions installées sont utilisées est décrite sur leurs pages de description appropriées.
 +
 +Les extensions ci-dessous sont utilisées par le DokuWiki chez https://wwww.nethserver.org.
 +
 +//Référence:// https://community.nethserver.org/t/solved-dokuwiki-in-nethserver-howto/12966/2.
 +
 +ACL Manager by Andreas Gohr\\ 
 +Add New Page by Benjamin Santalucia, Sam Wilson, Michael Braun, Gerrit Uitslag, Albert Chern\\ 
 +Plain Auth Plugin by Andreas Gohr\\ 
 +Avatar by Michael Hamann, Michael Klier, Gina Haeussge\\ 
 +CAPTCHA Plugin by Andreas Gohr\\ 
 +Toolbar Code Button by Heiko Barth\\ 
 +Configuration Manager by Christopher Smith\\ 
 +Extension Manager by Michael Hamann\\ 
 +Gallery Plugin by Andreas Gohr\\ 
 +gh plugin by Andreas Gohr\\ 
 +include plugin by Michael Hamann, Gina Häussge, Christopher Smith, Michael Klier, Esther Brunner\\ 
 +Info Plugin by Andreas Gohr\\ 
 +Markdowku by Julian Fagir\\ 
 +Move plugin by Michael Hamann, Gary Owen, Arno Puschmann, Christoph Jähnigen\\ 
 +newline by xarkam\\ 
 +NoWiki Plugin by Petr Blaha\\ 
 +oauth plugin by Andreas Gohr\\ 
 +Pagelist Plugin by Matthias Schulte, Michael Hamann, Michael Klier, Gina Haeussge\\ 
 +Popularity Feedback Plugin by Andreas Gohr\\ 
 +Revert Manager by Andreas Gohr\\ 
 +RestructuredText plugin by Chris Green\\ 
 +safefnrecode plugin by Andreas Gohr\\ 
 +styling plugin by Andreas Gohr\\ 
 +Tag Plugin by Michael Hamann, Gina Häussge, Christopher Smith, Michael Klier, Esther Brunner\\ 
 +Translation Plugin by Andreas Gohr\\ 
 +DokuWiki Upgrade Plugin by Andreas Gohr\\ 
 +User Manager by Chris Smith\\ 
 +Video Sharing Site Plugin by Andreas Gohr\\ 
 +Wrap Plugin by Anika Henke\\ 
 +\\
 +\\ 
 +
 +====== Mise à jour de DokuWiki ======
 +
 +===== Restez à jour =====
 +
 +{{Images_Cahier-101-03-006.png?25}} Ici, mise à jour ne signifie pas de passer à une version supérieure de DokuWiki, mais seulement une mise à jour des fichiers de la branche actuelle.
 +
 +===== Mise à jour =====
 +
 +On se rend dans le répertoire racine de notre DokuWiki.
 +
 +<file>
 +[root@tchana ~]# cd /var/lib/nethserver/vhost/dokuwiki/
 +
 +[root@tchana dokuwiki]#
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana dokuwiki]# pwd
 +
 +/var/lib/nethserver/vhost/dokuwiki
 +[root@tchana dokuwiki]#
 +</file>
 +
 +On met à jour. Toutes les dernières modifications concernant la branche que nous utilisons seront appliquées.
 +
 +<file>
 +[root@tchana dokuwiki]# git pull
 +
 +remote: Enumerating objects: 38, done.
 +remote: Counting objects: 100% (38/38), done.
 +remote: Total 48 (delta 38), reused 38 (delta 38), pack-reused 10
 +Unpacking objects: 100% (48/48), done.
 +From https://github.com/splitbrain/dokuwiki
 +   b6bcbaa..9a6c154  master     -> origin/master
 + * [new branch]      master2psr2 -> origin/master2psr2
 +Already up-to-date.
 +[root@tchana dokuwiki]#
 +</file>
 +
 +Si des mises à jour avaient été disponibles, elles auraient été installées.
 +
 +===== Ajustement des droits =====
 +
 +Après une mise à jour, il est toujours préférable d'ajuster les droits.
 +
 +On renforce la sécurité de l’accès aux fichiers <wrap em>f</wrap> en supprimant les droits à "other".
 +
 +{{Images_Cahier-101-03-006.png?25}} L'option ''<wrap em>-L</wrap>'' doit être avant le chemin pour suivre les Liens symboliques et le chemin doit se terminer par <wrap em>/</wrap>.
 +
 +<file>
 +[root@tchana dokuwiki]# find -L /var/lib/nethserver/vhost/dokuwiki/ -type f -exec chmod 640 {} \;
 +
 +[root@tchana dokuwiki]#
 +</file>
 +
 +On répète l'opération pour les répertoires <wrap em>d</wrap>.
 +
 +<file>
 +[root@tchana dokuwiki]# find -L /var/lib/nethserver/vhost/dokuwiki/ -type d -exec chmod 2750 {} \;
 +
 +[root@tchana dokuwiki]#
 +</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 ~]# ls -als /var/lib/nethserver/vhost/dokuwiki/
 +
 +total 132
 + 4 drwxr-s---  9 apache apache  4096 10 juin  15:18 .
 + 0 drwxr-xr-x  4 apache apache    39  7 juin  10:10 ..
 + 4 -rw-r-S---  1 apache apache  1777  7 juin  14:30 appveyor.yml
 + 0 drwxr-s---  2 apache apache   160  7 juin  14:30 bin
 +...
 + 0 lrwxrwxrwx  1 root   apache    14 10 juin  15:17 conf -> /etc/dokuwiki/
 +...
 + 0 lrwxrwxrwx  1 root   apache    22 10 juin  15:18 data -> /var/lib/dokuwiki/data
 +...
 + 4 -rw-r-S---  1 apache apache   344  7 juin  14:30 .editorconfig
 +...
 + 4 -rw-r-S---  1 apache apache    21  7 juin  14:30 VERSION
 +[root@tchana ~]#
 +</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 ======
 +
 +===== Introduction =====
 +
 +Présentement, nous n'avons qu'une seule Collection d'installée, PHP. Elle peut être mise à jour à la console du serveur.
 +
 +===== Mises à jour =====
 +
 +On lance la mise à jour de la Collection.
 +
 +<file>
 +[root@tchana ~]# yum update -y nethserver-php-scl
 +
 +Modules complémentaires chargés : changelog, fastestmirror, nethserver_events
 +...
 +Résumé de la transaction
 +============================================================================================
 +Mettre à jour  1 Paquet
 +
 +Taille totale des téléchargements : 96 k
 +...
 +Mis à jour :
 +  nethserver-php-scl.x86_64 0:1.2.6-1.ns7.sdl
 +
 +Terminé !
 +[root@tchana ~]#
 +</file>
 +
 +La mise à jour disponible a été installée.
 +
 +{{Images_icone-201-003_Note.png?25}} La mise à jour du Serveur NethServer s'occupe aussi de celle de la Collection PHP.\\ 
 +{{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''.
 +
 +<WRAP box>
 +<file>
 +GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=VolGroup/lv_root rd.lvm.lv=VolGroup/lv_swap nodmraid rhgb quiet"
 +</file>
 +</WRAP>
 +
 +Après avoir enlevé le paramètre **rhgb**.
 +
 +<WRAP box>
 +<file>
 +GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=VolGroup/lv_root rd.lvm.lv=VolGroup/lv_swap nodmraid quiet"
 +</file>
 +</WRAP>
 +
 +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.
 +\\ 
 +\\ 
 +
 +===== Nom du serveur dans l'écran de connexion à Webmail =====
 +
 +<WRAP column 50%>
 +À l'écran de connexion à Webmail, dans le champ //**Serveur**//, le nom du domaine principal du serveur apparaît.
 +
 +On peut supprimer complètement l'affichage de cette ligne. Utile surtout si nous avons plusieurs domaines hébergés sur le Serveur NethServer, car peu importe le domaine auquel nous nous connectons, c'est toujours le nom du domaine principal qui est affiché.
 +
 +Pour supprimer l'affichage de cette ligne, il nous faut modifier le fichier de configuration de PHP:\\
 +
 +<WRAP centeralign>
 +''/etc/roundcubemail/config.inc.php''
 +</WRAP>
 +</WRAP>
 +<WRAP column 40%>
 +|{{ Images_Cahier-101-03-340.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +et y ajouter la ligne suivante:  ''config['default_host'] = '127.0.0.1';''.
 +
 +Par contre, si nous modifions directement ce fichier, le prochain ré-amorçage écrasera la modification lorsque le serveur assemblera les gabarits de configuration du système.
 +
 +{{Images_Cahier-101-03-003.png?22}} Il nous faut donc créer un //**gabarit personnalisé**// et y insérer la nouvelle ligne de configuration. Ainsi, lors de l'assemblage des gabarits, le serveur incorporera le gabarit personnalisé au gabarit standard de configuration de PHP.
 +
 +Création du répertoire pour le gabarit personnalisé.
 +
 +<file>
 +[root@tchana ~]# mkdir -p /etc/e-smith/templates-custom/etc/roundcubemail/config.inc.php
 +
 +[root@tchana ~]#
 +</file>
 +
 +On crée le fichier **91CacherNomDuServeur** et on y insère la ligne de configuration.
 +
 +{{Images_Cahier-101-03-006.png?25}}Prendre tout le contenu de l'encadré pour la commande.
 +
 +<file>
 +cat > /etc/e-smith/templates-custom/etc/roundcubemail/config.inc.php/91CacherNomDuServeur <<'EOT'
 +
 +$config['default_host'] = '127.0.0.1';
 +
 +EOT
 +
 +
 +</file>
 +
 +On vérifie.
 +
 +<file>
 +[root@tchana ~]# cat /etc/e-smith/templates-custom/etc/roundcubemail/config.inc.php/91CacherNomDuServeur
 +
 +$config['default_host'] = '127.0.0.1';
 +[root@tchana ~]#
 +</file>
 +
 +{{Images_Cahier-101-03-006.png?25}}Il n'y a pas de ligne vide avant __$config...__ Nous en avons inséré une pour faciliter la copie de la commande.
 +
 +On signale le changement.
 +
 +<file>
 +[root@tchana ~]# expand-template /etc/roundcubemail/config.inc.php
 +
 +[root@tchana ~]#
 +</file>
 +
 +On redémarre le démon httpd.
 +
 +<file>
 +[root@tchana ~]# systemctl restart httpd
 +
 +[root@tchana ~]#
 +</file>
 +
 +<WRAP column 50%>
 +On se rend à l'URL de connexion à Webmail: https://www.micronator-dev.org/webmail/
 +Le domaine du serveur ne s'affiche plus.
 +</WRAP>
 +<WRAP column 40%>
 +|{{ Images_Cahier-101-03-341.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +==== Sauvegarde ====
 +
 +On vérifie si le nom du fichier ''/etc/e-smith/templates-custom/etc/roundcubemail/'' 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/e-smith/templates-custom/etc/roundcubemail/"
 +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 roundcube
 +
 +/etc/e-smith/templates-custom/etc/roundcubemail/
 +[root@tchana ~]#
 +</file>
 +
 +Ci-dessus, il n'y a pas de ligne vide avant __/etc/e-smith/templates-custom/etc/roundcubemail/__. Nous en avons inséré une afin de faciliter la copie de la commande.
 +\\ 
 +\\ 
 +
 +===== Langue à la console du serveur =====
 +
 +On affiche les langues offertes à la console du serveur.
 +
 +    [root@tchana ~]# localectl list-locales | grep fr_
 +    
 +    fr_BE
 +    fr_BE.iso88591
 +    fr_BE.iso885915@euro
 +    fr_BE.utf8
 +    fr_BE@euro
 +    fr_CA
 +    fr_CA.iso88591
 +    fr_CA.utf8
 +    fr_CH
 +    fr_CH.iso88591
 +    fr_CH.utf8
 +    fr_FR
 +    fr_FR.iso88591
 +    fr_FR.iso885915@euro
 +    fr_FR.utf8
 +    fr_FR@euro
 +    fr_LU
 +    fr_LU.iso88591
 +    fr_LU.iso885915@euro
 +    fr_LU.utf8
 +    fr_LU@euro
 +    [root@tchana ~]#
 +
 +On ajuste la langue désirée pour l'affichage à la console du serveur.
 +
 +    [root@tchana ~]# localectl set-locale LANG=fr_FR.utf8
 +    
 +    [root@tchana ~]#
 +
 +Les modifications entreront en vigueur après le prochain redémarrage.\\ 
 +{{Images_Cahier-101-03-005.png?25}} Cette commande fera en sorte que la langue par défaut à l'écran de login de l'interface Web sera **Français (France)**.
 +
 +À la console du serveur, __après le prochain redémarrage__, on pourra vérifier la langue d'affichage du système, en lançant la commande ci-dessous.
 +
 +    [root@tchana ~]# ls -als toto
 +    
 +    ls: impossible d'accéder à toto: Aucun fichier ou dossier de ce type
 +    [root@tchana ~]#
 +\\ 
 +
 +===== Langue de l'interface Web =====
 +
 +On change la langue de l'interface.
 +
 +<WRAP column 30%>
 +**Administration  ->  Software center** //(peut prendre un certain temps)//  **->**  on coche **French language**.
 +|{{ Images_Cahier-101-03-112.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +**ADD**.
 +|{{ Images_Cahier-101-03-113.png?400 }}|
 +</WRAP>
 +<WRAP column 30%>
 +\\ 
 +\\ 
 +**APPLY CHANGES**.
 +|{{ Images_Cahier-101-03-114.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +\\ 
 +
 +<WRAP column 22%>
 +\\ 
 +Le RPM //nethserver-lang-fr// s'installe.
 +|{{ Images_Cahier-101-03-115.png?400 }}|
 +</WRAP>
 +<WRAP column 22%>
 +\\ 
 +\\ 
 +**Reload page**.
 +|{{ Images_Cahier-101-03-116.png?400 }}|
 +</WRAP>
 +<WRAP column 22%>
 +On se __déconnecte/reconnecte__ pour activer la traduction française.\\ 
 +|{{ Images_Cahier-101-03-117.png?400 }}|
 +</WRAP>
 +<WRAP column 22%>
 +<nowiki>-</nowiki> Par défaut, //Français (France)// est affiché.\\ 
 +<nowiki>-</nowiki> **LOGIN**.
 +|{{ Images_Cahier-101-03-118.png?400 }}|
 +</WRAP>
 +<WRAP clear></WRAP>
 +
 +===== 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  "<wrap em>**>**</wrap>".
 +|{{ 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}}  <wrap em>__Seulement pour un serveur directement branché à l'Internet.__</wrap>
 +
 +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>
 +\\ 
 +
 +===== 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-04-102.png?600}}
 +Une fois que vous maîtrisez tous les aspects de: DokuWiki, Let's Encrypt, Fail2ban, ClamAV et de BackupPC, vous pouvez créer un réseau de Production incluant un serveur DokuWiki, 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 ======
 +
 +© 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-04_DokuWiki_2019-08-16_14h13.odt</nowiki>.
 +
 +Historique des modifications:
 +
 +^Version^Date^Commentaire^Auteur|
 +|RC-0.0.1|2019-06-07|Début.|Michel-André|
 +|0.1.0|2019-08-15|Ajustements pour DokuWiki.|Michel-André|
 +|0.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.
 +\\
 +\\