\\
[[cours_nethserver_101|{{ Images_Cahier-101-09-0000.png?650 }}]]
\\
====== Description générale ======
Le **Cahier-09** du cours **NethServer-101** décrit la sauvegarde et la récupération d'un site WordPress avec l'extension **Duplicator**.
Nous avons un Serveur SME physique //dorgee.micronator-101.com// **SOURCE** qui héberge un site WordPress-5.1 et dans lequel nous avons déjà installé l'extension //Duplicator//. Nous créerons un "Paquet" //(sauvegarde par Duplicator)// du site SOURCE incluant sa base de données MySQL. Nous restaurerons ce "Paquet" sur un serveur virtuel LOCAL //tchana.micronator-dev.net// **DESTINATION**.
{{Images_Cahier-101-03-005.png?25}} Cette marche à suivre peut aussi bien servir pour la création d'un clone d'un site Web LOCAL/virtuel vers un site sur une quincaillerie physique que l'inverse, c.à-d. physique vers LOCAL/virtuel.
{{Images_Cahier-101-03-003.png?22}} L'extension //Duplicator// est particulièrement intéressante pour créer un clone d'un site afin de pouvoir vérifier de nouvelles extensions, thèmes ou mises à jour __sans compromettre l'intégrité du site original__.
{{Images_Cahier-101-03-006.png?25}} La limite pour une sauvegarde en utilisant la version gratuite de l'extension //Duplicator// est de //2Go//.
===== Extension Duplicator =====
//Référence:// [[https://fr-ca.wordpress.org/plugins/duplicator/|https://fr-ca.wordpress.org/plugins/duplicator/]].
{{ Images_Cahier-101-09-000.png?400}}
//Duplicator// permet aux administrateurs WordPress de migrer, copier ou cloner un site d’un emplacement à un autre. L’extension peut aussi servir d’outil de sauvegarde basique. //Duplicator// est compatible avec le remplacement des chaînes sérialisées //(base64 ou non)//. Si vous devez déplacer ou sauvegarder WordPress, cette extension vous aidera à le faire simplement.
\\
==== Duplicator vous permet de: ====
- Déplacer un site d’un domaine à un autre ou d’un hébergeur à un autre.
- Récupérer un site en ligne et le restaurer en LOCAL pour des tests/développements.
- Sauvegarder manuellement un site.
- Dupliquer un site en production vers un site de pré-production et vice-versa.
- "Packager" un site WordPress entier pour le ré-utiliser ou le distribuer.
{{Images_Cahier-101-03-005.png?25}} Contrairement à d'autres systèmes de sauvegardes et restaurations, //Duplicator// est entièrement gratuit et la version //Pro// n'impose aucune limite quant à la taille du site à sauvegarder.
=== Déplacement et sauvegarde ===
//Duplicator// crée un "Paquet" qui inclut le contenu du site, sa base de données, les thèmes, extensions et fichiers de WordPress dans une ''archive zip''. Ce Paquet peut ensuite être utilisé pour restaurer un site à l’emplacement de votre choix. Déplacez-le sur le même serveur, sur un autre serveur ou sur n’importe quel emplacement où l’on pourrait installer un site WordPress.
=== Améliorez vos processus ===
//Duplicator// peut également éliminer les tâches répétitives qui consistent à installer un thème, des extensions ou intégrer du contenu de base. Plutôt que de le faire manuellement, configurez un seul site que vous transformerez en Paquet. Ensuite, vous n’aurez plus qu’à l’installer pour créer des sites pré-configurés! Les concepteurs Web et les développeurs peuvent gagner du temps en créant plusieurs versions de Paquets en fonction des "bases" de sites qu’ils utilisent régulièrement.
=== À prendre en considération ===
{{Images_Cahier-101-03-005.png?25}} Les logiques de sauvegarde, déplacement, restauration et migration de WordPress sont très complexes. Il est impossible de connaître chaque configuration système.
=== Avertissement ===
{{Images_Cahier-101-03-006.png?25}} Cette extension demande un minimum de connaissances techniques. Si vous envisagez de déplacer ou sauvegarder WordPress, vous le faites à vos propres risques et nous vous conseillons alors de sauvegarder vos fichiers et votre base de données dans un premier temps. Si vous débutez avec WordPress ou que vous n’êtes pas à l’aise avec l’informatique, nous vous suggérons de demander l’aide d’un professionnel pour votre première utilisation de l’extension.
=== Répertoire wp-snapshots ===
Ce répertoire a déjà été dans le [[nethserver_101_cahier_06_nethserver_wordPress|Cahier-06]]: //NethServer & WordPress//, section //Installation d'une extension & d'un thème// au paragraphe //Répertoire de stockage//.
===== 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 ====
* Les captures d'écrans ne sont que des références.\\
** Les informations écrites ont préséance sur celles retrouvées dans les captures d'écrans. Veillez vous référer aux différents tableaux lorsque ceux-ci sont présents.\\
*** 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.
[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 ~]#
Commande à exécuter si ce n'est déjà fait.
Commande indiquée à titre d'information seulement.
\\
====== Environnement ======
Le site de Commerce en ligne de //Micronator// est installé sur un Serveur SME physique, dans l'i-bay //mn-101//. L'adresse URL de notre site est: https://www.micronator-101.com.
Nous allons migrer un Paquet, ou copie complète de notre site SOURCE, vers une machine virtuelle possédant une adresse IP privée. Nous utiliserons un hôte virtuel NethServer pour le site DESTINATION.
Notre site SOURCE: [[https://www.micronator-101.com/|https://www.micronator-101.com]].\\
Notre site DESTINATION: [[https://www.micronator-dev.net/|https://www.micronator-dev.net/]].
===== But de la migration =====
Prendre le site sur le serveur __micronator-101.com__ et le dupliquer sur le serveur __micronator-dev.net__.
\\
\\
{{ Images_Cahier-101-09-003.png?700 }}
\\
{{Images_Cahier-101-03-005.png?25}} Le site WordPress SOURCE peut aussi bien provenir d'un Serveur NethServer que d'un Serveur SME et être physique ou virtuel. Voir la section [[nethserver_101_cahier_09_duplicator_migration#Répertoire wp-snapshots]] pour la préparation du répertoire des Paquets //Duplicator//.
\\
===== Particularités du site SOURCE =====
- Le site SOURCE est hébergé dans l'i-bay ''mn-101'' et le site de DESTINATION le sera dans le répertoire ''/var/lib/nethserver/vhost/devnet''.
- Nous avons toujours utilisé des liens relatifs pour les images contenues dans les pages et articles; ''/Ut/images/toto.jpg'' au lieu de ''http://www.micronator-101.com/Ut/images/toto.jpg''.
- Nous avons aussi utilisé des liens relatifs à l'intérieur de certaines pages contenant des liens vers d'autres pages de notre site. //(Conditions d'utilisation, Conditions de vente, Vie privée...)//
- L'extension //WooCommerce// utilise des liens FQDN //(Fully Qualified Domain Name)// pour spécifier les pages des produits.
- Pour des raisons de sécurité, tous les fichiers et répertoires dans la racine du site n'ont pas la permission d'écriture sauf ''wp-content'' et ''wp-snapshots''. Pour les même raisons, le fichier ''readme.html'' de WordPress a été déplacé au-dessus de la racine du site afin de ne pas pouvoir être lu par quiconque; ce fichier sera automatiquement recréer.
- L'utilisateur "other" n'a absolument aucun droit ou permission sur aucun fichier ou répertoire du site complet.
- Nous utilisons un fichier ''.htaccess'' dans le répertoire racine et nous avons une directive qui interdit la lecture du contenu des répertoires mais le permet aux programmes du site.
- L'extension //Wordfence Security// protège notre site.
{{Images_Cahier-101-03-006.png?25}} Il faudra tenir compte de toutes ces particularités lors de la génération/récupération de la sauvegarde.
==== Site original SOURCE ====
[[http://www.micronator-101.com/|http://www.micronator-101.com]]
{{ Images_Cahier-101-09-004.png?600 }}
\\
===== Serveur SOURCE =====
Nous utilisons comme SOURCE un serveur physique qui roule présentement WordPress-5.1 et qui est branché directement à l'Internet.
^Paramètre^Valeur^
|Distribution|SME-9.2|
|Domaine|micronator-101.com|
|Mode|serveur & passerelle|
|Nom du serveur|dorgee.micronator-101.com|
|I-bay|/home/e-smith/files/ibays/mn-101/|
|Adresses IP|statiques - 206.248.138.152 / 192.168.1.1|
===== Serveur DESTINATION =====
Ce serveur n'est pas relié directement à l'Internet mais utilise la passerelle 192.168.1.1 pour y accéder.
\\
\\
^Paramètre^Valeur^
|Distribution|NethServer-7.6.1810|
|Domaine|micronator-dev.net|
|Mode|irrélevant|
|Nom du serveur| tchana.micronator-dev.net|
|Rép. d'installation|/var/lib/nethserver/vhost/devnet/|
|Adresses IP|statiques - 192.168.1.75 / 10.10.10.75|
\\
===== Marche à suivre =====
- Installer l'extension //Duplicator// sur le Serveur SME SOURCE.
- Exécuter la sauvegarde du site SOURCE.
- Télécharger la sauvegarde et le script ''installer.php'' sur le poste de de travail.
- Supprimer le cache et les fichiers réservés générés lors de la création du Paquet du site SOURCE.
- Si ce n'est déjà fait, créer le domaine //micronator-dev.net// sur le Serveur NethServer DESTINATION.
- Modification des paramètres de la carte réseau du poste de travail.
- Insérer les CNAME de DESTINATION dans le fichier ''hosts'' du poste de travail.
- Donner le droit d'écriture au répertoire ''/var/lib/nethserver/vhost/devnet'' de DESTINATION.
- Téléverser la sauvegarde et le script ''installer.php'' depuis le poste de travail vers le serveur DESTINATION.
- Créer et configurer une nouvelle base de données MariaDB 10.2 avec le même nom, les mêmes utilisateur et mot de passe que ceux du serveur SOURCE sur le serveur de DESTINATION. //(On pourrait tout aussi bien utiliser d'autres valeurs.)//
- Lancer le script ''installer.php'' pour exécuter la migration du Paquet //Duplicator//.
- Supprimer la Paquet, le script ''installer.php'' et les fichiers réservés de la sauvegarde du site DESTINATION.
- Vérifier le fichier ''.htaccess''.
- Vérifier le fichier ''wordfence-waf.php''.
- Enlever le droit d'écriture au répertoire ''/var/lib/nethserver/vhost/devnet'' de DESTINATION.
- Installer l'extension //Velvet Blues Update URLs// pour changer tous les liens qui n'auraient pas été ajustés.
- Vérifier et, si nécessaire, ajuster tous les menus, widgets, liens, boutons, pages, articles, pied de page, etc...
- Créer une sauvegarde //Duplicator// du nouveau site DESTINATION.
- Pour une machine virtuelle du serveur DESTINATION, on peut prendre un instantané du Serveur NethServer.
\\
====== Extension Duplicator ======
Si ce n'est déjà fait, la présente section décrit l'installation de //Duplicator// __sur un Serveur SME-8.x/9.x__.
===== Répertoire wp-snapshots =====
==== Pour un Serveur SME ====
Pour stocker les sauvegardes //(Paquets)//, l'installation de l'extension //Duplicator// voudra créer un dossier dans le répertoire racine hébergeant notre site WordPress sur le Serveur SME SOURCE.
{{Images_Cahier-101-03-003.png?22}} Sur un Serveur SME, le répertoire ''html'' d'une i-bay n'a pas de droit d'écriture et ainsi aucune extension n'a le droit de créer un fichier ou un répertoire directement dans la racine du site. On doit donc créer le répertoire de stockage des sauvegardes avant l'installation de Duplicator.
On crée le répertoire //(ajuster pour une autre i-bay)//.
[root@source ~]# mkdir -p /home/e-smith/files/ibays/mn-101/html/wp-snapshots/tmp
[root@source ~]#
On ajuste __R__écursivement le propriétaire et le groupe.
{{Images_Cahier-101-03-006.png?25}} I-bay Primary = __admin:shared__ et toutes les autres i-bays = __admin:www__.
[root@source ~]# chown -R admin:www /home/e-smith/files/ibays/mn-101/html/wp-snapshots
[root@source ~]#
On ajuste __R__écursivement les droits.
[root@source ~]# chmod 2770 -R /home/e-smith/files/ibays/mn-101/html/wp-snapshots
[root@source ~]#
On vérifie.
[root@source]# ls -alsd /home/e-smith/files/ibays/mn-101/html/wp-snapshots
4 drwxrws--- 3 admin www 4096 8 mars 22:42 /home/e-smith/files/ibays/mn-101/html/wp-snapshots/
[root@source]#
\\
==== Installation ====
**Tableau de bord WordPress -> Extensions -> Ajouter ->** //**Mot clé**// **-> Duplicator -> Installer**.
|{{ Images_Cahier-101-09-005.png?400 }}|
\\
On entre les informations demandées **-> Continuer**.
|{{ Images_Cahier-101-09-006.png?400 }}|
\\
\\
**Activer**.
|{{ Images_Cahier-101-09-007.png?400 }}|
//Duplicator// est installée et activée.
|{{Images_Cahier-101-09-008.png?500 }}|
==== Propriétaire, groupe, droits et permissions ====
Nous avons installé une nouvelle extension. Il faut ajuster le propriétaire, le groupe, les droits et permissions pour l'i-bay complète.
{{Images_Cahier-101-03-006.png?25}} Ajuster selon l'i-bay utilisée.
[root@source ~]# droits_ibay.sh mn-101
Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/mn-101"? o/n [o]: [Entrée]
...
4 drwxrws--- 7 admin shared 4096 10 oct. 13:54 wp-content
4 drwxrws--- 3 admin shared 4096 10 oct. 13:54 wp-snapshots
...
[root@source ~]#
{{Images_Cahier-101-03-005.png?25}} Il faut que le groupe ait le droit d'écriture //(w)// dans les arborescences ''wp-content'' et ''wp-snapshots''.\\
Pour le script des droits et permissions, voir: [[https://www.micronator.org/affaires/script-des-droits-permissions/|https://www.micronator.org/affaires/script-des-droits-permissions/]]
==== Configuration ====
{{Images_Cahier-101-03-005.png?25}} La configuration de l'extension //Duplicator// est identique pour un site WordPress roulant sur un Serveur NethServer ou sur un Serveur SME sauf pour l'utilitaire ''mysqldump'' qui devient //mysqldump102// pour un Serveur NethServer, car sur tous nos Serveurs NethServer nous utilisons la //Collection MariaDB 10.2//.
- L'installation a créé un nouveau sous-menu sur le //Tableau de bord WordPress// de SOURCE.\\
- **Duplicator -> Outils**.
|{{ Images_Cahier-101-09-009.png?500 }}|
//WordPress// est à la version__ 5.1__.
//PHP// est à la version __5.6.40__.
//MySQL// est à la version __5.1.73__.
Le Chemin de //mysqldump// sera trouvé plus loin sous l'onglet Paquets de SOURCE.
''/usr/bin/mysqldump''
\\
- Cliquer les titres pour les dérouler.\\
- Tous les composants et paramètres de notre site SOURCE sont affichés.
|{{ Images_Cahier-101-09-010.png?500 }}|
\\
- Onglet **Général**.
- On prend les défauts.
- Si on change un paramètre;
**-> Enregistrer les réglages généraux**.
|{{ Images_Cahier-101-09-011.png?600 }}|
\\
- Onglet **Paquets**.
⦿ //**Mysqldump**//\\
Pour un Serveur SME, //Duplicator// a trouvé le bon chemin de ''mysqldump''.
''/usr/bin/mysqldump''
**Enregistrer les réglages du paquet**.
On s'assure du succès de l'opération.
|{{ Images_Cahier-101-09-012.png?200 }}|
|{{ Images_Cahier-101-09-013.png?600 }}|
\\
====== Serveur SOURCE ======
==== Duplicator sur un Serveur NethServer ====
Pour l'nstallation de //Duplicator// sur un Serveur NethServer, voir le [[nethserver_101_cahier_06_nethserver_wordPress|Cahier-06]]: //NethServer & WordPress// à la section //Installation d'une extension & d'un thème// qui décrit l'installation et la configuration de l'extension //Duplicator//.
===== Vérification de SOURCE par Duplicator =====
{{ Images_Cahier-101-09-014.png?600}}
**Tableau de bord WordPress -> Duplicator -> Outils ->** onglet //**Diagnostics**// **-> Information**.
On développe tous les menus.
\\
{{ Images_Cahier-101-09-015.png?600}}
On examine tous les cadres pour s'assurer que //Duplicator// n'affiche aucun avertissement ou erreur.
\\
==== Validateur de scan ====
{{ Images_Cahier-101-09-016.png?600}}
Cliquer **Lancer le scan de vérification d'intégrité** //(peut prendre un certain temps)//.
\\
**OK** pour lancer les balayage.
|{{Images_Cahier-101-09-017.png?400 }}|
\\
{{ Images_Cahier-101-09-018.png?600}}
Le //Validateur// n'a trouvé aucun problème.
\\
\\
===== Sauvegarde =====
{{Images_Cahier-101-03-005.png?25}} Duplicator nomme une sauvegarde "Paquet".
\\
\\
**Tableau de bord -> Duplicator -> Paquets -> Créer un paquet**.
|{{ Images_Cahier-101-09-019.png?400 }}|
- On peut ignorer l'avertissement.\\
- On ajuste le nom du Paquet.\\
- **[Ajouter des notes]** et on peut en ajouter une qui spécifie la raison de cette sauvegarde.
|{{ Images_Cahier-101-09-020.png?400 }}|
\\
{{ Images_Cahier-101-09-021.png?600}}
Dans le cadre //Archive//, on ne fait rien de spécial.
\\
{{ Images_Cahier-101-09-023.png?600}}
Si on déroule le menu //Installeur//, on peut entrer tout de suite le nom de la //**Base de Données**// et le nom de l'//**Utilisateur**//.
{{Images_Cahier-101-03-005.png?25}} On peut laisser les autres champs vides et les remplir lors de la restauration.
\\
\\
**-> Suivant** pour lancer le balayage
\\
Le balayage est en cours.
|{{ Images_Cahier-101-09-024.png?400 }}|
\\
\\
On peut ignorer **Fichiers** //Avertissement//.
|{{ Images_Cahier-101-09-025.png?400 }}|
Cocher le "**X**" et tous les fichiers **-> Ajouter les filtres et re-scanner**.
|{{ Images_Cahier-101-09-026.png?400 }}|
\\
Ce filtre est disparu.
|{{ Images_Cahier-101-09-027.png?400 }}|
Cocher **Oui -> Création**.
|{{ Images_Cahier-101-09-028.png?400 }}|
\\
- La sauvegarde est en assemblage.
- __Gardez cette fenêtre ouverte pendant le processus d’assemblage__.
- Peut prendre plusieurs minutes.
|{{ Images_Cahier-101-09-029.png?400 }}|
\\
==== Téléchargement de l'archive et de l'Installeur ====
On clique **Installeur** pour télécharger le script d'installation qu'on sauvegarde sur le poste de travail.
|{{ Images_Cahier-101-09-030.png?400 }}|
On clique **Archive** pour télécharger la sauvegarde, qu'on met dans le même répertoire que l'//Installeur//, sur le poste de travail.
|{{ Images_Cahier-101-09-031.png?400 }}|
{{Images_Cahier-101-03-004.png?25}} Nous aurions pu utiliser //**Téléchargement en 1 clic**// qui revient au même résultat.\\
{{Images_Cahier-101-03-006.png?25}} Le fichier de l'//Installeur// __est différent pour chaque Paquet__, il faut toujours le télécharger __avec chaque "Paquet"__.
\
===== Fichiers téléchargés =====
{{ Images_Cahier-101-09-032.png?600}}
Ces deux fichiers sont les seuls nécessaires pour une restauration ou une migration.
\\
Les différentes composantes de la sauvegarde sont dans le répertoire ''wp-snapshots'' du serveur SOURCE.
[root@dorgee ~]# ls -als /home/e-smith/files/ibays/mn-101/html/wp-snapshots
total 984100
4 drwxrws--- 3 admin www 4096 9 mars 00:24 .
4 drwxr-s--- 10 admin www 4096 27 févr. 07:19 ..
966832 -rw-r--r-- 1 apache www 990030735 9 mars 00:24 201903_23h58_mn101_4d6dadc6878819323597_20190309051253_archive.zip
15680 -rw-r--r-- 1 apache www 16054009 9 mars 00:23 201903_23h58_mn101_4d6dadc6878819323597_20190309051253_database.sql
48 -rw-r--r-- 1 apache www 45603 9 mars 00:24 201903_23h58_mn101_4d6dadc6878819323597_20190309051253_installer.php
4 -rw-r--r-- 1 apache www 3639 9 mars 00:24 201903_23h58_mn101_4d6dadc6878819323597_20190309051253.log
1512 -rw-r--r-- 1 apache www 1545677 9 mars 00:20 201903_23h58_mn101_4d6dadc6878819323597_20190309051253_scan.json
4 -rw-r----- 1 admin www 212 19 avril 2017 dtoken.php
4 -rw-r----- 1 admin www 16 19 avril 2017 .htaccess
0 -rw-r----- 1 admin www 0 19 avril 2017 index.php
4 -rw-r----- 1 admin www 39 19 avril 2017 robots.txt
4 drwxrws--- 2 admin www 4096 9 mars 00:24 tmp
[root@dorgee ~]#
\\
==== Nettoyage ====
{{Images_Cahier-101-03-004.png?25}} Il n'est pas recommandé de conserver une sauvegarde sur un serveur. Nous en avons une copie sur la station de travail; on la supprime du serveur SOURCE.
{{ Images_Cahier-101-09-033.png?600}}
**Tableau de bord WordPress -> Duplicator -> Outils -> Diagnostics ->** onglet **Information**.
{{Images_Cahier-101-03-005.png?25}} Nous pourrions supprimer les fichiers en cliquant //**Supprimer les fichier d'installation**//, mais cette manipulation ne fonctionne pas toujours.
{{Images_Cahier-101-03-003.png?22}} Au prochain paragraphe, on utilisera une autre méthode de suppression.
\\
//Notes de sécurité:// If the installer files do not successfully get removed with this action, then they WILL need to be removed manually through your hosts control panel, file system or FTP. Please remove all installer files listed above to avoid leaving open security issues on your server.
{{Images_Cahier-101-03-008.png?25}} //Notes de sécurité:// Si les fichiers de l'installeur n'ont pas été supprimés avec succès avec cette action, ils DOIVENT être supprimés manuellement via le panneau de configuration de votre hôte, votre système de fichiers, //WinSCP//, //FileZilla// ou //FTP//. Veuillez supprimer tous les fichiers d'installation répertoriés ci-dessus pour éviter de laisser des __brèches de sécurité__ sur votre serveur.
{{ Images_Cahier-101-09-034.png?600}}
- **Duplicator -> Paquets ->** cocher le Paquet à supprimer.
- Dérouler le menu et choisir **Supprimer -> Appliquer**.
\\
**OK**.
|{{ Images_Cahier-101-09-035.png?400 }}|
Patienter...
|{{ Images_Cahier-101-09-036.png?400 }}|
\\
{{ Images_Cahier-101-09-037.png?600}}
Au retour, //Duplicator// ne trouve plus le Paquet, il a été supprimé.
\\
On vérifie.
[root@dorgee ~]# ls -als /home/e-smith/files/ibays/mn-101/html/wp-snapshots
total 24
4 drwxrws--- 3 admin www 4096 9 mars 00:40 .
4 drwxr-s--- 10 admin www 4096 27 févr. 07:19 ..
4 -rw-r----- 1 admin www 212 19 avril 2017 dtoken.php
4 -rw-r----- 1 admin www 16 19 avril 2017 .htaccess
0 -rw-r----- 1 admin www 0 19 avril 2017 index.php
4 -rw-r----- 1 admin www 39 19 avril 2017 robots.txt
4 drwxrws--- 2 admin www 4096 9 mars 00:24 tmp
[root@tchana ~]#
[root@tchana ~]# ls -als /home/e-smith/files/ibays/mn-101/html/wp-snapshots/tmp/
total 8
4 drwxrws--- 2 admin www 4096 9 mars 00:24 .
4 drwxrws--- 3 admin www 4096 9 mars 00:40
[root@dorgee ~]#
Les fichiers du Paquet ont été supprimés et le cache a été vidé.
\\
\\
====== Serveur DESTINATION et hôte virtuel ======
===== Introduction =====
==== Serveur virtuel ====
Pour le serveur DESTINATION, on peut utiliser le même serveur virtuel que celui utilisé dans les **Cahiers** précédents. Il se comportera exactement comme un serveur physique, mais il n'est pas recommandé de l'utiliser pour les tests d'achat car il est sur le réseau LOCAL et notre réseau ne possède pas de serveur mandataire inversé. Toutes les manipulations de récupération/migration sont strictement identiques pour un serveur physique ou virtuel, LOCAL ou branché directement à l'Internet.
==== Serveur physique ====
On peut utiliser le [[nethserver_101_cahier_05_vdsl_fqdn_internet_et_nethserver|Cahier-05]]: //VDSL, FQDN, Internet et NethServer// pour l'installation et la mise à jour d'une quincaillerie physique. La procédure d'installation d'un Serveur NethServer virtuel est exactement la même; au lieu d'insérer le CD/DVD dans le lecteur physique, on l'attache au lecteur virtuel du serveur DESTINATION, voir le [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: //Création d'un Serveur NethServer virtuel//.
\\
=== Mise à jour ===
Mettre à jour le Serveur NethServer. Voir le chapitre Configuration du [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: //Création d'un Serveur NethServer virtuel// ou le chapitre Configuration détaillée du [[nethserver_101_cahier_05_vdsl_fqdn_internet_et_nethserver|Cahier-05]]: //VDSL, FQDN, Internet et NethServer//. Les procédures sont exactement les mêmes pour un serveur virtuel ou physique.
\\
==== Collections utilisées ====
Pour tous nos sites WordPress sur un Serveur NethServer, on utilise les //Collections PHP// et //MariaDB 10.2//. Voir le [[nethserver_101_cahier_06_nethserver_wordPress|Cahier-06]]: //NethServer & WordPress//.
[root@tchana ~]# scl -l
php56
php70
php71
php72
php73
rh-mariadb102
[root@tchana ~]#
\\
=== Collection PHP ===
On utilise la //Collection PHP// et plus particulièrement la version //PHP-7.2//.
On vérifie les paramètres.
[root@tchana ~]# config show php72
php72=configuration
AllowUrlFopen=On
ExposePhp=0
MaxExecutionTime=30
MaxFileUpload=20
MaxInputTime=60
MemoryLimit=250
PostMaxSize=100
UploadMaxFilesize=75
[root@tchana ~]#
Les grandeurs doivent être de //250M//, //100MB// et //75M//.
{{Images_Cahier-101-03-006.png?25}} Ces grandeurs peuvent être différentes, mais elles doivent être dans l'ordre de décroissance ci-dessous:\\
**
MemoryLimit > PostMaxSize > UploadMaxFilesize.
**
\\
=== Collection MariaDB 10.2 ===
On utilise la //Collection MariaDB 10.2//.
On vérifie la version.
[root@tchana ~]# mysql102 --version
/opt/rh/rh-mariadb102/root/usr/bin/mysql Ver 15.1 Distrib 10.2.8-MariaDB, for Linux (x86_64) using EditLine wrapper
[root@tchana ~]#
\\
===== Hôte virtuel =====
//Référence:// [[http://docs.nethserver.org/en/v7/virtual_hosts.html|http://docs.nethserver.org/en/v7/virtual_hosts.html]].\\
L'hébergement virtuel permet d'offrir plusieurs noms de domaine sur un seul serveur. Depuis l'interface Web de NethServer, à partir de la page //Gestion -> Hôtes virtuels//, il est possible de configurer des sites Web en tant qu'hôtes virtuels d'//Apache//.
\\
==== Noms d'hôte virtuels (FQDN) ====
Les //Noms d'hôtes virtuels// //(FQDN)// sont la liste des noms de domaines pleinement qualifiés associés à l'hôte virtuel. Les valeurs doivent être séparées par une "," //(virgule)//.
Si l'option //Créer une entrée sous la page "DNS > Alias du serveur" pour chaque nom d'hôte virtuel// est activée sous //Gestion -> Hôtes virtuels -> CRÉER NOUVEAU -> onglet Général -> Actions supplémentaires//, un alias pour le serveur est automatiquement créé sur la page //Configuration -> DNS -> Alias du serveur//, mais cet alias n’est utile que pour les clients qui utilisent NethServer en tant que serveur DNS.
\\
==== Configuration d'une application Web ====
Lorsqu'un nouvel hôte virtuel est créé, le répertoire ''/var/lib/nethserver/vhost/Nom-du-repertoire'' est également créé.
==== FTP ====
● {{Images_Cahier-101-03-003.png?22}} Pour un hôte virtuel, l'accès FTP est désactivé par défaut, __vous ne devez pas l'activer__, car son activation change le propriétaire **apache** du répertoire //Nom-du-repertoire de l'hôte virtuel// à celui de **ftp**. Ce changement occasionne des difficultés pour WordPress lors de sa mise à jour vers une version plus récente.\\
● {{Images_Cahier-101-03-005.png?25}} Le tableau de bord de WordPress se charge du téléchargement des fichiers.
\\
===== Création DNS de l'hôte réel pour un 2e domaine =====
SI ce n'est déjà fait, il nous faut créer un nom FQDN d'hôte réel avant de créer un hôte virtuel sinon, nous ne pourrons pas accéder à certains autres services de ce nouvel hôte.
{{ Images_Cahier-101-09-038.png?600}}
**Configuration -> DNS ->** onglet **Hôtes -> CRÉER NOUVEAU**.
\\
Lorsque coché, le paramètre //**wildcard dns record**// ci-dessous permettra l'accès à tous les CNAME du domaine tels que //mail//, //proxy//, //pda//, //wpad// etc...
|{{ Images_Cahier-101-09-039.png?400 }}|
|{{ Images_Cahier-101-09-040.png?400 }}|
{{Images_Cahier-101-03-004.png?25}} Ci-contre, pour //Nom d'hôte//, on utilise __micronator-dev.net__ sans le préfixe www, car nous voulons avoir tous les CNAME en préfixe et c'est pourquoi on coche //wildcard dns record//. Cette subtilité est très importante surtout pour un serveur physique accessible depuis l'Internet ou si on utilise le module //Proxy inverse// sur le serveur principal pour accéder à un serveur LOCAL.
\\
===== Création de l'hôte de messagerie pour un 2e domaine =====
Pour pouvoir accéder à //Webmail// en utilisant le FQDN de notre 2e domaine, il faut indiquer au Serveur NethServer que ce domaine est aussi un serveur de courrier électronique en créant un nouveau domaine de messagerie.
**Configuration -> Courrier (Email) ->** onglet **Domaines -> CRÉER NOUVEAU**.
{{ Images_Cahier-101-09-041.png?600}}
On entre les information demandées.
⦿ //**Distribution locale**//
☑ //**Accepter des destinataires inconnus**// \\
Ce paramètre et //**Remettre à**// sont optionnels et sont laissés à votre discrétion.
☐ //**Signer les messages sortant avec DomainKeys Identified Mail (DKIM)**// \\
Il est préférable de na pas cocher ce paramètre, car nous sommes sur un serveur LOCAL.\\
Si ce serveur est directement branché à l'Internet il est alors fortement recommandé d'activer ce paramètre. Pour plus d'information, voir la section DKIM dans le [[nethserver_101_cahier_05_vdsl_fqdn_internet_et_nethserver|Cahier-05]]: //VDSL, FQDN, Internet et NethServer//.
**-> SOUMETTRE**.
{{ Images_Cahier-101-09-042.png?600}}
Le 2e domaine est maintenant un serveur de messagerie.
\\
===== Création d'un hôte virtuel pour un 2e domaine =====
Nous allons créer un hôte virtuel pour le 2e domaine afin de créer un répertoire pour pouvoir y installer un second WordPress qui sera entièrement dédié à ce 2e domaine. Nous utiliserons deux noms FQDN afin de pouvoir accéder à ce second WordPress en se rendant aux URL suivantes: micronator-dev.net et www.micronator-dev.net.
{{ Images_Cahier-101-09-043.png?600}}
**Gestion -> Hôtes virtuels -> CRÉER NOUVEAU**.
==== Onglet Général ====
{{Images_Cahier-101-03-005.png?25}} L'action //CRÉER NOUVEAU// est similaire à //Éditer//. La seule différence étant le paramètre //Actions supplémentaires// au bas du formulaire.
{{ Images_Cahier-101-09-044.png?400}}
//**Nom**//\\
Un nom simple qui identifie la configuration de l'hôte virtuel.\\
Ce sera aussi le nom du répertoire racine du site Web pour cet hôte virtuel:
''/var/lib/nethserver/vhost/devnet''
//**Description**//\\
Champ facultatif pour une brève description du site Web.
//**Noms d'hôte virtuels (FQDN)**//\\
La liste des noms de domaines pleinement qualifiés //(FQDN)// associés à l'hôte virtuel. Les valeurs doivent être séparées par une "," //(virgule)//. Les noms de notre hôte virtuel sont: //micronator-dev.net//,//www.micronator-dev.net//.
{{Images_Cahier-101-03-006.png?25}} Avec certains services de DNS dynamique, on ne peut employer le CNAME www, mais on peut l'indiquer quand même et il pourra servir uniquement pour les PC sur le réseau LOCAL qui l'utiliseraient en tant que serveur mandataire //(proxy)//.
☐ //**Autoriser l'accès uniquement pour les réseaux de confiance**//\\
Si coché, seuls les clients des réseaux de confiance //(verts ou du moins les non-rouge)// peuvent voir le site Web.
☐ //**Requiert une authentification HTTP**//\\
{{Images_Cahier-101-03-005.png?25}} Il faut cocher la case pour faire apparaître les champs: //Nom d'utilisateur// et //Mot de Passe//.
Si vous cochez cette option, le site Web n'est visible que pour ceux qui fourniront le nom d'usager //devnet// //(le nom du répertoire racine qui sera créé pour le nouvel hôte virtuel)// et le **Mot de passe** exigé.
|{{ Images_Cahier-101-09-045.png?400 }}|
☐ //**Nécessite une connexion SSL cryptée**//\\
Si coché, le site Web est accessible uniquement via le protocole __https__.
{{Images_Cahier-101-03-008.png?25}} Pour un serveur de production il est préférable de cocher ce paramètre afin d'avoir toujours une connexion sécuritaire chiffrée.
|{{ Images_Cahier-101-09-046.png?400 }}|
{{Images_Cahier-101-03-006.png?25}} Si notre serveur de test n'a pas de certificat d'une //CA reconnue//, les connexions ne seront jamais chiffrées.
\\
☐ //**Root directory file listings**//\\
Coché, permet au serveur de générer une liste de répertoires pour un site Web si aucun fichier ''index.*'' n'est présent dans la page demandée.
//**SSL/TLS certificate**//\\
Sélectionnez un certificat compatible avec les noms d'hôte de la liste //Noms d'hôte virtuels (FQDN)//.
☐ //**Enable FTP access**//\\
Pour un hôte virtuel qui hébergera un site WordPress, il n'est pas recommandé d'activer l'accès FTP, voir [[nethserver_101_cahier_09_duplicator_migration#Configuration d'une application Web]].
**▼ Actions supplémentaires**
|{{ Images_Cahier-101-09-047.png?400 }}|
☐ //**Créer une entrée sous la page "DNS > Alias du serveur" pour chaque nom d'hôte virtuel**//\\
Si cette option est activée, un alias pour chacun des //Noms d'hôte virtuel (FQDN)// entrés est automatiquement créé sur la page "//Configuration -> DNS -> Alias du serveur//", mais ils ne sont utiles que pour les clients qui utilisent le serveur comme DNS.\\
{{Images_Cahier-101-03-005.png?25}} Il n'est pas nécessaire d'activer cette options, car __micronator-dev.net__ possède déjà une entrée sous "//Configuration -> DNS -> Hôtes//" et nous avons inséré __www.micronator-dev.net__ ci-dessus sous "//Noms d'hôte virtuels (FQDN)//".
\\
==== Onglet Bibliothèque d'applications PHP ====
☑ //**Activer l'accès web**// \\
{{Images_Cahier-101-03-006.png?25}} Lorsqu'un hôte virtuel est désactivé, il est impossible d'y accéder de quelque manière que ce soit. Par défaut, pour un hôte virtuel nouvellement créé, ce paramètre est activé.
▼ //**Select the php Version for this Ibay**//\\
Cette option permet de sélectionner la version PHP qu'on désire utiliser pour cet hôte virtuel.
⦿ On choisit la **PHP 72 version**.
|{{ Images_Cahier-101-09-048.png?400 }}|
==== Onglet Paramètres php ====
Si vous avez besoin d'ajuster les paramètres de PHP, vous devez les ajuster dans cet onglet, les modifications ne sont valables que pour cet hôte virtuel seulement.
☑ //**Activer l'accès web**// \\
{{Images_Cahier-101-03-006.png?25}} Lorsqu'un hôte virtuel est désactivé, il est impossible d'y accéder de quelque manière que ce soit. Par défaut, pour un hôte virtuel nouvellement créé, ce paramètre est activé.
☐ //**Autoriser l'accès PHP aux fichiers distants**// \\
{{Images_Cahier-101-03-008.png?25}} Lorsque la directive ''allow_url_fopen'' est activée, vous pouvez écrire des scripts PHP qui ouvrent des fichiers distants comme s'il s'agissait de fichiers locaux.
|{{ Images_Cahier-101-09-049.png?400 }}|
//**Mémoire disponible maximum (250 Mégaoctets)**// \\
Cette variable définit la quantité maximale de mémoire en octets qu'un script est autorisé à allouer. //Memory_limit// affecte également le téléchargement de fichier. D'une manière générale, //memory_limit// devrait être plus grand que //post_max_size//.
//**Taille maximum autorisée des données envoyées (100 Mégaoctets)**//\\
Cette variable définit la taille maximale autorisée pour les publications //(post)//. Ce paramètre affecte également le téléchargement de fichiers. Pour télécharger des fichiers volumineux, cette valeur doit être supérieure à //uploadmax_filesize//. Si la limite de mémoire est activée par votre script de configuration, //memory_limit// affecte également le téléchargement de fichiers. D'une manière générale, //memory_limit// devrait être plus grand que //post_max_size//.
**Taille maximum du fichier télécharger (75 Mégaoctets)**\\
Cette variable définit la taille maximale de téléchargement d'un fichier sur votre serveur.\\
{{Images_Cahier-101-03-006.png?25}} memory_limit (250M) > post_max_size (100M) > upload_max_filesize (75M).
{{ Images_Cahier-101-09-050.png?300}}
//**Temps maximum d’exécution des scripts (défaut)**//\\
Cette variable définit la durée maximale, en secondes, pendant laquelle un script est autorisé à rouler avant d'être terminé par l'analyseur syntaxique.
{{Images_Cahier-101-03-006.png?25}} Lors de l'assemblage, //Duplicator// pourrait manquer de temps pour terminer celui-ci. Voir //Temps d'exécution autorisé: 1:00// dans la capture d'écran ci-contre, mais il pourrait peut-être quand même terminer l'assemblage.\\
Aussi, lors de la restauration, //Duplicator// peut prendre un certain temps pour installer la nouvelle BD et surtout pour la conversion des liens URL. Il pourrait manquer de temps pour terminer ces tâches.
{{Images_Cahier-101-03-003.png?22}} Il vaut mieux alors ajuster le temps d'exécution de PHP72 à __2 minutes__ //(120 secondes)// afin d'éviter tout problème.
//**Nombre maximum de fichier téléversé (défaut)**//\\
Cette variable définit le nombre maximum de fichiers pouvant être téléchargés simultanément.
**-> SOUMETTRE** pour enregistrer toutes les modifications. //(Peut prendre un certain temps.)//
{{ Images_Cahier-101-09-051.png?600}}
Notre hôte virtuel a été créé avec ses noms FQDN d'hôtes virtuels.
{{Images_Cahier-101-03-006.png?25}} Si vous éditez cet hôte virtuel, vous noterez que le système ajoute un espace après les virgules qui séparent les noms FQDN entrés précédemment lors de création des hôtes virtuels à la page "//Gestion -> Hôtes virtuels -> CRÉER NOUVEAU//" dans le cadre du paramètre "//Noms d'hôte virtuel (FQDN)//".
Nous avons entré:\\
● micronator-dev.net,__www__.micronator-dev.net\\
mais lors de l'édition, ces noms d'hôtes apparaîtront avec un espace après la virgule de séparation:\\
● micronator-dev.net, __www__.micronator-dev.net
\\
===== Vérification =====
==== Hôtes DNS ====
{{ Images_Cahier-101-09-052.png?600}}
**Configuration -> DNS ->** onglet **Hôtes**.
Les hôtes originaux DNS n'ont pas été affectés par la création d'un nouvel hôte virtuel.
=== Alias du serveur ===
{{ Images_Cahier-101-09-053.png?600}}
__Si vous avez coché__ //Créer une entrée sous la page "DNS > Alias du serveur"// pour chaque nom d'hôte virtuel au paragraphe //Actions supplémentaires//, un nouvel alias sera créé avec le préfixe __www__ si vous n'avez pas utilisé __www__.micronator-dev.net dans le cadre du paramètre //Noms d'hôte virtuel (FQDN)//.\\
{{Images_Cahier-101-03-006.png?25}} S'il n'y avait pas eu d'hôte réel micronator-dev.net à la page Configuration -> DNS -> onglet Hôtes, un nouvel alias avec ce nom, sans le préfixe www, aurait aussi été créé.
==== Hôte de messagerie ====
{{ Images_Cahier-101-09-054.png?600}}
**Configuration -> Courrier (Email)** ou //**Messagerie électronique**// depuis mai 2019 **->** onglet **Domaines**.
Les hôtes originaux de messagerie n'ont pas été affectés.
==== Répertoire racine du site Web du 2e domaine ====
On vérifie la création du répertoire de l'hôte virtuel; le répertoire ''devnet'' existe, mais il est complètement vide.
[root@tchana ~]# ls -als /var/lib/nethserver/vhost/devnet
total 0
0 drwxr-sr-x 2 ftp apache 6 13 févr. 13:16 .
0 drwxr-xr-x 3 root root 20 13 févr. 13:16 ..
[root@tchana ~]#
=== index.html ===
On écrit un texte qui s'affichera lors de l'accès à l'URL: http[s]//[www.]micronator-dev.net.
{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
cat > /var/lib/nethserver/vhost/devnet/index.html <<'EOT'
Allo le monde!
EOT
On ajuste le propriétaire et le groupe.
[root@tchana ~]# chown apache:apache /var/lib/nethserver/vhost/devnet/index.html
[root@tchana ~]#
On vérifie.
[root@tchana ~]# ls -ls /var/lib/nethserver/vhost/devnet/index.html
4 -rw-r--r-- 1 apache apache 170 13 févr. 18:46 /var/lib/nethserver/vhost/noip/index.html
[root@tchana ~]#
On vérifie le contenu.
[root@tchana ~]# cat /var/lib/nethserver/vhost/devnet/index.html
Allo le monde!
[root@tchana ~]#
=== Accès Web ===
On vérifie l'accès à l'hôte virtuel de différentes manières.
- Sans préfixe www.\\
- micronator-dev.net/.
|{{ Images_Cahier-101-09-055.png?400 }}|
- Avec préfixe www.\\
- www.micronator-dev.net/.
|{{ Images_Cahier-101-09-056.png?400 }}|
- Sans préfixe www, mais sécurisé.\\
- https://micronator-dev.net/.
|{{ Images_Cahier-101-09-057.png?400 }}|
- Avec préfixe www et sécurisé.\\
- https://www.micronator-dev.net/.
|{{ Images_Cahier-101-09-058.png?400 }}|
=== Suppression du fichier index.html ===
Le bon fonctionnement de l'hôte virtuel a été vérifié, on supprime le fichier ''index.html'', car il aura préséance sur le fichier ''index.php'' du second WordPress.
[root@tchana ~]# rm /var/lib/nethserver/vhost/devnet/index.html
rm : supprimer fichier « /var/lib/nethserver/vhost/devnet/index.html » ? o
[root@tchana ~]#
\\
==== Paramètres PHP72 ====
On affiche les paramètres de //PHP72//.
[root@tchana ~]# config show php72
php72=configuration
AllowUrlFopen=On
ExposePhp=0
MaxExecutionTime=120
MaxFileUpload=20
MaxInputTime=60
MemoryLimit=250
PostMaxSize=100
UploadMaxFilesize=75
[root@tchana ~]#
\\
===== Préparation du répertoire devnet =====
{{Images_Cahier-101-03-003.png?22}} On donne au groupe le droit d'écriture dans le répertoire Web de l'hôte virtuel afin que //Duplicator// puisse créer des répertoires dans la racine de notre site, c.-à-d. dans ''devnet'' lors de la restauration.
[root@tchana ~]# chmod g+w /var/lib/nethserver/vhost/devnet/
[root@tchana ~]#
On vérifie.
[root@tchana ~]# ls -lsd /var/lib/nethserver/vhost/devnet/
0 drwxrwsr-x 2 ftp apache 6 9 mars 09:58 /var/lib/nethserver/vhost/devnet/
[root@tchana ~]#
\\
===== Base de données pour le second WordPress =====
{{Images_Cahier-101-03-006.png?25}} On crée la base de données //(dans notre exemple, on la nomme ''MN101'')//.
[root@tchana ~]# mysqladmin102 CREATE MN101
[root@tchana ~]#
{{Images_Cahier-101-03-006.png?25}} On entre dans la console //MariaDB-102//.
[root@tchana ~]# mysql102
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 28
Server version: 10.2.8-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
On vérifie que la base de données ait bien été créée.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| DDNS |
| MN101 |
| WPBD |
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
+--------------------+
7 rows in set (0,00 sec)
MariaDB [(none)]>
\\
==== Grant ====
{{Images_Cahier-101-03-006.png?25}} Pour l'usager de la BD de WordPress, il faut choisir __un mot de passe robuste__; au moins 7 caractères, minuscules, majuscules, chiffres et signes non-alphanumériques. __Il ne faut pas prendre notre exemple de mot de passe__.
On crée un usager pour notre base de données et on lui donne //(grant)// les permissions nécessaires.
MariaDB [(none)]> grant all on MN101.* to usager_MN101@localhost identified by 'mdp_MN101';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
Noter le nom de la base de données: "MN101", le nom de l'usager: "usager_MN101" et son mot de passe: '"mdp_MN101"; ils serviront plus tard dans //Duplicator//.\\
{{Images_Cahier-101-03-008.png?25}} __Il ne faut pas prendre nos paramètres, ils ne sont pas assez robustes__.
Vous devez exécuter la commande ''FLUSH PRIVILEGES'' ou la commande en ligne ''mysqladmin102 flushprivileges'' pour indiquer à MariaDB qu'il doit recharger les droits.
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
On vérifie les droits de l'usager.
MariaDB [(none)]> show grants for usager_MN101@localhost;
+------------------------------------------------------------------------------------------+
| Grants for usager_MN101@localhost |
+------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'usager_MN101'@'localhost' IDENTIFIED BY PASSWORD '*BEB075ED0A4C05AB21866C4BAA23F5284D8CF90A' |
| GRANT ALL PRIVILEGES ON `MN101`.* TO 'usager_MN101'@'localhost' |
+------------------------------------------------------------------------------------------+
2 rows in set (0,00 sec)
MariaDB [(none)]>
On quitte la console MariaDB 10.2.
MariaDB [(none)]> exit;
Bye
[root@tchana ~]#
\\
===== Propriétaire:groupe de /var/lib/nethserver/vhost/devnet =====
On change le __propriétaire:groupe__ du répertoire ''/var/lib/nethserver/vhost/devnet'' __pour apache:apache__, sinon nous aurons des difficultés pour mettre à jour WordPress.
[root@tchana ~]# chown apache:apache /var/lib/nethserver/vhost/devnet
[root@tchana ~]#
On vérifie
[root@tchana ~]# ls -alsd /var/lib/nethserver/vhost/devnet
4 drwxrwsr-x 9 apache apache 4096 9 mars 10:26 /var/lib/nethserver/vhost/devnet
[root@tchana ~]#
\\
===== Téléversement des fichiers =====
==== Fichiers archive.zip et installer.php ====
{{ Images_Cahier-101-09-059.png?600}}
Avec //WinSCP//, on se logue au serveur de DESTINATION. On y téléverse les fichiers pour la restauration dans ''/var/lib/nethserver/vhost/devnet/''.
\\
==== Ajustement du propriétaire, groupe et permission ====
On change le propriétaire et le groupe des fichiers.
[root@tchana ~]# chown apache:apache /var/lib/nethserver/vhost/devnet/*zip /var/lib/nethserver/vhost/devnet/*php
[root@tchana ~]#
On vérifie.
[root@tchana ~]# ls -als /var/lib/nethserver/vhost/devnet/
total 966876
0 drwxrwsr-x 2 apache apache 101 9 mars 10:26 .
0 drwxr-xr-x 4 root root 112 28 févr. 15:52 ..
966828 -rw-r--r-- 1 apache apache 990030735 9 mars 00:29 201903_23h58_mn101_4d6dadc6878819323597_20190309051253_archive.zip
48 -rw-r--r-- 1 apache apache 45603 9 mars 00:27 installer.php
[root@tchana ~]#
\\
===== Poste de travail =====
==== Fichier hosts ====
Le FQDN de notre Serveur NethServer est //micronator-dev.net//. Vu que nous n'avons pas de serveur DNS sur notre réseau, il nous faut une façon quelconque pour pouvoir spécifier le nom de notre domaine afin que le navigateur puisse identifier son adresse IP sans devoir interroger un serveur DNS. C'est ici que le fichier hosts du poste de travail entre en jeu.
La communication dans l'Internet se fait toujours par adresses IP et non pas avec les noms de domaines qui sont utilisés par les humains qui ont plus de facilité à retenir un nom qu'un numéro.
Lorsque vous voulez vous rendre chez //google.com//, le navigateur ne connaît pas l'adresse IP de //google.com//. Il commence par regarder dans le fichier ''hosts'' du poste de travail si ce fichier contient une référence à //google.com//. Si oui, il utilise l'adresse IP contenu dans le fichier ''hosts''.
Si le fichier ''hosts'' du poste de travail __n'a pas de référence pour le nom du domaine recherché__, le navigateur va demander à son serveur DNS s'il connaît //google.com//. Si son serveur DNS ne connaît pas le domaine en question, il demande au serveur DNS supérieur s'il connaît le domaine. Si le DNS supérieur n'a pas de référence pour le domaine, à son tour, il demande à son serveur DNS supérieur et ainsi de suite jusqu'au DNS tout en haut de l'échelle hiérarchique ''.com'' qui lui, avec ses confrères ''.org'', ''.net'', etc..., connaissent tous les noms de domaines de l'Internet.
Une fois l'adresse IP trouvée, elle redescend l'échelle hiérarchique jusqu'à votre navigateur qui utilisera alors l'adresse IP reçue pour communiquer avec //google.com//.
{{Images_Cahier-101-03-003.png?22}} Le point à remarquer est que __le navigateur cherche en premier lieu dans le fichier ''host'' du poste de travail__. Pour tromper le navigateur, il suffit alors d'y entrer une référence pour notre domaine //micronator-dev.org//.
Pour un système Windows, le chemin du fichier ''hosts'' est: ''C:\Windows\System32\drivers\etc\hosts''. Pour un système Linux, le chemin est: ''/etc/hosts''.
Pour un système Windows, le fichier ''hosts'' est en __//Lecture seule//__.
__En ayant les droits d'administrateur Windows__, on enlève le droit de //Lecture seule// sur le fichier ''hosts'' du poste de travail et on l'édite avec //Notepad++//.
Dans l'explorateur de fichiers, on claque sur le fichier **hosts -> Propriétés**.
|{{ Images_Cahier-101-09-060.png?400 }}|
\\
Décocher **Lecture seule -> OK**.
|{{ Images_Cahier-101-09-061.png?400 }}|
\\
**Continuer**.
|{{ Images_Cahier-101-09-062.png?400 }}|
\\
=== CNAME du serveur DESTINATION ===
Clac sur **hosts -> Éditer avec Notepad++**.
|{{ Images_Cahier-101-09-063.png?400 }}|
On entre les **CNAME** de notre domaine et son **adresse IP**.
|{{ Images_Cahier-101-09-064.png?600 }}|
Lorsqu'on veut sauvegarde le fichier, Notepad++ nous demande si on veut lancer le mode Administrateur.\\
- **Oui**.\\
- **Continuer**.
|{{Images_Cahier-101-09-065.png?400 }}|
|{{Images_Cahier-101-09-062.png?400 }}|
{{Images_Cahier-101-03-006.png?25}} On est alors retourné à l'écran d'édition et __on sauvegarde encore une fois__, car la première sauvegarde n'a pas eu lieu, elle a été transformée en demande de changement de mode.\\
{{Images_Cahier-101-03-008.png?25}} On ferme Notepad++ et on remet le fichier ''hosts'' en __//Lecture seule//__.\\
À l'avenir, lorsqu'on demandera à notre navigateur de se rendre à https://www.micronator-dev.org:980, il cherchera dans le fichier ''hosts'' une correspondance avec //www.micronator-dev.org// et trouvera //www.micronator-dev.org//, il prendra alors l'adresse **10.10.10.75** qui y est associée et se connectera à la page de l'interface Web de notre Serveur NethServer.
==== Particularités de la carte RJ-45 ====
{{Images_Cahier-101-03-005.png?25}} L'adresse MAC de cette carte est différente de l'adresse MAC de la //Carte-0//, //Carte-1//, //eth0// ou //eth1//.\\
{{Images_Cahier-101-03-006.png?25}} La carte réseau //RJ-45// doit être activée et reliée à un dispositif quelconque pour que le poste de travail puisse l'identifier. Pour nous, cette carte est branchée à un port de l'aiguilleur LOCAL.
{{ Images_Cahier-101-09-066.png?200}}
__Si le connecteur //RJ-45// n'est pas branché__ à un dispositif quelconque et qu'on examine cette carte dans l'utilitaire //**Centre Réseau et partage**// de Windows, on verra qu'il indique //Câble réseau non connecté// même si elle est pourtant reliée, à travers la //Carte-1//, au réseau LOCAL et à travers la //Carte-2//, au réseau Externe du serveur invité NethServer.
{{ Images_Cahier-101-09-067.png?400}}
De plus, si VirtualBox ne trouve pas cette carte, le serveur invité NethServer pourrait refuser de démarrer.
Plus haut, nous avons débuté une arnaque en faisant croire au navigateur Web du poste de travail que c'est son serveur DNS qui lui donnera l'adresse l'IP de notre Serveur NethServer LOCAL alors qu'en réalité c'est le fichier ''C:\Windows\System32\drivers\etc\hosts'' du poste de travail qui répondra à sa requête.
{{Images_Cahier-101-03-003.png?22}} Le but principal de notre configuration non standard de la carte réseau du poste de travail est de continuer l'arnaque précédente en lui faisant croire qu'il possède deux cartes réseau RJ-45.
\\
==== Première adresse IP ====
Nous commençons par donner l'adresse **192.168.1.81** à la carte RJ-45 du poste de travail.
Clac //(clic droit)// sur l'icône réseau dans la zone de notification -> **Ouvrir le Centre Réseau et partage**.
|{{ Images_Cahier-101-09-068.png?400 }}|
\\
\\
**Modifier les paramètres de la carte.**
|{{ Images_Cahier-101-09-069.png?400 }}|
\\
\\
Clac sur la **carte Éthernet -> Propriétés**.
|{{ Images_Cahier-101-09-070.png?400 }}|
\\
Onglet **Gestion de réseau -> Protocole Internet version 4 (TCP/IPv4) -> Propriétés**.
|{{ Images_Cahier-101-09-071.png?400 }}|
\\
{{ Images_Cahier-101-09-072.png?350}}
**//Utiliser l'adresse IP suivante://**\\
\\
On entre les informations telles que ci contre.\\
\\
{{Images_Cahier-101-03-005.png?25}} Utiliser une passerelle par défaut sur un autre segment **IP** que l'adresse principale __n'est pas tout à fait standard__.
**//Utiliser l'adresse de serveur DNS suivante://**\\
\\
- Pour le serveur DNS préféré, nous utiliserons l'adresse IP //(**10.10.10.75**)// du serveur invité NethServer sur son réseau LOCAL afin de pouvoir utiliser le nom FQDN du Serveur NethServer virtuel même si celui-ci ne possède pas de véritable nom de domaine.\\
\\
- En effet, plus tard, lorsque le navigateur Web lancera une requête DNS pour l'adresse IP de l'URL https://www.micronator-dev.org: \\
\\
- Windows cherchera d'abord dans son fichier hosts s'il existe une correspondance pour cette URL. Il trouvera l'adresse IP du Serveur NethServer entrée précédemment et il la transmettra au navigateur Web.\\
- Si l'URL en question n'existe pas dans le fichier hosts du poste de travail, la requête sera transmise au serveur DNS préféré **10.10.10.75**, le Serveur NethServer virtuel. Si notre serveur virtuel ne connaît pas cette URL, il transmet la requête à son propre serveur DNS qui lui, la transmet à son propre serveur DNS, etc... jusqu'à ce que l'adresse IP soit enfin trouvée et retournée au navigateur Web.\\
- Lorsque le serveur invité sera éteint, la carte RJ-45 ne trouvant pas le serveur DNS préféré, demandera alors au serveur DNS auxiliaire //(**192.168.1.1** - le modem ADSL/VDSL)// de remplir les requêtes DNS.\\
\\
Cliquer **Avancé...**
==== Deuxième adresse IP ====
Nous donnons la deuxième adresse **10.10.10.81** à la carte RJ-45 du poste de travail.
- Onglet **Paramètres IP**.\\
- **Adresses IP**.\\
- **Ajouter**.
|{{ Images_Cahier-101-09-073.png?300 }}|
\\
- On entre l'adresse et le masque.\\
- **Ajouter**.
|{{ Images_Cahier-101-09-074.png?300 }}|
\\
La nouvelle adresse a été ajoutée à la carte RJ-45 du poste de travail.
|{{ Images_Cahier-101-09-075.png?300 }}|
\\
=== Passerelle ===
\\
\\
//Passerelles par défaut:// **Ajouter...**
|{{ Images_Cahier-101-09-076.png?300 }}|
\\
- //Passerelle:// **192.168.1.1**\\
- **Ajouter**.
|{{ Images_Cahier-101-09-077.png?330 }}|
\\
- La deuxième passerelle à été ajoutée.\\
- **OK**.
|{{ Images_Cahier-101-09-078.png?330 }}|
\\
**OK**.
|{{ Images_Cahier-101-09-079.png?300 }}|
**OK**.
|{{ Images_Cahier-101-09-080.png?330 }}|
**Détails...**
|{{ Images_Cahier-101-09-081.png?330 }}|
\\
- Nos deux adresses IP et nos deux passerelles son présentes.\\
\\
- **Fermer** toutes les fenêtre.
\\
\\
\\
**Tout est en place pour la restauration.**
|{{ Images_Cahier-101-09-082.png?400}}|
\\
====== Restauration ======
===== Restauration =====
{{Images_Cahier-101-03-004.png?25}} Nous avons modifié le fichier hosts du poste de travail pour pouvoir accéder à notre serveur virtuel DESTINATION en spécifiant son FQDN, voir ci dessus le paragraphe [[nethserver_101_cahier_09_duplicator_migration#CNAME du serveur DESTINATION]].
Avec un navigateur //(JavaScript & Témoins activés)//, on lance ''installer.php'' à l'URL suivante: https://www.FQDN_du-serveur-de-destination/installer.php
Pour notre serveur ce sera: https://www.micronator-dev.net/installer.php.
===== Notices (optional) =====
\\
\\
\\
On clique **PHP Version Mismatch** pour afficher l'avertissement.
|{{ Images_Cahier-101-09-083.png?400 }}|
- On peut ignorer cet avertissement.\\
- __Si on accepte les terms & notices__, on coche **I have read and accept all terms & notices**.\\
- **Next**. //(Peut prendre un certain temps.)//
|{{ Images_Cahier-101-09-084.png?400 }}|
===== Install Database =====
//**Host:**// __127.0.0.1:3312__ car nous utilisons //MariaDB 10.2//.
//**Database:**// __MN101__ choisie lors de la création de la BD.
//**User:**// __usager_MN101__.
**Password:** __mdp_MN101__.
|{{ Images_Cahier-101-09-085.png?400 }}|
\\
===== Options =====
Le lien d'aide fonctionne et pointe vers des articles //(en anglais seulement)// qui donnent de très bons conseils sur la restauration.\\
{{Images_Cahier-101-03-005.png?25}} Une FAQ en français se trouve à la page suivante:\\
[[https://snapcreek.com/duplicator/docs/faqs-tech/|https://snapcreek.com/duplicator/docs/faqs-tech/]].
{{ Images_Cahier-101-09-086.png?200 }}\\
On choisit Français et la FAQ s'affiche en français.
|{{ Images_Cahier-101-09-087.png?400 }}|
\\
- Il est toujours préférable de vérifier l'accès à la BD.\\
- **Test Database**.
|{{ Images_Cahier-101-09-088.png?400 }}|
- Tout est au vert.\\
- **Next**.
|{{ Images_Cahier-101-09-089.png?400 }}|
\\
On vérifie les paramètres **-> OK**.
|{{ Images_Cahier-101-09-090.png?500 }}|
//Duplicator// installe la BD.
|{{ Images_Cahier-101-09-091.png?400 }}|
\\
{{ Images_Cahier-101-09-092.png?400}}
{{Images_Cahier-101-03-003.png?22}} Si le message ci-contre s'affiche après la restauration de la BD, il suffit de __déplacer__ le fichier ''.htaccess'' restauré sur le poste de travail à l'aide de //WinSCP//. On pourra le remettre plus tard et l'ajuster en conséquence.
Après la disparition du fichier ''.htaccess'' restauré, on rafraîchit la page du navigateur.
\\
\\
On change le titre de notre site.
|{{ Images_Cahier-101-09-093.png?400 }}|
- **Options ->** onglet **Admin Account**.\\
- On pourrait créer un nouvel administrateur du site.
|{{ Images_Cahier-101-09-094.png?400 }}|
\\
- Onglet **Scan Options**.\\
- On coche les trois options.\\
- C'est ici que //Duplicator// pourrait manquer de temps d'exécution PHP.
|{{ Images_Cahier-101-09-095.png?400 }}|
- Onglet **WP-config File**.\\
- On peut forcer les administrateurs à utiliser une connexion sécurisée //(https )// en cochant -> ☑ **SSL: Enforce on Admin**.\\
- **Next** pour lancer le processus.
|{{ Images_Cahier-101-09-096.png?400 }}|
\\
{{ Images_Cahier-101-09-097.png?400}}
{{Images_Cahier-101-03-003.png?22}} Si le message ci-contre s'affiche, il suffit de supprimer le fichier ''.htaccess'' qui a été recréé et de rafraîchir la page du navigateur.
\\
===== Première connexion =====
{{ Images_Cahier-101-09-098.png?600}}
{{Images_Cahier-101-03-006.png?25}} //**Auto delete installer files after login (recommended)**// est coché et //Duplicator// va supprimer les fichier d'installation.
{{Images_Cahier-101-03-005.png?25}} ☑ **Admin login** pour afficher l'écran de login de notre nouveau site dans un nouvel onglet du navigateur.
\\
{{ Images_Cahier-101-09-099.png?200}}
On se logue avec les mêmes nom et mot de passe que ceux de l'__usager administrateur de WordPress de notre site SOURCE__.
\\
{{Images_Cahier-101-03-006.png?25}} Si //Auto delete installer files after login (recommended)// ci-dessus a été coché, les fichiers d'installation devraient avoir été supprimés sinon, voir la section [[nethserver_101_cahier_09_duplicator_migration#Finalisation de la migration]].
{{ Images_Cahier-101-09-100.png?600}}
{{Images_Cahier-101-03-004.png?25}} On peut supporter //Duplicator// en faisant un don.
Fermer la fenêtre en cliquant le X à l'extrême droite.
\\
==== Fichier .htaccess ====
Fichier original ''/home/e-smith/files/ibays/mn-101/html/.htaccess'' __sur le Serveur SME SOURCE__.
# **************************************
# Pour les permaliens
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# **************************************
# Pour protéger le fichier wp-config
order allow,deny
deny from all
# **************************************
# Pour protéger le fichier htaccess lui-même
order allow,deny
deny from all
# **************************************
# permet d’empêcher que tout le monde puisse voir et/ou récupérer
# les fichiers & images qui composent notre site.
Options All -Indexes
# **************************************
# Wordfence WAF
php_value auto_prepend_file '/home/e-smith/files/ibays/mn-101/html/wordfence-waf.php'
Require all denied
Order deny,allow
Deny from all
# END Wordfence WAF
En se basant sur le fichier ''.htaccess'' original, on en crée un nouveau qu'on adapte pour notre Serveur NethServer DESTINATION et qu'on placera dans le répertoire: ''/var/lib/nethserver/vhost/devnet/''.\\
{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
cat > /var/lib/nethserver/vhost/devnet/.htaccess <<'EOT'
# **************************************
# Pour les permaliens
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# **************************************
# Pour protéger le fichier wp-config
order allow,deny
deny from all
# **************************************
# Pour protéger le fichier htaccess lui-même
order allow,deny
deny from all
# **************************************
# DIRECTIVES POUR APACHE
#
# Permet au serveur de suivre les liens symboliques dans les répertoires concernés.
Options +FollowSymLinks
# Empêche d'afficher le contenu des répertoires s'ils ne contiennent aucun DirectoryIndex
# c'est-à-dire index.html, index.php etc...
Options -Indexes
# **************************************
# Wordfence WAF
php_value auto_prepend_file '/var/lib/nethserver/vhost/devnet/wordfence-waf.php'
Require all denied
Order deny,allow
Deny from all
# END Wordfence WAF
EOT
\\
==== Fichier wordfence-waf.php ====
Fichier ''/var/lib/nethserver/vhost/devnet/wordfence-waf.php'' copié de SOURCE par //Duplicator//.
Fichier ajusté pour le Serveur NethServer DESTINATION
{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
cat > /var/lib/nethserver/vhost/devnet/wordfence-waf.php <<'EOT'
EOT
\\
==== Fichier wp-config.php ====
Nouveau fichier ''wp-config.php''. Les anciens paramètres ont été mis en commentaire //(précédés par un #)// par //Duplicator//.
...
// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'MN101');#BD101');
/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'usager_MN101');#u_BD101');
/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'mdp_MN101');#BD101_toto97531');
/** Adresse de l'hébergement MySQL. */
define( 'WP_SITEURL', 'https://www.micronator-dev.net' );
define( 'WP_HOME', 'https://www.micronator-dev.net' );
define('RELOCATE',true);
define('DB_HOST', '127.0.0.1:3312');#localhost');
...
define( 'FORCE_SSL_ADMIN', true );
{{Images_Cahier-101-03-005.png?25}} Les anciens paramètres peuvent être supprimés.
{{Images_Cahier-101-03-006.png?25}} Si le paramètre ''define( 'FORCE_SSL_ADMIN', true );'' n'était pas présent sur le serveur SOURCE, il aurait été inséré parce qu'on a coché "//SSL: Enforce on Admin//" à l'onglet __//WP-Config File (wp-config.php)//__ lors de la configuration de la restauration.
\\
==== Chemin de WordPress ====
{{Images_Cahier-101-03-003.png?22}} Si nous avons restauré dans le répertoire par défaut, c.-à-d. ''/var/www/html'', il nous faut ajouter certaines directives au fichier ''wp-config.php'' sinon, WordPress ne trouvera pas son chemin pour sa mise à jour.
{{ Images_Cahier-101-09-101.png?450}}
Il nous faut ajouter un bout de code au fichier de configuration ''wp-config.php'', afin que WordPress n'ai pas de problème à exécuter certaines fonctions, telle que la mise à jour, ou il lui sera impossible de localiser le répertoire de contenu et affichera un message d'erreur.
Pour une solution fonctionnelle, voir la page WordPress : //Impossible de localiser le répertoire de contenu// à L'URL: [[https://juliencrego.com/wordpress-impossible-de-localiser-le-repertoire-de-contenu/|https://juliencrego.com/wordpress-impossible-de-localiser-le-repertoire-de-contenu/]].
if(is_admin()){
add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
define( 'FS_CHMOD_DIR', 0751 );
}
On ajoute les lignes ci-dessous au fichier **/var/www/html/wp-config.php**.\\
{{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande.
cat >> /var/www/html/wp-config.php <<'EOT'
###############################################
# Michel-André, 8 février 2019 @ 13h34 HNE
#
# Référence: https://juliencrego.com/wordpress-impossible-de-localiser-le-repertoire-de-contenu/
# Ajout de code afin de pouvoir localiser le répertoire de contenu
#
if(is_admin()){
add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
define( 'FS_CHMOD_DIR', 0751 );
}
###############################################
EOT
On vérifie.
[root@tchana ~]# tail -13 /var/www/html/wp-config.php
###############################################
# Michel-André, 8 février 2019 @ 13h34 HNE
#
# Référence: https://juliencrego.com/wordpress-impossible-de-localiser-le-repertoire-de-contenu/
# Ajout de code afin de pouvoir localiser le répertoire de contenu
#
if(is_admin()){
add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
define( 'FS_CHMOD_DIR', 0751 );
}
###############################################
[root@tchana ~]#
\\
===== Ajustement des droits =====
[root@tchana ~]# cd /var/lib/nethserver/vhost/devnet/
[root@tchana devnet]#
==== Ajustement du propriétaire et du groupe ====
[root@tchana devnet]# chown -R apache:apache * ; chown -R apache:apache .*
[root@tchana devnet]
==== Fichiers et répertoires ====
On renforce la sécurité de l’accès aux fichiers //( f )// en supprimant les droits à "other".
[root@tchana devnet]# find . -type f -exec chmod 640 {} \;
[root@tchana devnet]#
On répète l'opération pour les répertoires //( d )//.
[root@tchana devnet]# find . -type d -exec chmod 2750 {} \;
[root@tchana devnet]#
On vérifie.
[root@tchana devnet]# ls -als
total 216
4 drwxrwsr-x 9 ftp apache 4096 22 avril 14:35 .
0 drwxr-xr-x. 3 root root 96 21 avril 10:11 ..
0 drw-r-s--- 3 apache apache 39 22 avril 13:57 administrator
4 -rw-r-S--- 1 apache apache 1261 22 avril 14:43 .htaccess
4 -rw-r-S--- 1 apache apache 420 22 avril 13:57 index.php
20 -rw-r-S--- 1 apache apache 19935 22 avril 13:57 license.txt
...
[root@tchana devnet]#
\\
===== Connexion =====
{{ Images_Cahier-101-09-102.png?200}}
On se déconnecte et on se reconnecte à DESTINATION.
{{Images_Cahier-101-03-006.png?25}} On utilise le même justificatif de connexion que celui de l'__administrateur du site SOURCE__.
\\
{{ Images_Cahier-101-09-103.png?600}}
//Duplicator// nous affiche que les fichiers d'installation on bien été supprimés. On ferme cette fenêtre en cliquant le X à l'extrême droite.
\\
===== Finalisation de la migration =====
{{ Images_Cahier-101-09-104.png?600}}
Si //Auto delete installer files after login (recommended)// n'était pas coché au paragraphe [[nethserver_101_cahier_09_duplicator_migration#Première connexion]], un message serait affiché nous invitant à supprimer les fichiers d'installation.\\
**-> Y accéder**.
=== Suppression des fichiers d'installation ===
**Supprimer les fichiers d'installation**.
|{{ Images_Cahier-101-09-105.png?400 }}|
**Le résultat s'affiche**.
|{{ Images_Cahier-101-09-106.png?400 }}|
On vérifie la suppression des fichiers.
[root@tchana ~]# ls -als /var/lib/nethserver/vhost/devnet/
total 216
4 drwxr-s--- 9 ftp apache 4096 22 avril 14:35 .
0 drwxr-xr-x. 3 root root 96 21 avril 10:11 ..
0 -rw-r-s--- 3 apache apache 39 22 avril 13:57 administrator
4 -rw-r-S--- 1 apache apache 1261 22 avril 14:43 .htaccess
4 -rw-r-S--- 1 apache apache 420 22 avril 13:57 index.php
20 -rw-r-S--- 1 apache apache 19935 22 avril 13:57 license.txt
0 drwxr-s--- 13 apache apache 212 22 avril 13:57 PDF
12 -rw-r-S--- 1 apache apache 9101 22 avril 13:57 readme.086b0e08609918c8ef94ebf3245e4668.html
0 drwxr-s--- 3 apache apache 20 22 avril 13:57 Ut
4 -rw-r-S--- 1 apache apache 400 22 avril 13:57 wordfence-waf.php
8 -rw-r-S--- 1 apache apache 6919 22 avril 13:57 wp-activate.php
4 drwxr-s--- 9 apache apache 4096 22 avril 13:57 wp-admin
4 -rw-r-S--- 1 apache apache 369 22 avril 13:57 wp-blog-header.php
4 -rw-r-S--- 1 apache apache 2283 22 avril 13:57 wp-comments-post.php
4 -rw-r-S--- 1 apache apache 3897 22 avril 14:11 wp-config.php
4 -rw-r-S--- 1 apache apache 3600 22 avril 13:57 wp-config-sample.php
0 drwxr-s--- 8 apache apache 113 22 avril 13:57 wp-content
4 -rw-r-S--- 1 apache apache 3847 22 avril 13:57 wp-cron.php
12 drwxr-s--- 19 apache apache 8192 22 avril 13:57 wp-includes
4 -rw-r-S--- 1 apache apache 2502 22 avril 13:57 wp-links-opml.php
4 -rw-r-S--- 1 apache apache 3306 22 avril 13:57 wp-load.php
40 -rw-r-S--- 1 apache apache 38883 22 avril 13:57 wp-login.php
12 -rw-r-S--- 1 apache apache 8403 22 avril 13:57 wp-mail.php
20 -rw-r-S--- 1 apache apache 17947 22 avril 13:57 wp-settings.php
32 -rw-r-S--- 1 apache apache 31085 22 avril 13:57 wp-signup.php
0 drwxr-s--- 3 apache apache 23 22 avril 14:14 wp-snapshots
8 -rw-r-S--- 1 apache apache 4764 22 avril 13:57 wp-trackback.php
4 -rw-r-S--- 1 apache apache 3068 22 avril 13:57 xmlrpc.php
[root@tchana ~]#
On vérifie le répertoire de travail de //Duplicator//.
[root@tchana ~]# ls -alsR /var/lib/nethserver/vhost/devnet/wp-snapshots/
/var/lib/nethserver/vhost/devnet/wp-snapshots/:
total 4
0 drwxr-s--- 3 apache apache 23 22 avril 14:14 .
4 drwxr-s--- 9 ftp apache 4096 22 avril 14:35 ..
0 drwxr-s--- 2 apache apache 53 22 avril 14:14 installer
/var/lib/nethserver/vhost/devnet/wp-snapshots/installer:
total 16
0 drwxr-s--- 2 apache apache 53 22 avril 14:14 .
0 drwxr-s--- 3 apache apache 23 22 avril 14:14 ..
16 -rw-r-S--- 1 apache apache 14659 22 avril 14:14 dup-installer-log__6ca1eb9-21180704.txt
[root@tchana ~]#
Il ne reste que le sous-répertoire ''installer'' qui contient le journal de //Duplicator//.
\\
\\
===== Droit d'écriture du répertoire devnet =====
On enlève le droit d'écriture //(w)// au répertoire ''/var/lib/nethserver/vhost/devnet/'' qu'on lui avait donné à la section [[nethserver_101_cahier_09_duplicator_migration#Préparation du répertoire devnet]].
[root@tchana ~]# chmod g-w /var/lib/nethserver/vhost/devnet/
[root@tchana ~]#
On vérifie.
[root@tchana ~]# ls -lsd /var/lib/nethserver/vhost/devnet/
4 drwxr-sr-x 9 apache apache 4096 22 avril 14:35 /var/lib/nethserver/vhost/devnet
[root@tchana ~]#
\\
===== Redémarrage du démon httpd =====
On redémarre le démon //httpd// pour s'assurer que tous les fichiers sont ajustés correctement.
[root@tchana ~]# systemctl restart httpd
[root@tchana ~]#
**La restauration s'est déroulée correctement.**
====== Vérifications ======
===== Page d'accueil =====
{{ Images_Cahier-101-09-107.png?600}}
{{Images_Cahier-101-03-006.png?25}} On active //JavaScript// et les //témoins// du navigateur Web.
On supprime l'//historique du navigateur// et on se rend sur notre nouveau site Web, mais avec seulement http __sans le suffixe__ s:
http://www.micronator-dev.net
● La connexion n'est pas sécuritaire, mais elle s'est transformée en __https__.
● Le cadenas n'est pas vert, car nous n'avons pas de certificat Let's Encrypt incluant le nouveau nom de domaine.
● Le site est identique à celui du serveur SOURCE.
{{ Images_Cahier-101-09-108.png?350}}
Si vous recevez l'erreur ci-contre, vidangez l'historique de votre navigateur et exécutez la commande suivante __à l'invite du poste de travail__.
C:\Users\michelandre> ipconfig /flushdns
Configuration IP de Windows
Cache de résolution DNS vidé.
C:\Users\michelandre>
Réessayez de vous connecter et tout devrait se passer correctement.
\\
===== Thème enfant =====
==== Pied de page ====
{{Images_Cahier-101-03-006.png?25}} Nous utilisons un //Thème enfant//, c.-à-d. __Storefront Enfant__ et certains paramètres du pied de page ne sont pas inclus dans la BD, car ils sont dans le fichier: ''wp-content/themes/twentyten-enfant/footer.php''.
{{ Images_Cahier-101-09-109.png?600}}
Les liens s'affichent correctement, car __nous avons utilisé des chemins relatifs__ pour les liens de cette page et pour l'image.
\\
===== Vérification des liens =====
==== Accueil ====
Sur la page principale, on clique **Accueil**.
|{{ Images_Cahier-101-09-110.png?400 }}|
On clique le **logo Micronator**.
|{{ Images_Cahier-101-09-111.png?400 }}|
{{Images_Cahier-101-03-006.png?25}} Ces deux liens ne sont pas exactement identiques, mais tous deux pointent vers une page particulière.
● {{Images_Cahier-101-03-005.png?25}} //Accueil// fait partie du menu principal et provient de: //Tableau de bord -> Apparence -> Menus -> Menu principal//.\\
● Le lien du logo provient de: //Tableau de bord -> Réglages -> Adresse web du site (URL)//.
\\
==== Menus et pages ====
**Boutique** provient de //WooCommerce//.
|{{ Images_Cahier-101-09-112.png?400 }}|
**À propos** est un lien relatif vers une page standard.
|{{ Images_Cahier-101-09-113.png?400 }}|
\\
==== Rechercher un produit ====
On lance la recherche de: **Cahier**.
{{ Images_Cahier-101-09-114.png?400 }}
Il existe plusieurs pages //(12)// qui contiennent le mot //Cahier//.
Le résultat de la recherche s'affiche.
|{{ Images_Cahier-101-09-115.png?900 }}|
\\
==== Widget Articles récents ====
On clique le lien **Script des droits & permissions** du widget //Articles récents//. La page s'affiche correctement.
|{{ Images_Cahier-101-09-116.png?400 }}|
|{{ Images_Cahier-101-09-117.png?900 }}|
\\
==== Widget Références SME ====
On clique le lien **Manuel de l'utilisateur** du widget //Référence SME//. La page s'affiche correctement.
|{{ Images_Cahier-101-09-118.png?400 }}|
|{{ Images_Cahier-101-09-119.png?900 }}|
\\
==== Liens du pied de page ====
{{ Images_Cahier-101-09-120.png?600}}
On clique **Conditions d'utilisation**.
\\
{{ Images_Cahier-101-09-121.png?600}}
{{Images_Cahier-101-03-003.png?22}} Le site //Micronator-101.com// apparaît toujours. Nous pourrons modifier ce nom plus loin, avec l'extension WordPress - //Velvet Blues Update URLs//. Voir le paragraphe [[nethserver_101_cahier_09_duplicator_migration#Locutions]].
Le lien Conditions d'utilisation du pied de page fonctionne correctement.
\\
==== Connexion ====
**Se Connecter**.
|{{ Images_Cahier-101-09-122.png?400 }}|
On s'assure qu'on est bien dirigé vers l'URL du site restauré.
Le cadenas, à la gauche de l'URL, n'est pas vert car la demande de certificat Let's Encrypt n'incluait pas le FQDN de DESTINATION et ses CNAME.
Le lien est fonctionnel.
|{{ Images_Cahier-101-09-123.png?600 }}|
{{Images_Cahier-101-03-004.png?25}} Si une nouvelle demande de certificat Let's Encrypt incluait le FQDN de DESTINATION et ses CNAME, la connexion serait toujours "sécurisée" parce qu'on a coché //**SSL: Enforce on Admin**// lors de la configuration de la restauration.
Le widget //Derniers documents// fonctionne et défile correctement car //JavaScript// est actif.
\\
\\
====== WooCommerce ======
===== Stripe & PayPal =====
==== Clés de compte ====
{{ Images_Cahier-101-09-124.png?600}}
**Tableau de bord WordPress -> WooCommerce -> Réglages ->** onglet **Paiements ->** vis-à-vis //**Stripe**// **-> Gérer**.
\\
On vérifie les //clés de compte Stripe// en désactivant et activant le **Mode TEST**.
\\
==== Mode Test ====
{{ Images_Cahier-101-09-125.png?600}}
On active le **Mode TEST**.
**Enregistrer les modifications**.
\\
{{Images_Cahier-101-03-006.png?25}} On met aussi le //compte PayPal// en **Mode TEST** //(Bac à sable PayPal: activé)// -> **Enregistrer les modifications**.
\\
\\
===== Liens de téléchargements =====
**Tableau de bord WordPress -> Produits -> Micronator-101, Cahier-6:... -> Modifier**.
|{{ Images_Cahier-101-09-126.png?400 }}|
\\
Les liens pointent vers __www.micronator-dev.net__.
|{{ Images_Cahier-101-09-127.png?400 }}|
Les liens pointent tous vers le nouveau site. //Duplicator// les a ajustés.
\\
\\
===== Adresses courriel =====
**Tableau de bord WordPress -> WooCommerce -> Réglages ->** onglet **E-mails**.\\
On voit que les adresses courriel //Destinataire(s)// et //Adresse de l'expéditeur// ont bien été modifiées.
|{{ Images_Cahier-101-09-128.png?400 }}|
|{{ Images_Cahier-101-09-129.png?400 }}|
\\
==== Serveur physique directement branché à l'Internet ====
=== PayPal ===
Pour //PayPal//, il faut que les adresses soient identiques pour __//E-mail PayPal//__ et __//E-mail du destinataire//__. Voir la section [[nethserver_101_cahier_09_duplicator_migration#Commande - PayPal]].
**Tableau de bord WordPress -> WooCommerce -> Réglages ->** onglet **Paiements ->** vis-à-vis //**PayPal**// **-> Gérer**.
|{{ Images_Cahier-101-09-130.png?400 }}|
|{{ Images_Cahier-101-09-131.png?400 }}|
{{Images_Cahier-101-03-005.png?25}} Ces adresses courriels n'ont pas été modifiées, car elle ne sont reliés ni à SOURCE ni à DESTINATION.
Pour une migration vers un serveur physique directement relié à l'Internet, il faut s'assurer de l'exactitude de ces adresses courriel, mais vers un serveur virtuel, qui sert surtout pour tester de nouvelles extensions et la création de produits, elles sont moins critiques, car le serveur virtuel ne devrait pas tester les achats.
=== Stripe ===
C'est différent pour //Stripe//, car celui-ci envoie les courriels de commandes reçues et de paiements au __gestionnaire du compte //Stripe//__. Nous avons déclaré le courriel de cet utilisateur comme étant //paiement-stripe@micronator-101.com// lors de la configuration de notre compte chez [[https://stripe.com/ca|https://stripe.com/ca]].
{{Images_Cahier-101-03-006.png?25}} __Sur un serveur physique directement relié à l'Internet__, il va falloir modifier l'adresse courriel de l'administrateur __directement dans notre compte chez //Stripe//__.
\\
\\
===== Extension Velvet Blues Update URLs =====
Pour modifier les liens ou les adresses courriel de notre site, on peut utiliser l'extension **Velvet Blues Update URLs**.
==== Description ====
Si vous déplacez votre site WordPress vers un nouveau nom de domaine, vous trouverez que certains liens internes vers des pages, des références à des images et surtout des adresses courriel pourraient ne pas être mis à jour.
{{Images_Cahier-101-03-006.png?25}} Ces liens, références et adresses courriel pointeront peut-être encore vers votre ancien nom de domaine.
|{{ Images_Cahier-101-09-132.png?400 }}|
|{{ Images_Cahier-101-09-133.png?400 }}|
Cette extension corrige ce problème en vous aidant à changer les vieilles URL, adresses courriel et autres liens de votre site Web vers votre nouveau FQDN.
\\
==== Installation ====
**Tableau de bord -> Extensions -> Ajouter ->** //**Mot-clé**// **-> Velvet Blues Update URLs**.
|{{ Images_Cahier-101-09-134.png?400 }}|
\\
\\
**Installer**.
|{{ Images_Cahier-101-09-135.png?400 }}|
\\
\\
**Activer**.
|{{ Images_Cahier-101-09-136.png?400 }}|
L'extension est activée.
|{{ Images_Cahier-101-09-137.png?400 }}|
\\
===== Sauvegarde de la base de données =====
{{Images_Cahier-101-03-003.png?22}} Avant de modifier les liens, il est recommandé de faire une sauvegarde de la BD.\\
Si nous effectuons une mauvaise manipulation, on pourra alors facilement remettre en place la BD originale en seulement quelques secondes.
==== Répertoire temporaire ====
Si ce n'est déjà fait, on crée un répertoire temporaire.
[root@tchana ~]# mkdir /temp
[root@tchana ~]#
On s'y rend.
[root@tchana ~]# cd /temp/
[root@tchana temp]#
On vérifie.
[root@tchana temp]# pwd
/temp
[root@tchana temp]#
\\
==== Déversement de la BD ====
On déverse la BD //(MN101)// du site dans un fichier. //(On emploie **mysqldump102** à cause de l'utilisation de la Collection MariaDB 10.2.)//
[root@tchana temp]# mysqldump102 MN101 > ./MN101.sql_original
[root@tchana temp]#
On vérifie.
[root@tchana temp]# ls -ls MN101.sql_original
12380 -rw-r--r-- 1 root root 12673874 22 avril 16:43 MN101.sql_original
[root@tchana temp]#
\\
==== Remise en place de la BD originale ====
{{Images_Cahier-101-03-003.png?22}} Si jamais on doit remettre en place la BD originale, il suffit d'exécuter la commande suivante //(il faut absolument employer **mysql102** à cause de l'utilisation de la Collection MariaDB 10.2)//.
[root@tchana temp]# mysql102 MN101 < /temp/MN101.sql_original
[root@tchana temp]#
\\
===== Mise à jour des URL =====
==== Liens d'adresses ====
**Tableau de bord WordPress -> Outils -> Update URLs** et nous mettons à jour les liens:\\
https://www.micronator-101.com pour des liens https://www.micronator-dev.net.
{{Images_Cahier-101-03-006.png?25}} On ne modifie jamais les GUID.
|{{ Images_Cahier-101-09-138.png?400 }}|
|{{ Images_Cahier-101-09-139.png?400 }}|
ERREUR parce qu'il n'existe pas de liens https://www.micronator-101.com.
//Duplicator// les a tous remplacés.
Nous mettons à jour les liens:\\
http://www.micronator-101.com pour des liens http://www.micronator-dev.net.
|{{ Images_Cahier-101-09-140.png?400 }}|
|{{ Images_Cahier-101-09-141.png?400 }}|
ERREUR parce qu'il n'existe pas de liens http://www.micronator-101.com.
//Duplicator// les a tous remplacés.
Nous mettons à jour les liens:\\
https://micronator-101.com/ pour des liens https://micronator-dev.net/. //(Pas de __www__)//
|{{ Images_Cahier-101-09-142.png?400 }}|
|{{ Images_Cahier-101-09-143.png?400 }}|
ERREUR parce qu'il n'existe pas de liens https://micronator-101.com/.
//Duplicator// les a tous remplacés.
Nous mettons à jour les liens:\\
http://micronator-101.com/ pour des liens http://micronator-dev.net/. //(Pas de __s__ ni de __www__)//
|{{ Images_Cahier-101-09-144.png?400 }}|
|{{ Images_Cahier-101-09-145.png?400 }}|
ERREUR parce qu'il n'existe pas de liens http://micronator-101.com/.
//Duplicator// les a tous remplacés.
\\
==== Liens de courriel ====
{{Images_Cahier-101-03-006.png?25}} {{Images_Cahier-101-03-003.png?22}} __S'il y a lieu, il faut changer les adresses courriel chez //PayPal// et //Stripe//__.\\
{{Images_Cahier-101-03-006.png?25}} Il ne faudrait pas négliger les courriels qui ne commencent pas //http// ou //https//, mais qui se terminent par //@micronator-101.com//.
Nous mettons à jour les liens: @micronator-101.com pour des liens @micronator-dev.net.
|{{ Images_Cahier-101-09-146.png?400 }}|
|{{ Images_Cahier-101-09-147.png?400 }}|
ERREUR parce qu'il n'existe pas de liens //@micronator-101.com//.
Duplicator les a tous remplacés.
\\
==== Locutions ====
Nous mettons à jour les locutions //Micronator__-101.com__// pour des locutions //Micronator__-dev.net__//.
|{{ Images_Cahier-101-09-148.png?400 }}|
|{{ Images_Cahier-101-09-149.png?400 }}|
//Velvet Blues Update URLs// a trouvé __12__ locutions et les a ajustées.\\
Ces locutions se trouvaient dans des "Types de contenu" //(articles, pages, types de contenus personnalisés, révisions)//.
\\
{{ Images_Cahier-101-09-150.png?600}}
On vérifie la page https://www.micronator-dev.net/conditions-dutilisation/.
\\
===== Ajustements manuels =====
{{Images_Cahier-101-03-004.png?25}} Il ne faudrait pas oublier que rien n'est parfait!
==== Réglages ====
**Tableau de bord WordPress -> Réglages -> Général -> Adresse de messagerie**.
|{{ Images_Cahier-101-09-151.png?400 }}|
{{Images_Cahier-101-03-004.png?25}} Il est peut être préférable de garder cette adresse, car notre serveur principal de messagerie est __micronator.org__. De plus, le serveur physique ou virtuel sur le réseau LOCAL ne peut recevoir de courriels en provenance de l'Internet\\
{{Images_Cahier-101-03-003.png?22}} Faites les ajustement nécessaire pour un serveur physique directement branché à l'Internet.\\
{{Images_Cahier-101-03-005.png?25}} Dans notre cas particulier, notre serveur principal de messagerie est __micronator.org__ et nous ne modifions jamais cette adresse.
\\
\\
===== Contact =====
**Tableau de bord Wordpress -> Contact -> Formulaires de contact -> Inscription à l'infolettre ->** onglet **E-mail**.\\
**Tableau de bord Wordpress -> Contact -> Formulaires de contact -> WebMestre ->** onglet **E-mail**.
Dans le champs //**Pour**//, on garde l'adresse de l'administrateur principal.\\
Dans le champs //**De**//, cette adresse a été modifiée pas Duplicator.\\
Dans le champ //**Objet**//, on change __Micronator__ pour __NethServer__.\\
{{Images_Cahier-101-03-006.png?25}} **-> Enregistrer**.
|{{ Images_Cahier-101-09-152.png?400 }}|
|{{ Images_Cahier-101-09-153.png?400 }}|
{{Images_Cahier-101-03-006.png?25}} Encore une fois, il faut faire la différence entre un serveur physique directement branché à l'Internet et un serveur virtuel sur le réseau LOCAL.
\\
\\
==== WooCommerce / Réglages ====
{{ Images_Cahier-101-09-156.png?600}}
**Tableau de bord WordPress -> WooCommerce -> Réglages ->** onglet **Produits -> Inventaire**.
//**Destinataire(s) notification**//.\\
{{Images_Cahier-101-03-006.png?25}} On garde l'adresse de l'administrateur principal.\\
Sinon, ajustez.
{{ Images_Cahier-101-09-154.png?200 }}
{{ Images_Cahier-101-09-155.png?200 }}
\\
=== Commande - Stripe ===
{{Images_Cahier-101-03-003.png?22}} {{Images_Cahier-101-03-006.png?25}} Il ne faut pas oublier de changer les adresses courriel __directement chez //Stripe//__.
\\
=== Commande - PayPal ===
**Tableau de bord -> WooCommerce -> Réglages -> onglet Paiements ->** vis-à-vis //**PayPal**// **-> Gérer**.
**E-mail PayPal**\\
Ajuster si nécessaire.
**E-mail du destinataire**\\
Ajuster si nécessaire.
{{Images_Cahier-101-09-157.png?500 }}
{{Images_Cahier-101-09-158.png?500 }}
{{Images_Cahier-101-03-003.png?22}} Il faut absolument que //__E-mail PayPal__// et //__E-mail du destinataire__// aient la même adresse courriel sinon, les clients ne recevront pas les courriels que la commande est payée et terminée. L'//E-mail PayPal// est celle utilisée pour nous connecter à notre compte //PayPal//, il ne faut pas la modifiée.
\\
**Identifiant API**
{{Images_Cahier-101-03-006.png?25}} Ces adresses courriel ne doivent pas être ajustées par //Velvet Blues Update URLs// sinon, MODIFIER, car elles servent à l'API à se connecter à //PayPal// lors d'un paiement.
Décocher //**Activer PayPal sandbox**// pour faire apparaître l'adresse courriel __LIVE__.
Cocher //**Activer PayPal sandbox**// pour faire apparaître l'adresse courriel __SANDBOX__.
{{Images_Cahier-101-09-159.png?500 }}
{{Images_Cahier-101-09-160.png?500 }}
\\
**Enregistrer les modifications ->** Vérifier le succès de l'opération.
{{Images_Cahier-101-03-006.png?25}} Encore une fois, faites la différence entre un serveur physique directement branché à l'Internet et un serveur virtuel sur le réseau LOCAL.
{{Images_Cahier-101-09-161.png?300 }}
=== E-mails - Image d'entête (en-tête) ===
**Tableau de bord WordPress -> WooCommerce -> Emails**.\\
Ajuster si nécessaire.
**-> Enregistrer les modifications**.
{{Images_Cahier-101-09-162.png?400 }}
\\
**Enregistrer les modifications**.
Vérifier le succès de l'opération.
{{Images_Cahier-101-09-163.png?300 }}
{{Images_Cahier-101-03-006.png?25}} Encore une fois, faites la différence entre un serveur physique directement branché à l'Internet et un serveur virtuel sur le réseau LOCAL.
\\
\\
==== Utilisateurs - usager de test - administrateur ====
{{Images_Cahier-101-03-006.png?25}} Ces adresses courriel devraient avoir été ajustées par //Duplicator// sinon, MODIFIER.\\
{{Images_Cahier-101-03-006.png?25}} Sur un serveur virtuel sur le réseau LOCAL, cet utilisateur ne pourra pas recevoir de courriel en provenance de l'Internet.\\
{{Images_Cahier-101-03-004.png?25}} Pour remédier à cette situation sur un serveur virtuel sur le réseau LOCAL, on pourrait créer les utilisateurs ci-dessous sur le serveur principal qui est directement branché à l'Internet et modifier en conséquence leur adresse.
**Tableau de bord WordPress -> Utilisateurs -> Tous les utilisateurs ->** choisir l'utilisateur **-> Modifier**.
=== acheteur-test ===
//**Adresse de messagerie**// et //**Site web**//\\
Ajuster si nécessaire.
{{Images_Cahier-101-09-164.png?500 }}
\\
//**Adresse de facturation**//
//Adresse de messagerie// **->** Ajuster si nécessaire.
{{Images_Cahier-101-09-165.png?500 }}
\\
Mettre à jour l'utilisateur -> Vérifier le succès de l'opération. {{Images_Cahier-101-09-166.png?200}}
=== Autres utilisateurs ===
Répéter les opérations et vérifier pour les autres utilisateurs.
\\
\\
==== Wordfence ====
**Tableau de bord -> Wordfence -> All Options -> Options générales de Wordfence -> Adresse courriel pour recevoir les alertes**.
{{ Images_Cahier-101-09-167.png?600}}
{{Images_Cahier-101-03-006.png?25}} Cette adresse courriel devrait avoir été ajustée par //Velvet Blues Update URLs// sinon, **MODIFIER**.
\\
Enregistrer les modifications -> Vérifier le succès de l'opération. {{Images_Cahier-101-09-168.png?200}}
===== Liens cassés =====
{{ Images_Cahier-101-09-169.png?600}}
**Tableau de bord WordPress -> Réglages -> Vérificateur de liens**.
- On vérifie //**Cassé**// et //**Redirection**// s'il y a lieu.
- //**Adresse e-mail pour la notification**// n'est pas nécessaire, car "Laissez vide pour utiliser l’adresse e-mail spécifiée dans //**Réglages Général**//."
\\
===== Test d'achat =====
{{Images_Cahier-101-03-006.png?25}} __Seulement pour un serveur branché directement à l'Internet__.\\
{{Images_Cahier-101-03-006.png?25}} S'assurer que nous sommes en __Mode TEST__ tel que décrit à la section [[nethserver_101_cahier_09_duplicator_migration#Mode Test]].
On se logue en tant qu'usager __acheteur-test__ pour quelques achats.
- **Ajoute au panier**.\\
- **Voir le panier**.
|{{ Images_Cahier-101-09-170.png?400 }}|
\\
On entre les informations demandées.
|{{ Images_Cahier-101-09-171.png?400 }}|
- On clique **J'ai lu et j'accepte...**\\
- **Commander**.
|{{ Images_Cahier-101-09-172.png?400 }}|
\\
Retour sur le site.
|{{ Images_Cahier-101-09-173.png?400 }}|
On clique **Assistance à distance...**
|{{ Images_Cahier-101-09-174.png?400 }}|
On ouvre le fichier.
|{{ Images_Cahier-101-09-175.png?400 }}|
\\
\\
Le fichier s'affiche.
|{{ Images_Cahier-101-09-176.png?400 }}|
Le récepteur de courriels reçoit la notification d'une nouvelle commande.
|{{ Images_Cahier-101-09-177.png?400 }}|
**Tableau de bord -> WooCommerce -> Commandes ->** on affiche la commande.
|{{ Images_Cahier-101-09-178.png?400 }}|
\\
- Au bas de la description de la commande, on voit qu'un téléchargement a eut lieu.
- Le client a reçu un courriel de remerciement contenant les liens de téléchargement.
Les achats fonctionnent parfaitement.
{{Images_Cahier-101-03-006.png?25}} On retourne en Mode RÉEL.
|{{ Images_Cahier-101-09-179.png?400 }}|
|{{ Images_Cahier-101-09-180.png?400 }}|
\\
===== Suppression du répertoire temporaire =====
{{Images_Cahier-101-03-008.png?25}} Le répertoire temporaire n'est plus nécessaire, on doit le supprimer car il contient la BD de sauvegarde.\\
On sort du répertoire ''/temp'' pour retourner au répertoire personnel de root.
[root@tchana temp]# cd
[root@tchana ~]#
On supprime le répertoire ''/temp''.\\
{{Images_Cahier-101-03-006.png?25}} L'option //**-f**// de la commande ''rm'' ne demande aucune confirmation et __ne pardonne pas les erreurs de frappe__.
[root@tchana ~]# rm -rf /temp
[root@tchana ~]#
On vérifie.
[root@tchana ~]# ls -als /temp
ls: impossible d'accéder à /temp: Aucun fichier ou dossier de ce type
[root@tchana ~]#
\\
===== Sauvegarde =====
==== Serveur physique directement relié à l'Internet ====
Après la restauration, il est fortement recommandé de créer une sauvegarde complète avec //Duplicator// pour survivre en cas de désastre. La récupération de cette sauvegarde sera très facile, car elle sera remise sur la même machine et il n'y aura aucune manipulation à faire après la récupération sauf, nettoyer les fichiers du Paquet.
On crée aussi une sauvegarde régulière NethServer du serveur de DESTINATION.
==== Serveur virtuel sur le réseau LOCAL ====
Pour une machine virtuelle du serveur DESTINATION, on peut prendre un instantané du Serveur NethServer.
\\
**La machine virtuelle sur le poste de travail servira à tester les mises à jour,\\
les nouvelles extensions et la création de nouveaux produits\\
sans aucun danger pour notre site physique.**
\\
====== Conclusion ======
===== Difficultés particulières =====
Nous avions quelques difficultés particulières pour les locutions, mais tout s'est bien passé.
{{Images_Cahier-101-03-004.png?25}} Si le site SOURCE et le site DESTINATION utilisent le même nom de domaine, les liens seront automatiquement les mêmes et aucun n'aura à être ajusté. Les deux serveurs peuvent utiliser le même nom de domaine __pourvu que leur ''hostname'' soit différent__; l'un peut s'appeler //toto// et l'autre //titi//.
{{Images_Cahier-101-03-003.png?22}} Le hostname de DESTINATION étant différent de celui de SOURCE, il faudra peut-être ajuster le nom du répertoire partagé sur la station distante qui reçoit les __sauvegardes régulières__ du Serveur NethServer sinon, le serveur ne le trouvera pas en cas d'une restauration des données.
\\
===== Quelques conseils pratiques =====
- Sur le site de DESTINATION, autant que possible, utiliser un nom d'administrateur et un mot de passe différents de ceux du site SOURCE afin d'éviter les erreurs de distraction lorsqu'on ouvrira plusieurs écrans //PuTTY// vers la SOURCE en même temps que vers la DESTINATION.
- Toujours mettre les écrans de la SOURCE à gauche du bureau du poste de travail et ceux de la DESTINATION à droite. Vous ne regretterez pas cette petite astuce, car une distraction est si vite arrivée et, modifier le site SOURCE en pensant modifier le site de DESTINATION est une __erreur courante__.
- Prendre le navigateur //Firefox// pour un site et //Chrome// pour l'autre site.
- Si vous avez un nom de domaine //FQDN// pour votre migration et que vous pouvez y accéder par Internet, utilisez le navigateur //TOR// pour les vérifications. //TOR// n'accède jamais directement à travers le réseau LOCAL, il passe toujours par l'Internet.
- {{Images_Cahier-101-03-003.png?22}} Si vous désinstallez l'extension //Wordfence Security//, il faut absolument vérifier la suppression des directives s'y rapportant dans le fichier ''.htaccess'' sinon, le site Web ne démarrera pas.
\\
===== Assistance à distance TeamViewer =====
**TeamViewer** est une application intuitive, rapide et sécuritaire destinée au contrôle à distance et aux réunions.
L'installation et la configuration de TeamViewer sont présentées dans le [[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis|Cahier-02]]: //Installations & configurations des logiciels prérequis//.
\\
===== Autre méthode de clonage =====
Pour un clone du serveur SOURCE sur un serveur DESTINATION nous aurions pu simplement:
☐ Créer __une sauvegarde BackupPC__ du server SOURCE et la restaurer sur DESTINATION, voir: [[nethserver_101_cahier_11_nethserver_backuppc|Cahier-11]]: //BackupPC//.
De cette façon, tout aurait fonctionné sans aucun ajustement à faire __sauf peut-être, ajuster les cartes réseau__.
\\
\\
{{NS-101_002_Banniere_Victoire.png?50}} Victoire totale, hissons la bannière de la victoire.
\\
----
====== Crédits ======
© 2012-2016-2017-2018-2019 RF-232\\
Auteur: Michel-André CLP.\\
Remerciement: Tous les contributeurs GNU/GPL.\\
Intégré par: Michel-André Robillard CLP.\\
Contact: michelandre at micronator.org
Répertoire de ce document: E:\000_DocPourRF232_general\RF-232_NethServer_DokuWiki\101-09_RF-232_Cours_NethServer-101_Cahier-09_Duplicator_2019-08-06_15h07.odt
Historique des modifications:
^Version^Date^Commentaire^Auteur|
|0.0.1|2012-11-25|Début.|Michel-André|
|0.0.2|2012-12-13|Coquille dans l'entête de l'index.|Michel-André|
|0.0.3|2012-12-14|Ajout du paragraphe de vérifications des liens internes à vérifier.|Michel-André|
|0.1.0|2016-04-04|Mise à jour.|Michel-André|
|0.2.0|2016-10-24|Mise à jour complète.|Michel-André|
|1.0.0|2017-03-31|Ré-écriture pour l'utilisation de Duplicator dans le cours Micronator-101.|Michel-André|
|1.0.1|2017-04-11|- Correction pour l'affichage des paramètres de php.ini de PHP-5.6 dans le chapitre Serveur DESTINATION.\\ - Mis l'ajustement de l'Adresse de messagerie dans Réglages/Général en premier pour améliorer certains liens qui s'ajusteront automatiquement.|Michel-André|
|1.0.2|2017-04-16|Corrections orthographiques, coquilles.|Michel-André|
|2.0.0|2018-04-07|Mise à jour.|Michel-André|
|3.0.0|2018-10-30|Mise à jour complète.|Michel-André|
|3.0.1|2018-11-06|Suppression d'un paragraphe double pour le Cours Micronator-101.|Michel-André|
|4.0.0|2019-03-08|Adaptation pour NethServer-7.6.1810.|Michel-André|
|4.0.1|2019-04-21|- Ajuster le diagramme du paragraphe But de la migration.\\ - Ajuster la section Répertoire wp-snapshots pour spécifier la configuration sur un Serveur SME ou sur un Serveur NethServer.\\ - Ajout pour le paramétrage du temps d'exécution de PHP.\\ - Ajouter une remarque lors de l'affichage de Forbidden You don't have permission to access /dup-installer/main.installer.php on this server.\\ - Ajout à la section Première connexion.\\ - Différentes autres petites modifications et ajouts.\\ - Changement du propriétaire:groupe pour apache:apache du répertoire /var/lib/nethserver/vhost/devnet/.|Michel-André|
|4.0.2|2019-06-25|Corrections mineures.|Michel-André|
|4.1.0|2019-07-30|Ajustements pour DokuWiki.|Michel-André|
|4.1.1|2019-08-19|Suppression du "sticky bit" pour les fichiers|Michel-André|
|12345678901| | |12345678901|
===== AVIS DE NON-RESPONSABILITÉ =====
Ce document est uniquement destiné à informer. Les informations, ainsi que les contenus et fonctionnalités de ce document 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 directs 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 ordinateur 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.
\\
\\