Changes

Jump to navigation Jump to search
252,864 bytes added ,  20:17, 14 October 2018
RC-001
<!--__NOTOC__ -->
__TOC__
<br>

= Description générale =

Le Cahier-5A du cours Micronator-101 décrit l'installation de WordPress-4.6.1-fr_FR.zip et sa mise à jour vers la dernière version disponible, WordPress-4.9.8 du 2 octobre 2018.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Ce cahier peut être utilisé pour l'installation de toutes les versions de WordPress-4.x.

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

WordPress est un système de gestion de contenu LIBRE, écrit en PHP et reposant sur une base de données MySQL, distribué par Automattic. WordPress est surtout utilisé comme moteur de blog mais, ses fonctionna­lités lui permettent également de gérer n'importe quel genre de site web. Il est distribué selon les termes de la GNU GPL. Le logiciel est aussi à l'origine du service WordPress.com.

=== Description du Serveur SME utilisé pour ce cahier ===

Pour ce cahier, nous utilisons le Serveur SME virtuel de l'Étudiant-1.
<br>
[[Image:SME-101.02-049-DiagStation.png|top|center|800px]]
<br>
<br>
<br>
[[Image:SME-101.02-004-ServeurDNS-C.png|top|center|800px]]
<br>
<br>

=== But final du cours SME-101 ===

Après avoir suivi le cours '''''SME-101''''', l'Étudiant possédera un site de Commerce en ligne fiable et hautement sécuritaire. De plus, il pourra utiliser un clone de son site, sur un Serveur SME virtuel sur sa station de travail, pour tester de nouvelles extensions et applications sans compromettre la sécurité ou l'intégrité de son site en ligne.


[[Image:SME-101-ButFinal.png|top|center|700px]]


<span style="font-size:120%">'''Cours SME-101'''</span>

Le cours '''''SME-101''''', se voulant une base solide pour la création d'un site de Commerce en ligne, comprend plusieurs cahiers:

* '''Cahier-00''': Les bases de Linux,&nbsp;&nbsp;https://wiki.contribs.org/SME-101.00_Linux_de_base.
* '''Cahier-01''': Installation et configuration des logiciels prérequis sur le poste de travail de l'Étudiant de même que le téléchargement des fichiers qui seront installés sur le Serveur SME virtuel,&nbsp;&nbsp;https://wiki.contribs.org/SME-101.01_Logiciels_de_la_station_de_travail.
* '''Cahier-02''': Description du parcours des paquets IP du Serveur SME vers l'Internet, création de la machine virtuelle, installation/configuration du serveur Linux SME et enfin, sauvegarde/restauration de ce dernier,&nbsp;&nbsp;https://wiki.contribs.org/SME-101.02_Serveur_SME.
* '''Cahier-03''': Abonnement à un FAI, installation et configuration d'un modem ADSL/VDSL, création d'un domaine chez un fournisseur de Service DNS dynamique avec installation d'un script pour sa mise à jour et enfin la marche à suivre pour l'obtention et la configuration d'un domaine FQDN<ref name="ftn1"> '''FQDN''': Dans le DNS, un <u>F</u>ully <u>Q</u>ualified <u>D</u>omain <u>N</u>ame ''(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.'''<br/> '''''Référence'': [https://fr.wikipedia.org/wiki/Fully_qualified_domain_name https://fr.wikipedia.org/wiki/Fully_qualified_domain_name].'''</ref>,&nbsp;&nbsp;https://wiki.contribs.org/SME-101.03_ADSL/VDSL,_DDNS_et_Domaine_FQDN
* '''Cahier-04''': Installation d'un certificat SSL de l'autorité de certification Let's Encrypt et script de mise à jour,&nbsp;&nbsp;https://wiki.contribs.org/SME-101.04_Certificat_Let%27s_Encrypt.
* '''Cahier-05A''': Installation et configuration de WordPress.
* '''Cahier-05B''': Installation et configuration de l'extension de sécurité Wordfence.
* '''Cahier-06''': Installation et configuration de l'extension de vente en ligne WooCommerce, création de comptes chez Stripe et PayPal pour les paiements en ligne.
* '''Cahier-07''': Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator.
* '''Cahier-08''': Serveur mandataire inversé,&nbsp;&nbsp;https://wiki.contribs.org/Mandataire_invers%C3%A9.
* '''Cahier-09''': Supplément: SME & BackupPC-4.2,&nbsp;&nbsp;https://wiki.contribs.org/BackupPC-4.2.

Tous les logiciels nécessaires sont du domaine public ou LIBRE sous licence GPL; ils ne coûtent pas un sous. Le seul achat nécessaire est l'obtention d'un nom de domaine FQDN au prix initial de $15 CAD et son renouvellement annuel d'environ $30 CAD.

=== 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. Se référer aux différents tableaux lorsque ceux-ci sont présents.

'''''Conventions'''''

* Toutes les commandes à entrer à la console du Serveur SME commencent habituellement avec l'invite '''#''' pour l'usager root ou '''$''' pour un usager sans privilège particulier.
* L'invite <code>mysql></code> de la console MySQL est toujours présente.
* La sortie de la commande est séparée de celle-ci par une ligne vide sans couleur de fond.
* L'invite de retour n'est jamais présent pour la plupart des commandes.
* Les affichages à surveiller sont en <span style="color:Red">rouge</span>, <span style="color:Blue">bleu</span>, <span style="color:Orange">orange</span> ou <span style="color:DarkMagenta">magenta</span>.

# ping 192.168.1.149

192.168.1.149 is alive


Les liens de référence Internet sont en <span style="color:blue">bleu</span> de même que ceux intra document mais, ces derniers débute par un " <span style="color:blue">#</span> ".

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Manipulation, truc ou ruse pour se tirer d’embarras.

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Une recommandation ou astuce.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Une note.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Une étape, note ou procédure à surveiller.

[[Image:Icone-DangerAPT.png|25px]]&nbsp;&nbsp;Danger pour la sécurité du système.

Une chaîne de caractères en <span style="color:DarkMagenta">magenta</span> indique qu’il faut remplacer cette chaîne par vos propres paramètres.

{| class="wikitable" style="width: 80%; background-color:#F0FFFF;"
|- style="vertical-align:top;font-family: Courier New;"
|Commande à exécuter si ce n'est déjà fait.
|}

{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|Commande indiquée à titre d'information seulement.
|}

= Prérequis =

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

Voir SME-101.02&nbsp;&nbsp;https://wiki.contribs.org/SME-101.02_Serveur_SME.

=== Mise à jour du Serveur ===

Avant de commencer quoi que ce soit, il est toujours préférable de mettre à jour le Serveur SME.

Voir SME-101.02&nbsp;&nbsp;https://wiki.contribs.org/SME-101.02_Serveur_SME#Mise_.C3.A0_jour.

=== Collection PHP70 ===

Version PHP actuelle pour un Serveur SME-9.2.
# rpm -qa | grep php

...
php-gd-5.3.3-49.el6.x86_64
php-<span style="color:red">5.3.3-49</span>.el6.x86_64
php-mysql-5.3.3-49.el6.x86_64
...

Comme on le voit, notre version <span style="color:red">5.3.3-49</span> de PHP est légèrement vieillotte.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Nous allons installer la Contrib PHP Software Collections qui fourni une version plus récente tout en gardant la version originalement installée.


'''PHP Software Collections'''

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

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Les développeurs de RedHat ont pensé qu'un inconvénient, avec la version 5 de PHP, allait survenir tôt ou tard et ont écrit les paquetages des Collections. Les développeurs de SME ont donc crée une Contrib qui règle le contre-temps des versions PHP. Cette Contrib est disponible depuis février 2015.


'''''Description de la Contrib'''''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Disponible pour <u>SME-9.x/64</u> seulement.

Le but de cette Contrib est d'installer PHP-5.4, PHP-5.5, PHP-5.6, PHP-7.0 et PHP-7.1, parallèlement à la version installée par défaut avec SME-9.x/64, sans devoir supprimer ou modifier cette dernière. Cette Contrib utilise les RPM du dépôt de logiciels <code>remi-safe</code> qui sont en fait les mêmes que ceux sur le site Web officiel mais, ils ont l'avantage de fournir plus de choix.

Tous les RPM PHP sont installés dans <code>/opt</code>, ce qui empêche toutes interférences ou conflits avec l'installation par défaut.


'''''Prérequis pour l'installation de PHP Software Collections'''''

Il faut inscrire les dépôts de logiciels <code>remi-safe</code> et <code>epel</code> dans la BD de <code>yum</code> pour pouvoir installer la Collection PHP.


'''<span style="color:red">†</span> Dépôt remi-safe'''

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

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

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

Vérification.
# db yum_repositories show remi-safe

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


'''<span style="color:red">††</span> Dépôt epel'''

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

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

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

Vérification.
# db yum_repositories show epel

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


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


'''Installation de la Contrib'''

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Nous installons de la manière avancée, c.-à-d. avec plus de RPM pour une utilisation ultérieure de ceux-ci si nécessaire.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Peut prendre un certain temps...
# yum install -y --enablerepo=smecontribs,epel smeserver-php-scl php56-php-pecl-rar php56-php-libvirt php56-php-magickwand

...
Installation de <span style="color:red">125 paquet(s)</span>

Taille totale des téléchargements&nbsp;: <span style="color:red">45 M</span>
Taille d'installation&nbsp;: <span style="color:red">124 M</span>
...
Installé:
<span style="color:red">smeserver-php-scl.noarch 0:0.4-17.el6.sme</span>

Dépendance(s) installée(s)&nbsp;:
audit-libs-python.x86_64 0:2.4.5-6.el6
enchant.x86_64 1:1.5.0-5.el6
...
tcl.x86_64 1:8.5.7-6.el6

Terminé&nbsp;!

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

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

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


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

''Référence'': [http://appdev.oit.umn.edu/2015/02/11/scl/ http://appdev.oit.umn.edu/2015/02/11/scl/]

On crée le fichier d'activation qui sera lu lors d'un connexion au Serveur SME.

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

cat > /etc/profile.d/activer-php71.sh <<'EOT'
<nowiki>#!/bin/bash</nowiki>
source /opt/remi/php71/enable
<nowiki>if [[ "$X_SCLS" != *php71* ]]; then</nowiki>
src="`scl enable php71 'echo $X_SCLS'`"
pkgs=(${src// / })
uniq=($(printf "%s\n" "${pkgs[@]}" | sort -u));
export X_SCLS="${uniq[@]}"
fi
EOT

On rend le fichier exécutable.
# chmod +x /etc/profile.d/activer-php71.sh

On vérifie.
# ls -als /etc/profile.d/activer-php71.sh

4 -rwxr-xr-x 1 root root 215 11 oct. 12:04 /etc/profile.d/activer-php71.sh


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

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

'''''Sinon...'''''

On signale l'installation et on réamorce.
# signal-event post-upgrade ; signal-event reboot

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;" AVEC LARGUEUR = GRANDE (600px)

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

'''Vérification'''

On se connecte et on vérifie l'installation.
# rpm -qa | grep scl-

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

On vérifie les Collections installées.
# scl -l

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


Quel est le PHP par défaut?
# which php

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


Quelle est sa version?
# php --version

<span style="color:red">PHP 7.1.16</span> (cli) (built: Mar 28 2018 12:03:37) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies


'''Mise à jour de la Contrib'''

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


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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-004-WPzip-Usager-B-1.png|550px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-004-WPzip-Usager-B.png|250px|border]]
|}
'''Activation de la version PHP-7.1 pour les i-bays'''

* <span style="font-family:Courier New;">On se logue dans le gestionnaire du serveur: https://www.micronator-101.com/server-manager.</span>
* <span style="font-family:Courier New;">- <span>Versions de PHP-SCL.<br>- Version de PHP-mod.</span>
<br clear=all>

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

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

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

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

'''Ajustement des paramètres PHP'''

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

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


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

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


'''''MemoryLimit'''''

Chaque fois qu'un client fait une requête au serveur Web, PHP génère un processus PHP. Le travail de ce processus est de générer du code HTML qu'il envoie au client. Le processus fournit un temps d'exécution à un script qui crée la réponse à la requête. La limite de mémoire <code>MemoryLimit</code> est la quantité maximale de mémoire que ce processus peut utiliser. Si la limite est atteinte ou dépassée, le processus échoue et Apache signale une erreur HTTP 500.

On ajuste le paramètre pour PHP-7.1.
# config setprop php71 MemoryLimit 256M


'''''UploadMaxFilesize'''''

Pour certaines extensions telles que WooCommerce, WordPress doit autoriser le téléversement de fichiers et la grandeur de ceux-ci ne peut dépasser la limite définie par le paramètre <code>UploadMaxFilesize</code> de PHP.

[[Image:SME-101.05A-004-PHPmod-D.png|top|center|800px|border]]


On ajuste le paramètre pour PHP-7.1.
# config setprop php71 UploadMaxFilesize 50M


'''''PostMaxSize'''''

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

Le paramètre <code>PostMaxSize</code> définit la taille maximale autorisée pour les données d'un post. Ce paramètre affecte également le téléchargement de fichiers. Pour télécharger des fichiers volumineux, cette valeur doit absolument être toujours supérieure à <code>UploadMaxFilesize</code>.

On ajuste le paramètre pour PHP-7.1.
# config setprop php71 PostMaxSize 52M


On signale les changements pour qu'ils deviennent permanents.
# signal-event php-update


On vérifie le tout.
# config show php71

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

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


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

'''Limite de mémoire pour PHP'''

Si on installe un site Web qui utilise PHP, il se peut que ce dernier manque de mémoire pour exécuter certains scripts. Par défaut la limite de mémoire allouée à PHP est de <span style="color:red">32M</span>.

Dans le fichier <code>/etc/php.ini</code>, il existe déjà une variable <code>Memory_Limit</code>.
# cat /etc/php.ini | grep -i Memory_Limit

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

Cette limite est définie par un "fragment du gabarit standard" de <code>php.ini</code>.


'''''Affichage des fragments du gabarit php.ini'''''

Les fragments du gabarit standard de <code>php.ini</code> sont situés dans le répertoire <code>/etc/e-smith/templates/etc/php.ini/</code>.
# ls -als /etc/e-smith/templates/etc/php.ini/

total 136
4 drwxr-xr-x 2 root root 4096 18 mars 12:48 .
4 drwxr-xr-x 81 root root 4096 20 mai 2017 ..
4 -rw-r--r-- 1 root root 6 15 mars 2002 00PHP
4 -rw-r--r-- 1 root root 986 13 févr. 2013 10LanguageOptions
4 -rw-r--r-- 1 root root 152 13 févr. 2013 15ExposePHP
4 -rw-r--r-- 1 root root 214 7 oct. 2008 20ResourceLimits
4 -rw-r--r-- 1 root root 375 7 oct. 2008 30ErrorHandling
4 -rw-r--r-- 1 root root 558 29 juin 2015 40DataHandling
4 -rw-r--r-- 1 root root 626 7 oct. 2008 50PathsDirectories
4 -rw-r--r-- 1 root root 155 7 oct. 2008 60FileUploads
4 -rw-r--r-- 1 root root 58 7 oct. 2008 65FopenWrappers
4 -rw-r--r-- 1 root root 30 13 févr. 2013 70TimeZone
4 -rw-r--r-- 1 root root 55 7 oct. 2008 80ModuleSettings01Syslog
4 -rw-r--r-- 1 root root 126 7 oct. 2008 80ModuleSettings02mailfunction
4 -rw-r--r-- 1 root root 156 7 oct. 2008 80ModuleSettings03Debugger
4 -rw-r--r-- 1 root root 11 7 oct. 2008 80ModuleSettings04Logging
4 -rw-r--r-- 1 root root 8 7 oct. 2008 80ModuleSettings05Java
4 -rw-r--r-- 1 root root 52 7 oct. 2008 80ModuleSettings06SQL
4 -rw-r--r-- 1 root root 273 7 oct. 2008 80ModuleSettings07ODBC
4 -rw-r--r-- 1 root root 346 7 oct. 2008 80ModuleSettings08MySQL
4 -rw-r--r-- 1 root root 140 7 oct. 2008 80ModuleSettings09mSQL
4 -rw-r--r-- 1 root root 147 7 oct. 2008 80ModuleSettings10PostgresSQL
4 -rw-r--r-- 1 root root 275 7 oct. 2008 80ModuleSettings11Sybase
4 -rw-r--r-- 1 root root 233 7 oct. 2008 80ModuleSettings12Sybase-CT
4 -rw-r--r-- 1 root root 53 7 oct. 2008 80ModuleSettings13bcmath
4 -rw-r--r-- 1 root root 12 7 oct. 2008 80ModuleSettings14browscap
4 -rw-r--r-- 1 root root 482 7 oct. 2008 80ModuleSettings15Informix
4 -rw-r--r-- 1 root root 861 7 oct. 2008 80ModuleSettings16Session
4 -rw-r--r-- 1 root root 274 7 oct. 2008 80ModuleSettings17MSSQL
4 -rw-r--r-- 1 root root 13 7 oct. 2008 80ModuleSettings18Assertion
4 -rw-r--r-- 1 root root 268 7 oct. 2008 80ModuleSettings19IngresII
4 -rw-r--r-- 1 root root 172 7 oct. 2008 80ModuleSettings20VerisignPayflowPro
4 -rw-r--r-- 1 root root 55 7 oct. 2008 80ModuleSettings21Sockets
4 -rw-r--r-- 1 root root 404 15 mars 2002 template-begin


[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Lorsqu'un Serveur SME démarre, il passe dans ce répertoire en assemblant ''(expanding)'' tous ses fragments ''(fichiers)'' pour créer le fichier de configuration de PHP, c.-à-d. <code>/etc/php.ini</code>.

Cette méthode est particulière à SME. Ainsi, si on modifie un paramètre quelconque, lorsque le Serveur SME redémarre, il revient toujours aux paramètres standards.

Si on modifie un paramètre dans un de ces fichiers, il sera aussi perdu lors d'une mise à jour du Serveur SME.

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


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

On recherche le fragment qui contient la variable <code>Memory_Limit</code>.
# grep -i "Memory_Limit" /etc/e-smith/templates/etc/php.ini/*

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

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


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

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

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

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Nous allons ajouter un <u>gabarit personnalisé</u> pour ajuster la variable <code>Memory_Limit</code>. Avec un tel gabarit, la modification sera permanente même après une mise à jour du Serveur SME.


'''''Création d'un gabarit personnalisé'''''

On crée le répertoire d'un gabarit personnalisé pour <code>php.ini</code>.
# mkdir -p /etc/e-smith/templates-custom/etc/php.ini


On copie le fragment standard dans le répertoire du gabarit personnalisé.
# cp /etc/e-smith/templates/etc/php.ini/20ResourceLimits /etc/e-smith/templates-custom/etc/php.ini/20ResourceLimits


On vérifie.
# ls -ls /etc/e-smith/templates-custom/etc/php.ini/20ResourceLimits

4 -rw-r--r-- 1 root root 214 27 mars 04:42 /etc/e-smith/templates-custom/etc/php.ini/<span style="color:red">20ResourceLimits</span>


'''''Modification du fragment personnalisé'''''

On modifie <code>MemoryLimit</code> à l'aide de l'utilitaire <code>sed</code>.
# sed -i 's/"32M";/"<span style="color:DarkMagenta">256M</span>";/' /etc/e-smith/templates-custom/etc/php.ini/20ResourceLimits

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

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


'''UploadMaxFilesize'''

WordPress, avec certaines extensions telles que WooCommerce, doit autoriser le téléversement de fichiers et la grandeur de ceux-ci ne peut dépasser la limite définie par le paramètre <code>UploadMaxFilesize</code> de PHP.


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

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

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

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


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

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


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

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

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


'''''Création d'un gabarit personnalisé'''''

Nous avons déjà créé le répertoire du gabarit personnalisé pour les fragments de <code>php.ini</code> lors de la modification du paramètre <code>MemoryLimit</code> ci-dessus.
# ls -lsd /etc/e-smith/templates-custom/etc/php.ini

total 4
4 drwxr-xr-x 2 root root 4096 27 mars 04:43 /etc/e-smith/templates-custom/etc/<span style="color:red">php.ini</span>


On copie le fragment standard du paramètre <code>UploadMaxFilesize</code> dans le répertoire du gabarit personnalisé.
# cp /etc/e-smith/templates/etc/php.ini/60FileUploads /etc/e-smith/templates-custom/etc/php.ini/60FileUploads


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

4 -rw-r--r-- 1 root root 155 27 mars 04:44 /etc/e-smith/templates-custom/etc/php.ini/<span style="color:red">60FileUploads</span>


'''''Modification du fragment personnalisé'''''

On modifie le maximum à l'aide de l'utilitaire <code>sed</code>.
# sed -i 's/10M/<span style="color:DarkMagenta">50M</span>/' /etc/e-smith/templates-custom/etc/php.ini/60FileUploads


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

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


'''post_max_size'''

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

Le paramètre <code>post_max_size</code> définit la taille maximale des données des posts autorisées. Ce paramètre affecte également le téléchargement de fichiers. Pour télécharger des fichiers volumineux, cette valeur doit être supérieure à <code>upload_max_filesize</code>.


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

On recherche le fragment qui contient la variable.
# grep -i "post_max_size" /etc/e-smith/templates/etc/php.ini/*

/etc/e-smith/templates/etc/php.ini/40DataHandling:post_max_size = {


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

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

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


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

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

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


'''''Création d'un gabarit personnalisé'''''

Nous avons déjà créé le répertoire du gabarit personnalisé pour les fragments de <code>php.ini</code> lors de la modification du paramètre <code>MemoryLimit</code>. Il contient déjà deux fragments.
# ls -ls /etc/e-smith/templates-custom/etc/php.ini

4 -rw-r--r-- 1 root root 215 27 mars 04:43 <span style="color:Blue">20ResourceLimits</span>
4 -rw-r--r-- 1 root root 155 27 mars 04:45 <span style="color:Blue">60FileUploads</span>


On copie le fragment standard du paramètre <code>UploadMaxFilesize</code> dans le répertoire du gabarit personnalisé.
# cp /etc/e-smith/templates/etc/php.ini/40DataHandling /etc/e-smith/templates-custom/etc/php.ini/40DataHandling

On vérifie.
# ls -ls /etc/e-smith/templates-custom/etc/php.ini/40DataHandling

4 -rw-r--r-- 1 root root 558 27 mars 04:46 /etc/e-smith/templates-custom/etc/php.ini/<span style="color:red">40DataHandling</span>


'''''Modification du fragment personnalisé'''''

On modifie le maximum à l'aide de l'utilitaire <code>sed</code>.
# sed -i 's/20M/<span style="color:DarkMagenta">52M</span>/' /etc/e-smith/templates-custom/etc/php.ini/40DataHandling

On vérifie.
# grep -i PostMaxSize /etc/e-smith/templates-custom/etc/php.ini/40DataHandling

my $ms = $php{PostMaxSize} || "<span style="color:DarkMagenta">52M</span>";


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

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


[[Image:SME-101.05A-018-Reamorcage.png|top|right|400px|border]]
Le serveur réamorce et va assembler tous les fragments des gabarits en incluant les nôtres.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Le choix des <u>fragments des gabarits personnalisés ont préséance</u> sur les fragments standards lors de l'assemblage des fichiers de configuration.
<br clear=all>

'''Vérification'''

Après le réamorçage, on se connecte et on vérifie le fichier de configuration <code>/etc/php.ini</code> afin de confirmer si les fragments personnalisés contenant nos changements y ont été incorporés.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Si PuTTY ne peut se reloguer, on le ferme et on réamorce encore une fois le serveur virtuel. Ce refus de connexion est dû à la variable <code>AutoBlock</code> de <code>sshd</code> qui peut être désactivée si on installe la Contrib Fail2ban, voir: https://www.micronator.org/affaires/produit/sme-9-x8-x-fail2ban/.
# cat /etc/php.ini | grep -i Memory_Limit

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


# php -r "phpinfo();" | grep post_max_size

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


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

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

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


=== Collection MySQL57 ===

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

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

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


'''MySQL57 Software Collections'''

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

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Nous allons installer la Collection MySQL57 qui fourni une version plus récente tout en gardant la version originalement installée.


'''''Dépôt centos-sclo-rh'''''

Pour installer un logiciel, il faut indiquer à <code>yum</code> de quelle URL il doit le téléverser et pour ce faire, il faut configurer une description du dépôt de logiciels décrivant la source du téléchargement.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.
/sbin/e-smith/db yum_repositories set centos-sclo-rh repository \
Name 'Centos - RH Software Collections' \
BaseURL 'http://mirror.centos.org/centos/$releasever/sclo/$basearch/rh/' \
EnableGroups no \
Visible yes \
status disabled

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

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


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

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Attendre 20-30 secondes pour que <code>yum</code> ait terminé sa mise à jour.


'''Installation de la Collection RH-MySQL57'''
# yum install -y --enablerepo=smecontribs smeserver-mysql57

...
Installation de <span style="color:red">10 paquet(s)</span>

Taille totale des téléchargements&nbsp;: <span style="color:red">32 M</span>
Taille d'installation&nbsp;: <span style="color:red">138 M</span>
...
Installé:
smeserver-mysql57.noarch 0:2.0.0-11.el6.sme

Dépendance(s) installée(s)&nbsp;:
rh-mysql57.x86_64 0:2.3-3.el6
rh-mysql57-lz4.x86_64 0:r131-5.el6
rh-mysql57-mecab.x86_64 0:0.996-1.el6.8
rh-mysql57-mysql.x86_64 0:5.7.16-1.el6
rh-mysql57-mysql-common.x86_64 0:5.7.16-1.el6
rh-mysql57-mysql-config.x86_64 0:5.7.16-1.el6
rh-mysql57-mysql-errmsg.x86_64 0:5.7.16-1.el6
rh-mysql57-mysql-server.x86_64 0:5.7.16-1.el6
rh-mysql57-runtime.x86_64 0:2.3-3.el6

Terminé&nbsp;!

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

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

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


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


'''Vérification de la version MySQL de la Collection RH-MySQL57'''

Le chemin de la collection est: <code>/opt/rh/rh-mysql57</code>.
# ls -ls /opt/rh/rh-mysql57/root/usr/bin/mysql

3784 -rwxr-xr-x 1 root root 3872720 16 nov. 2016 /opt/rh/<span style="color:red">rh-mysql57</span>/root/usr/bin/mysql


On affiche la version MySQL de la Collection RH-MySQL57.
# mysql57 --version

/opt/rh/rh-mysql57/root/usr/bin/mysql Ver 14.14 Distrib <span style="color:red">5.7.16</span>, for Linux (x86_64) using EditLine wrapper


On vérifie si le démon <code>mysql57-mysqld</code> est lancé.
# ps aux | grep mysql57

root 768 0.0 0.0 108 28 ? Ss 12:45 0:00 runsv mysql57-mysqld
smelog 814 0.0 0.0 3940 396 ? S 12:45 0:00 /usr/local/bin/multilog t s5000000 <span style="color:red">/var/log/mysql57-mysqld</span>
mysql 1803 0.1 4.5 1262156 183152 ? Sl 12:46 0:00 /opt/rh/rh-mysql57/root/usr/libexec/mysqld --defaults-file=/opt/rh/rh-mysql57/root/etc/my.cnf --basedir=/opt/rh/rh-mysql57/root/usr --datadir=/opt/rh/rh-mysql57/root/var/lib/mysql --user=mysql --pid-file=/var/run/rh-mysql57-mysqld/mysqld.pid --socket=/var/lib/mysql/mysql57.sock --lc-messages-dir=/opt/rh/rh-mysql57/root/usr/share/rh-mysql57-mysql/english/
root 2740 0.0 0.0 103340 928 pts/0 S+ 12:51 0:00 grep mysql57


On vérifie la présence du connecteur ''(socket)'' <code>mysql.sock</code>.
# ls -als /var/lib/mysql/mysql57.sock

0 srwxrwxrwx 1 mysql mysql 0 11 oct. 12:47 <span style="color:red">/var/lib/mysql/mysql57.sock</span>

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;C'est ce connecteur qu'on spécifiera dans le fichier de configuration <code>wp-config.php</code> de WordPress.


=== Serveurs DNS du domaine ===

Pour trouver le nom de notre domaine:

* On se logue dans gestionnaire Server-Manager: https://FQDN_ou_adresseIP/server-manager.
* On clique ''Domaines''.
* Le nom exact du domaine de notre site est: <span style="color:blue">micronator-101.com</span>.

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-021-DNS-B.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-020-DNS-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">- Serveur branché directement à l'Internet.<br>- <u>Serveurs DNS de l'Internet</u>.</span>
* <span style="font-family:Courier New;">- Pour un Serveur SME sur un réseau LOCAL avec accès Internet via un autre serveur passerelle.<br>- <u>Résolu localement</u>.</span>
<br clear=all>
<!-- ########################################################################### -->

'''Site dans l'i-bay <span style="color:DarkMagenta">Primary</span>'''

* Si le serveur est directement branché à l'Internet, "Serveurs DNS du domaine": <code><span style="color:red">Serveurs DNS de l'Internet</span></code>.
* Si le serveur est sur un réseau local, "Serveurs DNS du domaine": <code><span style="color:red">Résolu localement</span></code>.


'''Site dans une autre i-bay'''

* Pour tous les sites hébergés dans une autre i-bay que <span style="color:DarkMagenta">Primary</span>, "Serveurs DNS du domaine": <code><span style="color:red">Résolu localement</span></code> qu'ils aient un domaine FQDN ou non.


'''Affichage du nom du domaine'''
<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-023-Inst-B.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-022-Inst-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">Lors du lancement de l'installation de WordPress en allant à http://www.nom-de-domaine/, l'URL choisi deviendra le paramètre pour l'<u>Adresse web de WordPress (URL)</u> et pour l'<u>Adresse web du site (URL)</u>.</span>
* <span style="font-family:Courier New;">Plus tard, lorsqu'on visitera le site, si on déplace la souris au-dessus d'un lien, le navigateur affichera l'<u>Adresse web du site (URL)</u> au début de l'adresse de la page.</span>
<br clear=all>
<!-- ########################################################################### -->

=== Fichier hosts pour répondre aux requêtes DNS ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-025-Inst-D.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-024-Inst-C.png|400px|border]]
|}
'''Affichage du nom du domaine'''

* <span style="font-family:Courier New;">Sans domaine FQDN ni service DNS dynamique, si on choisit l'<u>adresse IP</u> du site pour lancer l'installation, ces paramètres deviendront http://adresse-IP.</span>
* <span style="font-family:Courier New;">Plus tard, lorsqu'on visitera le site, si on déplace la souris au-dessus d'un lien, le navigateur affichera l'<u>adresse IP du site</u> au début de l'URL de la page. Cet affichage n'est pas très professionnel et encore moins esthétique.</span>
<br clear=all>
<!-- ########################################################################### -->
'''Modification du fichier hosts de la station de travail'''

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Pour pouvoir accéder à notre site avec son FQDN même si nous n'avons pas encore de domaine réel.

''Référence'': [https://fr.wikipedia.org/wiki/Hosts https://fr.wikipedia.org/wiki/Hosts].

Le fichier <code>hosts</code> est un fichier utilisé par le système d'exploitation d'un ordinateur lors de l'accès à un réseau, comme Internet par exemple. Son rôle est d'associer des noms d'hôtes à des adresses IP. Lors de l'accès à une ressource réseau par nom de domaine, <u>ce fichier est consulté avant l'accès au serveur DNS</u> et permet au système de connaître l'adresse IP associée au nom de domaine <u>sans avoir recours à une requête DNS</u>.

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Si nous n'avons pas de serveur DNS sur le réseau LOCAL, on peut faire des entrées dans le fichier <code>hosts</code> de la station de travail et y indiquer les adresses IP de notre Serveur SME local.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;" AVEC LARGUEUR = GRANDE (600px)

{| style="float: right; margin-left:0.5em ;margin-right:100px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.04-047-FichierHost-A.png|450px|border]]
|}
Sur une station Windows, le fichier <code>hosts</code> se trouve dans le répertoire: <code>C:\Windows\System32\drivers\etc\</code>.

Clac ''(clic droit)'' sur le fichier<span style="color:red"> &nbsp;>&nbsp; </span>''Propriétés''.

Le fichier est en Lecture seule, on décoche ce paramètre<span style="color:red"> &nbsp;>&nbsp; </span>''OK''.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Pour une station Linux, le fichier <code>hosts</code> réside dans le répertoire <code>/etc</code>.
<br clear=all>

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

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Pour simplifier l'édition et surtout la sauvegarde du fichier <code>hosts</code> on édite avec NotePad++.

On y ajoute l'adresse IP avec le nom du "domaine" de notre site virtuel ''(ajouts en <span style="color:red">rouge</span> et en <span style="color:DarkMagenta">magenta</span>)''.
...
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

<span style="color:red"># Modifications pour l'installation de WordPress</span>
<span style="color:DarkMagenta">10.10.100.102 micronator-101.com</span>
<span style="color:DarkMagenta">10.10.100.102 www.micronator-101.com</span>

# Start of entries inserted by Spybot - Search & Destroy
127.0.0.1 www.007guard.com
127.0.0.1 007guard.com
...

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-201-SauvegardeNotePasd++-B.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-200-SauvegardeNotePasd++-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">Lors de la sauvegarde avec NotePad++, un message sera affiché disant que le fichier est protégé et demandera si on veut lancer NotePad++ en mode Administrateur.<br>Répondre <span style="color:red">Oui</span> et on sera retourné à NotePad++ mais, dans le mode Administrateur.</span>
* <span style="font-family:Courier New;">À l'écran suivant "Voulez-vous autoriser le programme suivant à apporter des modifications à cet ordinateur", cliquer <span style="color:red">Oui</span>.<br><u>Relancer la sauvegarde du fichier</u> car, le fichier n'a pas été sauvegardé lors de la première tentative.</span>
[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Après avoir acquis un domaine FQDN ou un compte de service DNS dynamique, il faut supprimer ces modifications du fichier <code>hosts</code> de la station de travail.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.04-048-FichierHost-B.png|400px|border]]
|}
[[Image:Icone-DangerAPT.png|25px]]&nbsp;&nbsp;Après les modifications, ne pas oublier de remettre le fichier en "Lecture seule".
<br clear=all>
<!-- ########################################################################### -->

'''''Vidange du cache DNS'''''

Sur la station de travail, on ouvre un écran de commande et on vide le cache DNS de la station.
C:\Users\michelandre> '''ipconfig /flushdns'''

Configuration IP de Windows

<span style="color:red">Cache de résolution DNS vidé.</span>

C:\Users\michelandre>


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.04-050-FichierHost-D.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.04-049-FichierHost-C.png|500px|border]]
|}
'''''Vidange de l'historique'''''

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;On vidange l'historique de notre navigateur.

* <span style="font-family:Courier New;">Supprimer l'historique récent...</span>
* <span style="font-family:Courier New;">Effacer maintenant.</span>
<br>

'''Témoins et JavaScript'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;On active les témoins ''(cookies)'' et JavaScript de notre navigateur Web.
<br clear=all>
<!-- ########################################################################### -->

= Scripts d'ajustement des droits et permissions =

=== Introduction ===

Les scripts de ce chapitre s'appliquent pour toutes les installations de WordPress qu'elles soient dans l'i-bay <span style="color:DarkMagenta">Primary</span> ou dans toute autre i-bay.

* Un script doit être lancé par l'usager <span style="color:red">root</span>.
* Pour connaître l'Usage, lancer le script avec le paramètre <code>-h</code> ou <code>--help</code>.
* À la ligne de commande du script, il faut spécifier l'i-bay d'installation de WordPress.
* Le script vérifie alors si le paramètre spécifié est bien une i-bay et si oui, il demande de confirmer.
* <code>droits_ibay.sh</code> ajuste le propriétaire, le groupe et les droits/permissions de tous les fichiers et répertoires du site WordPress à l'exception des fichiers <code>.htaccess</code> et <code>.well-known</code> dans le répertoire racine.
* <code>droits_<span style="color:red">debut</span>_MAJ-WP.sh</code> sauvegarde le fichier <code>.htaccess</code>, récupère le fichier <code>readme.html</code> et ajoute le droit d'écriture aux fichiers du répertoire racine auxquels la mise à jour de WordPress doit avoir accès.
* <code>droits_<span style="color:red">fin</span>_MAJ-WP.sh</code> récupère le fichier <code>.htaccess</code>, sauvegarde le fichier <code>readme.html</code> et enlève le droit d'écriture donné précédemment avant la mise à jour de WordPress.


'''Usage des scripts'''

'''''Après l'installation d'une extension ou d'un thème'''''

Utilisez le script <code>droits_ibay.sh</code> en spécifiant l'i-bay d'installation de WordPress puis, confirmez.


'''''Mise à jour de WordPress'''''

<u><span style="color:red">'''AVANT'''</span></u> la mise à jour, lancez le script <code>droits_<span style="color:red">debut</span>_MAJ-WP.sh</code> en spécifiant l'i-bay d'installation de WordPress puis, confirmez.

<span style="color:Blue">'''†††'''</span>&nbsp; Faites la mise à jour de WordPress.

<u><span style="color:red">'''APRÈS'''</span></u> la mise à jour, lancez le script <code>droits_<span style="color:red">fin</span>_MAJ-WP.sh</code> en spécifiant l'i-bay d'installation de WordPress puis, confirmez.


=== Marche à suivre ===

* Nous créons des scripts Bash pour ajuster: le propriétaire, le groupe, les droits et permissions des fichiers, répertoires et sous-répertoires de WordPress.
* Nous créons ces scripts dans le répertoire de l'usager root et ainsi ils seront sauvegardés lors d'une sauvegarde standard du Serveur SME.
* Pour que ces scripts soient accessibles par l'usager root depuis n'importe quel emplacement sur le serveur, nous créerons des liens dans le répertoire <code>/bin</code> qui pointeront vers ces scripts. Si on ne créait pas les liens dans le répertoire <code>/bin</code>, l'usager root pourrait toujours spécifier le chemin complet du script, c.-à-d. <code>/root/script-à-lancer</code>.


=== Répertoire des scripts ===

On se logue en usager <span style="color:red">root</span> et on vérifie qu'on est bien dans le bon répertoire.
# pwd

<span style="color:red">/root</span>


<span id="Création du script droits_ibay.sh"></span>
=== Création du script droits_ibay.sh ===

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

cat > /root/droits_ibay.sh <<'EOT'
<nowiki>#!/bin/bash </nowiki>
<nowiki># Nom du script: /bin/droits_ibay.sh</nowiki>
<nowiki># Michel-André / michelandre@micronator.org / 2016-04-15_10h34 HAE</nowiki>
<nowiki># Michel-André / michelandre@micronator.org / 2017-04-03_20h57 HAE</nowiki>
<nowiki># Michel-André / michelandre@micronator.org / 2017-04-08_14h06 HAE</nowiki>

<span style="color:red">Usage</span>() {
echo -e "\n"
echo "Ce script doit être roulé par l'usager root."
echo -e "\nUsage:\n$0 [Nom_de_l'ibay]"
echo -e "\nExemple:\n$0 Primary \n$0 toto\n"
}

# <span style="color:red">Si le nombre d'arguments est différent de 1, affiche l'usage.</span>
if [ $# != 1 ]
then
echo -e "\nArgument invalide\n"
<nowiki># Usage</nowiki>
exit 1
fi

# <span style="color:red">Si l'usager a entré -h ou --help, affiche l'usage</span>
<nowiki>if [[ "$1" == "-h" || "$1" == "--help" ]] ; then</nowiki>
<nowiki>## echo "Demande d'aide." </nowiki>
Usage
exit 0
fi

# <span style="color:red">Affiche un message si l'usager n'est pas root.</span>
<nowiki>if [[ $USER != "root" ]]; then </nowiki>
echo "ce script doit être roulé par l'usager root"
exit 1
fi

# <span style="color:red">Est-ce que l'argument pointe vers une i-bay?</span>
if [ ! -d /home/e-smith/files/ibays/$1 ];
then # <span style="color:blue">L'argument ne pointe pas vers une i-bay.</span>
echo -e "\nL'i-bay \"$1\" n'existe pas\n"
exit 1
else # <span style="color:red">C'est une i-bay,</span>
# Est-ce l'ibay <span style="color:red">Primary?</span>
if [ "$1" == "Primary" ] ; then <nowiki># Confirmation de l'i-bay Primary, ajuster droits</nowiki>
echo -e ""
defaut=o
read -p "Vous avez bien spécifié l'i-bay: \"/home/e-smith/files/ibays/$1\"? o/n [$defaut]: " REPONSE
REPONSE=${REPONSE:-$defaut}
<nowiki>if [[ $REPONSE == "o" || $REPONSE == "oui" || $REPONSE == "O" || $REPONSE == "Oui" ]]</nowiki>
then # <span style="color:blue">i-bay Primary confirmée</span>
<nowiki>## echo "Les commandes de: Primary"</nowiki>
<nowiki>## echo "Toutes les commandes de Primary (suite)"</nowiki>
cd /home/e-smith/files/ibays/Primary/html/ 2>&1
chown -R <span style="color:red">admin:shared *</span> 2>&1
chmod -R g+w <span style="color:red">wp-content</span> 2>&1
chmod -R o-rwx * 2>&1
find <span style="color:red">wp-content/themes</span> -type d -exec chmod <span style="color:red">g+s</span> {} \; 2>&1
echo -e "\n********** Répertoire des thèmes **********"
ls -als wp-content/themes
find <span style="color:red">wp-content/plugins</span> -type d -exec chmod <span style="color:red">g+s</span> {} \; 2>&1
echo -e "\n********** Répertoire des extensions **********"
ls -als wp-content/plugins
## Pour l'extension <span style="color:red">Duplicator</span>
chmod -R 2770 wp-snapshots 2>&1
find <span style="color:red">wp-snapshots/*</span> -type f -exec chmod 640 {} \; 2>&1
chmod 640 wp-snapshots/<span style="color:red">.htaccess</span> 2>&1
echo -e "\n********** Répertoire racine **********"
ls -als
exit 0
else # <span style="color:blue">i-bay Primary non confirmée</span>
echo -e "\n********** L'i-bay \"$1\" non confirmée\n"
exit 0
fi
else # Confirmation que c'est une autre i-bay, ajuster les droits
echo -e ""
defaut=o
read -p "Vous avez bien spécifié l'i-bay: \"/home/e-smith/files/ibays/$1\"? o/n [$defaut]: " REPONSE
REPONSE=${REPONSE:-$defaut}
<nowiki>if [[ $REPONSE == "o" || $REPONSE == "oui" || $REPONSE == "O" || $REPONSE == "Oui" ]]</nowiki>
then # <span style="color:blue">autre i-bay confirmée</span>
<nowiki>## echo -e "\nN'est pas Prinary\n"</nowiki>
<nowiki>## echo "Les commandes d'une aute i-bay (suite)"</nowiki>
cd /home/e-smith/files/ibays/$1/html/
chown -R <span style="color:red">admin:www *</span>
chmod -R g+w <span style="color:red">wp-content</span> 2>&1
chmod -R o-rwx * 2>&1
find <span style="color:red">wp-content/themes</span> -type d -exec chmod <span style="color:red">g+s</span> {} \; 2>&1
echo -e "\n********** Répertoire des thèmes **********"
ls -als wp-content/themes
find <span style="color:red">wp-content/plugins</span> -type d -exec chmod <span style="color:red">g+s</span> {} \; 2>&1
echo -e "\n********** Répertoire des extensions **********"
ls -als wp-content/plugins
## Pour l'extension <span style="color:red">Duplicator</span>
chmod -R 2770 <span style="color:red">wp-snapshots</span> 2>&1
find wp-snapshots/* -type f -exec chmod 640 {} \; 2>&1
chmod 640 wp-snapshots/<span style="color:red">.htaccess</span> 2>&1
echo -e "\n********** Répertoire racine **********"
ls -als
exit 0
else <nowiki># autre i-bay non confirmée</nowiki>
echo -e "\n********** L'i-bay \"$1\" non confirmée\n"
exit 0
fi
fi <nowiki># aucune i-bay confirmée</nowiki>
fi
echo "Il y a une erreur quelque part !!!"

EOT


On ajuste les droits du script.
# chmod 700 /root/droits_ibay.sh

On vérifie.
# ls -ls /root/droits_ibay.sh

4 -<span style="color:red">rwx------</span> 1 root root 4070 10 oct. 00:22 <span style="color:red">/root/droits_</span><span style="color:blue">ibay</span><span style="color:red">.sh</span>


On crée le lien dans le répertoire <code>/bin</code>.
# ln -s /root/droits_ibay.sh /bin/droits_ibay.sh

On vérifie.
# ls -ls /bin/droits_ibay.sh

0 lrwxrwxrwx 1 root root 20 10 oct. 00:24 <span style="color:red">/bin/droits_</span><span style="color:blue">ibay</span><span style="color:red">.sh</span> -> /root/droits_ibay.sh


On vérifie que le lien est bien sur le chemin des commandes ''(path)''.
# which droits_ibay.sh

<span style="color:red">/bin/droits_</span><span style="color:blue">ibay</span><span style="color:red">.sh</span>


<span id="Usage"></span>
'''Usage'''

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Nous voulons demeurer très sécuritaire, il faut exécuter ce script après avoir installé un/plusieurs thèmes ou extensions dans WordPress.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;En lançant le script, il faut spécifier l'i-bay dans laquelle WordPress est installé; ici ce sera <span style="color:DarkMagenta">Primary</span>.

Le script demande de confirmer l'i-bay.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...
<span style="color:blue">chmod: impossible d'accéder à «&nbsp;wp-snapshots/.htaccess&nbsp;»: Aucun fichier ou dossier de ce type</span>
...

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Si nous n'avions pas encore installé l'extension '''Duplicator''' et créé le répertoire <span style="color:blue">wp-snapshots</span> et le fichier <code>.htaccess</code> dans ce répertoire, le script afficherait <span style="color:blue">la ligne ci-dessus</span> spécifiant que le fichier <span style="color:blue">wp-snapshots/.htaccess</span> n'existe pas.


Si nous avions installé WordPress dans l'i-bay <span style="color:DarkMagenta">toto</span>, on spécifierait <span style="color:DarkMagenta">toto</span>.
# droits_ibay.sh <span style="color:DarkMagenta">toto</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">toto</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...
<span style="color:blue">chmod: impossible d'accéder à «&nbsp;wp-snapshots/.htaccess&nbsp;»: Aucun fichier ou dossier de ce type</span>
...

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Si nous n'avions pas encore installé l'extension '''Duplicator''' et créé le répertoire <span style="color:blue">wp-snapshots</span> et le fichier <code>.htaccess</code> dans ce répertoire, le script afficherait <span style="color:blue">la ligne ci-dessus</span> spécifiant que le fichier <span style="color:blue">wp-snapshots/.htaccess</span> n'existe pas.


=== Scripts à exécuter lors d'une mise à jour de WordPress ===

Vu que notre installation de WordPress est très sécuritaire et que nous avons restreint les droits et permissions des fichiers, répertoires et sous-répertoires, il faut ajuster ces droits pour que WordPress puisse exécuter une mise à jour.

Nous créons deux scripts:

* un script qu'on exécute <u>avant</u> la mise à jour qui ajuste les droits et permissions pour en permettre l'installation.
* un script qu'on exécute <u>après</u> la mise à jour qui remet les droits pour redevenir très sécuritaire.

On crée ces scripts dans le répertoire <code>/root</code>. On crée aussi des liens dans le répertoire <code>/bin</code> pour permettre à l'usager root de lancer ces scripts depuis n'importe quel emplacement sur le serveur.


<span id="droits_debut_MAJ-WP.sh"></span>
=== Création du script droits_<span style="color:red">debut</span>_MAJ-WP.sh===

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Après avoir lancé ce script, Wordfence affichera un message demandant de compléter sa configuration. NE PAS TENIR COMPTE DE CE MESSAGE, après la mise à jour de WordPress, le script <code>droits_fin_MAJ-WP.sh</code> le fera disparaître en remettant en place le fichier <code>.htaccess</code>.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Le fichier <code>readme.html</code> est nécessaire pour une mise à jour de WordPress. Il a été sauvegardé dans le répertoire au dessus de la racine de notre site WordPress tel que décrit au paragraphe [[#Fichier readme.html]]. Ce script-ci récupère ce fichier.

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

cat > /root/droits_debut_MAJ-WP.sh <<'EOT'
<nowiki>#!/bin/bash </nowiki>
<nowiki># Nom du script: /bin/droits_debut_MAJ-WP.sh</nowiki>
<nowiki># Michel-André / michelandre@micronator.org / 2016-08-17_10h38</nowiki>
<nowiki># Michel-André / michelandre@micronator.org / 2017-04-03_20h57 HAE</nowiki>
<nowiki># Michel-André / michelandre@micronator.org / 2017-04-08_14h06 HAE</nowiki>

Usage() {
echo -e "\n"
echo "Ce script doit être roulé par l'usager root."
echo -e "\nUsage:\n$0 [Nom_de_l'ibay_de_WordPress_à_MAJ]"
echo -e "\nExemple:\n$0 Primary \n$0 toto\n"
}

<nowiki># Si le nombre d'arguments est différent de 1, affiche l'usage.</nowiki>
if [ $# != 1 ]
then
echo -e "\nArgument invalide\n"
<nowiki># Usage</nowiki>
exit 1
fi

<nowiki># Si l'usager a entré -h ou --help, affiche l'usage</nowiki>
<nowiki>if [[ "$1" == "-h" || "$1" == "--help" ]] ; then</nowiki>
<nowiki>## echo "Demande d'aide." </nowiki>
Usage
exit 0
fi

<nowiki># Affiche un message si l'usager n'est pas root.</nowiki>
<nowiki>if [[ $USER != "root" ]]; then </nowiki>
echo "ce script doit être roulé par l'usager root"
exit 1
fi

<nowiki># Est-ce que l'argument pointe vers une i-bay?</nowiki>
if [ ! -d /home/e-smith/files/ibays/$1 ];
then <nowiki># L'argument ne pointe pas vers une i-bay.</nowiki>
echo -e "\nL'i-bay \"$1\" n'existe pas\n"
exit 1
else <nowiki># C'est une i-bay,</nowiki>
if [ "$1" == "Primary" ]
then <nowiki># Confirmation de l'i-bay Primary, ajuster les droits</nowiki>
echo -e ""
defaut=o
read -p "Vous avez bien spécifié l'i-bay: \"/home/e-smith/files/ibays/$1\"? o/n [$defaut]: " REPONSE
REPONSE=${REPONSE:-$defaut}
<nowiki>if [[ $REPONSE == "o" || $REPONSE == "oui" || $REPONSE == "O" || $REPONSE == "Oui" ]]</nowiki>
then <nowiki># i-bay Primary confirmée</nowiki>
<nowiki>## echo "Les commandes de: Primary"</nowiki>
<nowiki>## On se rend dans le répertoire racine de notre site.</nowiki>
cd /home/e-smith/files/ibays/Primary/html/ 2>&1
<nowiki>## On ramène le fichier readme.html du répertoire Primary.</nowiki>
/bin/cp -rf ../readme.html .
<nowiki>## Répertoires wp-admin et wp-includes</nowiki>
chmod -R g+w wp-admin wp-includes 2>&1
<nowiki>## </nowiki> Sauvegarde du fichier .htaccess au-dessus du répertoire racine
if [ -f .htaccess ]; then /bin/mv -f .htaccess ../ ; fi 2>&1
<nowiki>##</nowiki>
<nowiki>## Donner le droit d'écriture à tous les fichiers du répertoire racine</nowiki>
/bin/find . -maxdepth 1 -type f -exec /bin/chmod g+w {} \; 2>&1
<nowiki>## On affiche le répertoire racine</nowiki>
echo -e "\n********** Répertoire racine **********"
ls -als
exit 0
else <nowiki># i-bay Primary non confirmée</nowiki>
echo -e "\n********** L'i-bay \"$1\" non confirmée\n"
exit 0
fi
else # Est-ce une autre i-bay?
echo -e ""
defaut=o
read -p "Vous avez bien spécifié l'i-bay: \"/home/e-smith/files/ibays/$1\"? o/n [$defaut]: " REPONSE
REPONSE=${REPONSE:-$defaut}
<nowiki>if [[ $REPONSE == "o" || $REPONSE == "oui" || $REPONSE == "O" || $REPONSE == "Oui" ]]</nowiki>
then # autre i-bay confirmée
<nowiki>## echo -e "\nN'est pas Prinary\n"</nowiki>
<nowiki>## echo "Les commandes d'une aute i-bay (suite)"</nowiki>
<nowiki>## On se rend dans le répertoire racine de notre site.</nowiki>
cd /home/e-smith/files/ibays/$1/html/ 2>&1
<nowiki>## On ramène le fichier readme.html du répertoire Primary.</nowiki>
/bin/cp -rf ../readme.html .
<nowiki>## Répertoires wp-admin et wp-includes</nowiki>
chmod -R g+w wp-admin wp-includes 2>&1
<nowiki>## </nowiki> Sauvegarde du fichier .htaccess au-dessus du répertoire racine
if [ -f .htaccess ]; then /bin/mv -f .htaccess ../ ; fi 2>&1
<nowiki>##</nowiki>
<nowiki>## Donner le droit d'écriture à tous les fichiers du répertoire racine</nowiki>
/bin/find . -maxdepth 1 -type f -exec /bin/chmod g+w {} \; 2>&1
<nowiki>## On affiche le répertoire racine</nowiki>
echo -e "\n********** Répertoire racine **********"
ls -als
exit 0
else <nowiki># autre i-bay non confirmée</nowiki>
echo -e "\n********** L'i-bay \"$1\" non confirmée\n"
exit 0
fi
fi
fi
echo "Il y a une erreur quelque part !!!"

EOT



On ajuste les droits du script <code>droits_<span style="color:blue">debut</span>_MAJ-WP.sh</code>.
# chmod 700 /root/droits_debut_MAJ-WP.sh

On vérifie.
# ls -ls /root/droits_<span style="color:blue">debut</span>_MAJ-WP.sh

4 -<span style="color:red">rwx------</span> 1 root root 4083 10 oct. 00:25 /root/droits_<span style="color:blue">debut</span>_MAJ-WP.sh


On crée le lien dans le répertoire <code>/bin</code>.
# ln -s /root/droits_debut_MAJ-WP.sh /bin/droits_<span style="color:blue">debut</span>_MAJ-WP.sh

On vérifie.
# ls -als /bin/droits_<span style="color:blue">debut</span>_MAJ-WP.sh

0 lrwxrwxrwx 1 root root 28 10 oct. 00:26 <span style="color:red">/bin/droits_<span style="color:blue">debut</span>_MAJ-WP.sh</span> -> <span style="color:Blue">/root/droits_<span style="color:blue">debut</span>_MAJ-WP.sh</span>


On vérifie que le lien est bien sur le chemin des commandes ''(path)''.
# which droits_<span style="color:blue">debut</span>_MAJ-WP.sh

<span style="color:red">/bin/droits_<span style="color:blue">debut</span>_MAJ-WP.sh</span>


<span id="Ajustement des droits et propriétés avant la mise à jour de WordPress"></span>
'''''Ajustement des droits et propriétés avant la mise à jour de WordPress'''''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;En lançant le script, il faut spécifier l'i-bay dans laquelle WordPress est installé; ici ce sera <span style="color:DarkMagenta">Primary</span>.

Le script demande de confirmer l'i-bay.
# droits_debut_MAJ-WP.sh Primary

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
/bin/cp: impossible d'évaluer «&nbsp;../readme.html&nbsp;»: Aucun fichier ou dossier de ce type
...

Si au lieu de le déplacer, nous avions effacé le fichier <code>readme.html</code> au paragraphe [[#Fichier readme.html]], le script afficherait la ligne ci-dessus et la mise à jour échouerait.


Si nous avions installé WordPress dans l'i-bay <span style="color:DarkMagenta">toto</span>, on spécifierait <span style="color:DarkMagenta">toto</span>.

# droits_debut_MAJ-WP.sh <span style="color:DarkMagenta">toto</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">toto</span>"? o/n [o]: [Entrée]
/bin/cp: impossible d'évaluer «&nbsp;../readme.html&nbsp;»: Aucun fichier ou dossier de ce type
...

Si au lieu de le déplacer, nous avions effacé le fichier <code>readme.html</code> au paragraphe [[#Fichier readme.html]], le script afficherait la ligne ci-dessus et la mise à jour échouerait.


<span id="droits_fin_MAJ-WP.sh"></span>
=== Création du script droits_<span style="color:red">fin</span>_MAJ-WP.sh ===

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.
cat > /root/droits_fin_MAJ-WP.sh <<'EOT'
<nowiki>#!/bin/bash </nowiki>
<nowiki># Nom du script: /bin/droits_fin_MAJ-WP.sh</nowiki>
<nowiki># Michel-André / michelandre@micronator.org / 2016-08-17_10h39</nowiki>
<nowiki># Michel-André / michelandre@micronator.org / 2017-04-03_20h57 HAE</nowiki>
<nowiki># Michel-André / michelandre@micronator.org / 2017-04-08_14h06 HAE</nowiki>

Usage() {
echo -e "\n"
echo "Ce script doit être roulé par l'usager root."
echo -e "\nUsage:\n$0 [Nom_de_l'ibay_de_WordPress_à_MAJ]"
echo -e "\nExemple:\n$0 Primary \n$0 toto\n"
}

<nowiki># Si le nombre d'arguments est différent de 1, affiche l'usage.</nowiki>
if [ $# != 1 ]
then
echo -e "\nArgument invalide\n"
<nowiki># Usage</nowiki>
exit 1
fi

<nowiki># Si l'usager a entré -h ou --help, affiche l'usage</nowiki>
<nowiki>if [[ "$1" == "-h" || "$1" == "--help" ]] ; then</nowiki>
<nowiki>## echo "Demande d'aide." </nowiki>
Usage
exit 0
fi

<nowiki># Affiche message si l'usager n'est pas root.</nowiki>
<nowiki>if [[ $USER != "root" ]]; then </nowiki>
echo "ce script doit être roulé par root"
exit 1
fi

<nowiki># Est-ce que l'argument pointe vers une i-bay?</nowiki>
if [ ! -d /home/e-smith/files/ibays/$1 ];
then <nowiki># L'argument ne pointe pas vers une i-bay valide.</nowiki>
echo -e "\nL'i-bay \"$1\" n'existe pas\n"
exit 1
else <nowiki># C'est une i-bay.</nowiki>
if [ "$1" == "Primary" ] <nowiki># Est-ce l'ibay Primary?</nowiki>
then <nowiki># C'est l'i-bay Primary.</nowiki>
echo -e ""
defaut=o
read -p "Vous avez bien spécifié l'i-bay: \"/home/e-smith/files/ibays/$1\"? o/n [$defaut]: " REPONSE
REPONSE=${REPONSE:-$defaut}
<nowiki>if [[ $REPONSE == "o" || $REPONSE == "oui" || $REPONSE == "O" || $REPONSE == "Oui" ]]</nowiki>
then <nowiki># i-bay Primary confirmée, ajuster les droits</nowiki>
<nowiki>## echo "Les commandes de: Primary"</nowiki>
<nowiki>## On se rend dans le répertoire racine de notre site.</nowiki>
cd /home/e-smith/files/ibays/Primary/html/ 2>&1
<nowiki>## On déplace le fichier readme.html dans le répertoire</nowiki>
<nowiki>## au dessus de la racine de notre site.</nowiki>
/bin/mv -f readme.html ../
<nowiki>## Répertoires wp-admin et wp-includes</nowiki>
chmod -R g-w wp-admin wp-includes 2>&1
<nowiki>## </nowiki> Ramener le fichier .htaccess dans le répertoire racine
if [ -f ../.htaccess ]; then /bin/mv -f ../.htaccess . ; fi 2>&1
<nowiki>##</nowiki>
<nowiki>## Enlever le droit d'écriture à tous les fichiers du répertoire racine</nowiki>
/bin/find . -maxdepth 1 -type f -exec /bin/chmod g-w {} \; 2>&1
<nowiki>## On affiche le répertoire racine</nowiki>
echo -e "\n********** Répertoire racine **********"
ls -als
exit 0
else <nowiki># i-bay Primary non confirmée</nowiki>
echo -e "\n********** L'i-bay \"$1\" non confirmée\n"
exit 0
fi
else # Confirmation que c'est une autre i-bay, ajuster les droits
echo -e ""
defaut=o
read -p "Vous avez bien spécifié l'i-bay: \"/home/e-smith/files/ibays/$1\"? o/n [$defaut]: " REPONSE
REPONSE=${REPONSE:-$defaut}
<nowiki>if [[ $REPONSE == "o" || $REPONSE == "oui" || $REPONSE == "O" || $REPONSE == "Oui" ]]</nowiki>
then # autre i-bay confirmée
<nowiki>## echo -e "\nN'est pas Prinary\n"</nowiki>
<nowiki>## echo "Les commandes d'une aute i-bay (suite)"</nowiki>
<nowiki>## On se rend dans le répertoire racine de notre site.</nowiki>
cd /home/e-smith/files/ibays/$1/html/ 2>&1
<nowiki>## On déplace le fichier readme.html dans le répertoire</nowiki>
<nowiki>## au dessus de la racine de notre site.</nowiki>
/bin/mv -f readme.html ../
<nowiki>## Répertoires wp-admin et wp-includes</nowiki>
chmod -R g-w wp-admin wp-includes 2>&1
<nowiki>## </nowiki> Ramener le fichier .htaccess dans le répertoire racine
if [ -f ../.htaccess ]; then /bin/mv -f ../.htaccess . ; fi 2>&1
<nowiki>##</nowiki>
<nowiki>## Enlever le droit d'écriture à tous les fichiers du répertoire racine</nowiki>
/bin/find . -maxdepth 1 -type f -exec /bin/chmod g-w {} \; 2>&1
<nowiki>## On affiche le répertoire racine</nowiki>
echo -e "\n********** Répertoire racine **********"
ls -als
exit 0
else <nowiki># autre i-bay non confirmée</nowiki>
echo -e "\n********** L'i-bay \"$1\" non confirmée\n"
exit 0
fi
fi
fi
echo "Il y a une erreur quelque part !!!"

EOT



On ajuste les droits du script <code>droits_<span style="color:blue">fin</span>_MAJ-WP.sh</code>.
# chmod 700 /root/droits_<span style="color:blue">fin</span>_MAJ-WP.sh

On vérifie.
# ls -ls droits_<span style="color:blue">fin</span>_MAJ-WP.sh

8 -<span style="color:red">rwx------</span> 1 root root 4228 10 oct. 00:26 droits_<span style="color:blue">fin</span>_MAJ-WP.sh


On crée le lien dans le répertoire <code>/bin</code>.
# ln -s /root/droits_<span style="color:blue">fin</span>_MAJ-WP.sh /bin/droits_<span style="color:blue">fin</span>_MAJ-WP.sh

On vérifie.
# ls -als /bin/droits_<span style="color:blue">fin</span>_MAJ-WP.sh

0 lrwxrwxrwx 1 root root 26 10 oct. 00:27 <span style="color:red">/bin/droits_</span><span style="color:blue">fin</span><span style="color:red">_MAJ-WP.sh</span> -> <span style="color:Blue">/root/droits_fin_MAJ-WP.sh</span>


On vérifie que le lien est bien sur le chemin des commandes ''(path)''.
# which droits_<span style="color:blue">fin</span>_MAJ-WP.sh

<span style="color:red">/bin/droits_</span><span style="color:blue">fin</span><span style="color:red">_MAJ-WP.sh</span>


'''''Ajustement des droits et propriétés après la mise à jour de WordPress'''''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Après la mise à jour de WordPress, on lance le script en spécifiant l'i-bay dans laquelle WordPress est installé; ici ce sera <span style="color:DarkMagenta">Primary</span>.

Le script demande de confirmer l'i-bay.
# droits_<span style="color:blue">fin</span>_MAJ-WP.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
<span style="color:blue">/bin/cp: impossible d'évaluer «&nbsp;../readme.html&nbsp;»: Aucun fichier ou dossier de ce type</span>
...

Si au lieu de le déplacer, nous avions effacé le fichier <code>readme.html</code> au paragraphe [[#Fichier readme.html]], le script afficherait la ligne ci-dessus.


Si nous avions installé WordPress dans l'i-bay <span style="color:DarkMagenta">toto</span>, on spécifierait <span style="color:DarkMagenta">toto</span>.

# droits_<span style="color:blue">fin</span>_MAJ-WP.sh <span style="color:DarkMagenta">toto</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">toto</span>"? o/n [o]: [Entrée]
<span style="color:blue">/bin/cp: impossible d'évaluer «&nbsp;../readme.html&nbsp;»: Aucun fichier ou dossier de ce type</span>
...

Si au lieu de le déplacer, nous avions effacé le fichier <code>readme.html</code> au paragraphe [[#Fichier readme.html]], le script afficherait la ligne ci-dessus.

= Préparation & fichiers de configuration =

=== Ajout des utilisateurs téléchargeurs ===

On crée les utilisateurs "téléchargeurs" car, WordPress nécessite de télécharger des fichiers tels que des extensions et des thèmes supplémentaires.

* Vu qu'on peut installer WordPress dans l'i-bay <span style="color:DarkMagenta">Primary</span> ou dans toute autre i-bay,
* vu que <span style="color:DarkMagenta">Primary</span> a le propriétaire admin et le groupe <span style="color:red">shared</span>,
* et vu que les autres i-bays ont admin et <span style="color:red">www</span>;

il est alors préférable de créer un utilisateur de téléchargements pour chacun de ces deux genres d'i-bays.

L'utilisateur <code>chargeurprim</code> sera le téléchargeur pour l'i-bay <span style="color:DarkMagenta">Primary</span> et <code>chargeursec</code> le sera pour toutes les autres i-bays.

Pour que ces téléchargeurs puissent avoir le droit d'écriture <code>w</code> dans leur i-bays respectives, il faut que leur groupe primaire soit le même que celui des i-bays dont ils ont la responsabilité des téléchargements.

{| style="width: 50%; background-color:#ffffff;" align="center" "border-spacing:0;"
| style="border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;"| Téléchargeur
| style="border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;"| I-bay
| style="border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;"| Groupe primaire
| style="border:0.05pt solid #000000;padding:0.0382in;"| Numéro du groupe

|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;"| chargeurprim
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;"| <span style="color:DarkMagenta">Primary</span>
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;"| <span style="color:red">shared</span>
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.0382in;"| 500

|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;"| chargeursec
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;"| les autres i-bays
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.0382in;"| <span style="color:red">www</span>
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.0382in;"| 102

|}


'''Login dans le gestionnaire Server-Manager'''

On se rend sur notre site en spécifiant l'adresse suivante: https://ip-du-serveur/server-manager ou https://www.Domaine_FQDN/server-manager.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-004-WPzip-Usager-B.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-003-WPzip-Usager-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">Dans notre cas ce sera: https://10.10.100.102/server-manager.</span>
* <span style="font-family:Courier New;">- On se logue obligatoirement avec l'usager <u>admin</u>.</br>- On peut faire un don d'encouragement à Koozali.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-006-WPzip-Usager-D.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-005-WPzip-Usager-C-1.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Utilisateurs''<span style="color:red">&nbsp;&nbsp;>&nbsp;&nbsp;</span>''Ajouter un utilisateur''.</span>
* <span style="font-family:Courier New;">- Entrer les informations pour "chargeurprim".</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-008-WPzip-Usager-F.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-007-WPzip-Usager-E-1.png|400px|border]]
|}
* <span style="font-family:Courier New;">On s'assure du succès de l'opération.</span>
* <span style="font-family:Courier New;">Même procédure pour "chargeursec".</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-010-WPzip-Usager-H-1.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-009-WPzip-Usager-G-1.png|400px|border]]
|}
* <span style="font-family:Courier New;">On s'assure du succès de l'opération.</span>
* <span style="font-family:Courier New;">''Réinitialiser le mot de passe'' de "chargeurprim".</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-012-WPzip-Usager-J-2.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-011-WPzip-Usager-I.png|400px|border]]
|}
[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Il faut que le mot de passe soit composé d'au moins sept caractères avec des lettres minuscules et majuscules, des chiffres et au moins un caractère non-alphanumérique.

* <span style="font-family:Courier New;">Entrer le mot de passe<span style="color:red"><span style="color:red"> &nbsp;>&nbsp; </span></span>confirmer<span style="color:red"><span style="color:red"> &nbsp;>&nbsp; </span></span>''Enregistrer''.</span>
* <span style="font-family:Courier New;">- On s'assure du succès de l'opération.<br>- ''Réinitialiser le mot de passe'' de "chargeursec".</span>
<br clear=all>
<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-014-WPzip-Usager-L-1.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-013-WPzip-Usager-K.png|400px|border]]
|}
* <span style="font-family:Courier New;">Entrer le mot de passe<span style="color:red"><span style="color:red"> &nbsp;>&nbsp; </span></span>confirmer<span style="color:red"><span style="color:red"> &nbsp;>&nbsp; </span></span>''Enregistrer''.</span>
* <span style="font-family:Courier New;">On s'assure du succès de l'opération.</span>
<br clear=all>

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

'''Changement de groupe primaire'''

À la console du serveur, on change le groupe primaire de chargeurprim et chargeursec.

Utilisateur chargeurprim.
# usermod -g shared chargeurprim


Utilisateur chargeursec.
# usermod -g www chargeursec


On vérifie.
# cat /etc/passwd | grep chargeur

chargeurprim:x:5001:<span style="color:red">500</span>:Telechargeur Primaire:/home/e-smith/files/users/chargeurprim:/usr/bin/rssh
chargeursec:x:5002:<span style="color:red">102</span>:Telechargeur Secondaire:/home/e-smith/files/users/chargeursec:/usr/bin/rssh

Les deux téléchargeurs sont prêts.


'''Accès FTP'''

Pour que chargeurprim et chargeursec puissent télécharger des fichiers, il faut autoriser l'accès FTP dans Server-Manager.

* "N'autoriser l'accès complet que depuis les réseaux locaux".
* "N'autoriser l'authentification que depuis les réseaux locaux".
* ''Enregistrer'' et on s'assure du succès de l'opération.

{| style="width: 80%; background-color:#ffffff;" align="center"
|- style="vertical-align:top; center;"
||[[Image:SME-101.05A-015-AccesFTP-A.png|center|top|700px|border]]
|[[Image:SME-101.05A-016-AccesFTP-B.png|center|top|300px|border]]
|}


=== Préparation de l'i-bay ===

On peut utiliser n'importe quelle i-bay mais, vu que nous disposons d'un tout nouveau Serveur SME-9.2, nous allons utiliser l'i-bay Primary.


'''Répertoire temporaire de téléchargement'''

On doit spécifier un répertoire temporaire à l'i-bay <span style="color:DarkMagenta">Primary</span> pour le téléchargement par WordPress de fichiers, extensions, thèmes et mises à jour.

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

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Si ce répertoire n'existe pas, certains CMS pourraient afficher le message suivant:

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

Si on ajoute une autre installation WordPress dans une autre i-bay, il faut exécuter cette commande pour cette autre i-bay en spécifiant le nom de cette autre i-bay dans la commande.


On active la propriété.
# db accounts setprop <span style="color:DarkMagenta">Primary</span> PHPBaseDir /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>:<span style="color:red">/tmp</span>


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


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

<span style="color:DarkMagenta">Primary</span>=ibay
CgiBin=enabled
Group=shared
Modifiable=no
Name=<span style="color:DarkMagenta">Primary</span> i-bay
<span style="color:red">PHPBaseDir</span>=/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>:<span style="color:red">/tmp</span>
PasswordSet=no
Passwordable=no
PublicAccess=global
Removable=no
UserAccess=wr-admin-rd-group


'''Répertoire html'''

Lors de la création d'une i-bay, le système crée un fichier <code>index.htm</code> pour l'i-bay <span style="color:DarkMagenta">Primary</span> et <code>index.html</code> dans les autres i-bays. Ainsi l'i-bay <span style="color:DarkMagenta">Primary</span> <code>/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html</code> contient un fichier <code>index.htm</code>. On supprime ce dernier car, il entrerait en conflit avec <code>index.php</code> de WordPress.

On se rend dans le répertoire <code>html</code> de l'i-bay <span style="color:DarkMagenta">Primary</span>.
# cd /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/

On vérifie.
# pwd

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


Affichage du contenu du répertoire.
# ls -als

total 12
4 drwxr-s--- 2 admin shared 4096 11 oct. 11:25 .
4 drwxr-xr-x 6 root root 4096 11 oct. 13:04 ..
4 -rw-r----- 1 admin shared 202 20 nov. 2005 /<span style="color:red">index.htm</span>


On supprimele fichier <code>index.htm</code>.
# rm index.*

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


On vérifie.
# ls -als

total 8
4 drwxr-s--- 2 admin shared 4096 11 oct. 13:05 .
4 drwxr-xr-x 6 root root 4096 11 oct. 13:04 .

=== Droits d'écriture et fichiers spéciaux ===

Pour l'installation, WordPress aura besoin des droits de lecture et d'écriture dans certains fichiers et répertoires. Les droits et permissions du répertoire <code>html</code> de même que ceux des fichiers ne permettent pas de faire ces manipulations. De plus, certaines directives du fichier <code>.htaccess</code> peuvent aussi interdire la modification de certains fichiers.


'''Fichier .htaccess'''

Le script <code>droits_<span style="color:red">debut</span>_MAJ-WP.sh</code>, s'occupera des droits de lecture et d'écriture en plus de s'occuper du fichier <code>.htaccess</code> en le déplaçant temporairement au-dessus du répertoire racine du site.

Après l'installation, le script <code>droits_<span style="color:red">fin</span>_MAJ-WP.sh</code> ramènera le fichier <code>.htaccess</code> dans le répertoire racine.


'''Fichier readme.html'''

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Pour des raisons de sécurité, le fichier <code>readme.html</code> ne doit pas demeurer dans le répertoire racine d'un site Wordpress car, il pourrait être lu et ainsi indiquer sa version. Les pirates informatiques se servent de la version d'un programme pour rechercher ses failles de sécurité et ainsi mieux l'attaquer.

Lors d'une mise à jour de WordPress, le fichier <code>readme.html</code> est nécessaire pour indiquer la version actuelle utilisée. Le script <code>droits_debut_MAJ-WP.sh</code> s'occupe de remettre le fichier <code>readme.html</code> dans le répertoire racine pour permettre la mise à jour. Après une mise à jour de WordPress, on lance le script <code>droits_fin_MAJ-WP.sh</code> et celui-ci sécurise le fichier <code>readme.html</code> en le déplaçant dans le répertoire au-dessus du répertoire racine.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Lors de l'installation, le fichier <code>readme.html</code> sera dans le répertoire racine et non pas dans le répertoire au-dessus. Le script <code>droits_debut_MAJ-WP.sh</code> va donner le message: <span style="font-family:Courier New;"> impossible d'évaluer «&nbsp;../readme.html&nbsp;»: Aucun fichier ou dossier de ce type</span>. On pourra ignorer ce message lors de l'installation.

=== Téléchargement de WordPress-4.6.1-fr_FR.zip ===

En date du 11 octobre 2018, la dernière version de WordPress est 4.9.8. Nous allons télécharger la version 4.6.1 du 2 novembre 2016 afin de démontrer la mise à jour d'une version très ancienne ''(4.<u>6</u>.x)'' vers une version plus plus récente ''(4.<u>9</u>.x)''.

Pour les versions de WordPress, voir: [https://fr.wordpress.org/releases/ https://fr.wordpress.org/releases/].

Cliquer "zip" pour télécharger le fichier de WordPress et "md5" pour afficher la somme de contrôle du fichier "zip".

Sauvegardez le fichier "zip" sur votre poste de travail. Plus loin, nous le téléverserons sur notre Serveur SME.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-002-WPzip-B.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-001-WPzip-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">''zip'', télécharge le fichier Zip de WordPress.</span>
* <span style="font-family:Courier New;">''md5'', télécharge la somme de contrôle MD5 du fichier ZIP.</span>
<br clear=all>
<!-- ########################################################################### -->

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Utiliser digestIT 2004 pour calculer la somme de contrôle MD5 du fichier zip et vérifier que le fichier n'a pas été compromis.

=== Fichier zip de WordPress ===

On transfère le fichier zip <code>wordpress-4.6.1-fr_FR.zip</code> vers l'i-bay <span style="color:DarkMagenta">Primary</span> du Serveur SME. On peut utiliser l'utilitaire [http://winscp.net/eng/download.php#download2 WinSCP], FileZilla ou tout autre programme de transfert de fichiers.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Pour le téléchargement et l'installation de WinSCP voir le Cahier-01, ''SME-101.01 Logiciels de la station de travail'': https://wiki.contribs.org/SME-101.01_Logiciels_de_la_station_de_travail#WinSCP. Pour FileZilla voir: [https://filezilla-project.org/ https://filezilla-project.org/].

[[Image:SME-101.05A-019-WPzipTeleversement-1.png|top|center|900px|border]]


Nous sommes toujours dans le répertoire racine?
# pwd

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


On vérifie que le fichier WordPress a bien été transféré.
# ls -als

total 8912
4 drwxr-s--- 2 admin shared 4096 11 oct. 13:07 .
4 drwxr-xr-x 6 root root 4096 11 oct. 13:04 ..
8904 -rw-r--r-- 1 root shared 9116225 2 nov. 2016 <span style="color:red">wordpress-4.6.1-fr_FR.zip</span>


'''Préparation'''

On décompresse le fichier <code>zip</code>.
# unzip wordpress-4.6.1-fr_FR.zip

Archive: wordpress-4.6.1-fr_FR.zip
creating: wordpress/
inflating: wordpress/wp-mail.php
...
inflating: wordpress/wp-includes/css/buttons.min.css
inflating: wordpress/wp-includes/css/admin-bar-rtl.css


Par sécurité, on peut transférer le fichier zip vers le répertoire supérieur, à l'extérieur du répertoire racine du site en cas d'une future ré-utilisation.
# mv wordpress-4.6.1-fr_FR.zip ../


Vérification.
# ls -als ../

total 8928
4 drwxr-xr-x 6 root root 4096 11 oct. 13:07 .
4 drwxr-xr-x 3 root root 4096 11 oct. 11:25 ..
4 drwxr-s--- 2 admin shared 4096 11 oct. 13:04 .AppleDesktop
4 drwxr-s--- 2 admin shared 4096 11 oct. 11:25 cgi-bin
4 drwxr-s--- 2 admin shared 4096 11 oct. 11:25 files
4 drwxr-s--- 3 admin shared 4096 11 oct. 13:07 html
8904 -rw-r--r-- 1 root shared 9116225 2 nov. 2016 <span style="color:red">wordpress-4.6.1-fr_FR.zip</span>


On affiche le contenu du répertoire html de notre i-bay.
# ls -als

total 12
4 drwxr-s--- 3 admin shared 4096 11 oct. 13:07 .
4 drwxr-xr-x 6 root root 4096 11 oct. 13:07 ..
4 drwxr-sr-x 5 root shared 4096 2 nov. 2016 <span style="color:red">wordpress</span>


On transfère le contenu du répertoire <code>wordpres</code>s vers la racine du site, c.-à-d. <code><span style="color:DarkMagenta">Primary</span>/html</code>. Ici on utilise le chemin complet pour éviter les erreurs.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Faire l'ajustement nécessaire si on utilise une autre i-bay que Primary.
# mv /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/wordpress/* /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html


Vérification.
# ls -ls

total 192
4 -rw-r--r-- 1 root shared 418 24 sept. 2013 index.php
20 -rw-r--r-- 1 root shared 19935 5 mars 2016 license.txt
12 -rw-r--r-- 1 root shared 9028 2 nov. 2016 readme.html
4 drwxr-sr-x 2 root shared 4096 11 oct. 13:08 <span style="color:red">wordpress</span>
8 -rw-r--r-- 1 root shared 5456 24 mai 2016 wp-activate.php
4 drwxr-sr-x 9 root shared 4096 2 nov. 2016 wp-admin
4 -rw-r--r-- 1 root shared 364 19 déc. 2015 wp-blog-header.php
4 -rw-r--r-- 1 root shared 1477 23 mai 2016 wp-comments-post.php
4 -rw-r--r-- 1 root shared 3579 2 nov. 2016 wp-config-sample.php
4 drwxr-sr-x 5 root shared 4096 2 nov. 2016 wp-content
4 -rw-r--r-- 1 root shared 3286 24 mai 2015 wp-cron.php
12 drwxr-sr-x 17 root shared 12288 2 nov. 2016 wp-includes
4 -rw-r--r-- 1 root shared 2382 23 mai 2016 wp-links-opml.php
4 -rw-r--r-- 1 root shared 3353 14 avril 2016 wp-load.php
36 -rw-r--r-- 1 root shared 34057 14 juin 2016 wp-login.php
8 -rw-r--r-- 1 root shared 7786 13 juil. 2016 wp-mail.php
16 -rw-r--r-- 1 root shared 13920 13 août 2016 wp-settings.php
32 -rw-r--r-- 1 root shared 29890 24 mai 2016 wp-signup.php
4 -rw-r--r-- 1 root shared 4035 30 nov. 2014 wp-trackback.php
4 -rw-r--r-- 1 root shared 3064 6 juil. 2016 xmlrpc.php


On supprime le répertoire <code>wordpress</code> qui est maintenant vide.
# rmdir wordpress/


Vérification.
# ls -lsd wordpress

ls: impossible d'accéder à wordpress: <span style="color:red">Aucun fichier ou dossier de ce type</span>

=== Base de données pour WordPress ===

On crée la base de données ''(dans notre exemple, on la nomme WPBD)'' avec spécifiquement <u>'''mysqladmin<span style="color:red">57</span>'''</u>.
# mysqladmin57 CREATE WPBD


On entre dans la console mysql avec spécifiquement <u>'''mysql<span style="color:red">57</span>'''</u>.
# mysql57

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: <span style="color:red">'''5.7.16'''</span> MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


On vérifie que la base de données a bien été créée.
mysql> '''show databases;'''

<nowiki>+--------------------+</nowiki>
<nowiki>| Database |</nowiki>
<nowiki>+--------------------+</nowiki>
<nowiki>| information_schema |</nowiki>
<nowiki>|</nowiki> <span style="color:red">WPBD</span> <nowiki>|</nowiki>
<nowiki>| mysql |</nowiki>
<nowiki>| performance_schema |</nowiki>
<nowiki>| sys |</nowiki>
<nowiki>+--------------------+</nowiki>
<nowiki>5 rows in set (0.02 sec)</nowiki>

mysql>


<span id="Grant"></span>
'''Grant'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;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. <u>Il ne faut pas prendre notre exemple de mot de passe</u>.

On crée un usager pour notre base de données et on lui donne ''(grant)'' les permissions nécessaires.
mysql> '''grant all on <span style="color:red">WPBD</span>.* to <span style="color:red">usager_WPBD</span>@localhost identified by '<span style="color:red">mdp_WPBD</span>';'''

Query OK, 0 rows affected (0.00 sec)
mysql>

Noter le nom de la base de données: <code><span style="color:red">WPBD</span></code>, le nom de l'usager: <code><span style="color:red">usager_WPBD</span></code> et son mot de passe: <code><span style="color:red">mdp_WPBD</span></code>; ils serviront plus tard dans le fichier de configuration de WordPress.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;<u>Il ne faut pas prendre nos paramètres, ils ne sont pas assez robustes</u>.


Vous devez exécuter la commande <code>FLUSH PRIVILEGES</code> ou la commande en ligne <code>mysqladmin<span style="color:red">'''57'''</span> flush privileges</code> pour indiquer à MySQL qu'il doit recharger les droits.
mysql> '''FLUSH PRIVILEGES;'''

Query OK, 0 rows affected (0.00 sec)
mysql>

On quitte la console MySQL.
mysql> '''quit;'''

bye
#

=== wp-config.php ===

On vérifie qu'on est toujours dans le répertoire racine de notre site.
# pwd

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


Il faut maintenant copier le fichier d'exemple de configuration <code>wp-config-sample.php</code> de WordPress vers le véritable fichier de configuration <code>wp-config.php</code>.

On vérifie la présence du fichier.
# ls -als wp-config-sample.php

4 -rw-r--r-- 1 root shared 3579 2 nov. 2016 <span style="color:red">wp-config-sample.php</span>


[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;On garde le fichier <code>wp-config-sample.php</code> car, il est nécessaire lors d'une récupération ou d'un transfert de WordPress vers un autre serveur.

Pour la migration d'un site WordPress voir le Cahier-7: ''Duplicator & migration'': https://www.micronator.org/affaires/produit/micronator-101-cahier-7duplicator-migration/.

On crée le fichier de configuration <code>wp-config.php</code> en faisant une copie du fichier <code>wp-config-sample.php</code>.
# cp wp-config-sample.php wp-config.php


Vérification.
# ls -ls wp-config*

4 -rw-r--r-- 1 root shared 3579 11 oct. 13:17 <span style="color:red">wp-config.php</span>
4 -rw-r--r-- 1 root shared 3579 2 nov. 2016 wp-config-sample.php

=== Édition du fichier de configuration ===

Il faut modifier le fichier de configuration pour spécifier, à l'installateur WordPress, les paramètres utilisés lors du [[#Grant]] ''(octroi de droits et permissions)'' dans MySQL57.

Il faut:

* changer votre_nom_de_bdd pour <span style="color:DarkMagenta">WPBD</span>

* changer votre_utilisateur_de_bdd pour <span style="color:DarkMagenta">usager_WPBD</span>

* changervotre_mdp_de_bdd pour <span style="color:DarkMagenta">mdp_WPBD</span>

* ajouter le chemin du connecteur <span style="color:red">mysql<span style="color:blue">57</span>.sock</span> à <code>localhost</code> sur la ligne de définition <code>define('DB_HOST', '<span style="color:red">localhost</span>')</code>.

Contenu actuel du fichier de configuration.
{| class="wikitable" style="width: 80%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki> ...</nowiki><br>
<nowiki> /** Nom de la base de données de WordPress. */</nowiki><br>
<nowiki> define('DB_NAME',/</nowiki> '<span style="color:DarkMagenta">votre_nom_de_bdd</span><nowiki>');</nowiki><br>
<nowiki>&nbsp;</nowiki><br>
<nowiki> /** Utilisateur de la base de données MySQL. */</nowiki><br>
<nowiki> define('DB_USER',/</nowiki> '<span style="color:DarkMagenta">votre_utilisateur_de_bdd</span><nowiki>');</nowiki><br>
<nowiki>&nbsp;</nowiki><br>
<nowiki> /** Mot de passe de la base de données MySQL. */</nowiki><br>
<nowiki> define('DB_PASSWORD',/</nowiki> '<span style="color:DarkMagenta">votre_mdp_de_bdd</span><nowiki>');</nowiki><br>
<nowiki>&nbsp;</nowiki><br>
<nowiki> /** Adresse de l’hébergement MySQL. */</nowiki><br>
<nowiki> define('DB_HOST',</nowiki> '<span style="color:red">localhost</span>');<br>
<nowiki> ...</nowiki>
|}


On procède aux modifications avec l'éditeur <code>vi</code> ou NotePad++.
# vi wp-config.php


Ce que le contenu du fichier doit être pour notre cas spécifique.
...
/** Nom de la base de données de WordPress. */
define('DB_NAME', '<span style="color:DarkMagenta">WPBD</span>');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', '<span style="color:DarkMagenta">usager_WPBD</span>');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', '<span style="color:DarkMagenta">mdp_WPBD</span>');

/** Adresse de l’hébergement MySQL. */
define('DB_HOST', 'localhost<span style="color:red">:/var/lib/mysql/mysql<span style="color:blue">'''57'''</span>.sock</span>');
...


On vérifie.
# cat wp-config.php | grep DB_

define('DB_NAME', '<span style="color:DarkMagenta">WPBD</span>');
define('DB_USER', '<span style="color:DarkMagenta">usager_WPBD</span>');
define('DB_PASSWORD', '<span style="color:DarkMagenta">mdp_WPBD</span>');
define('DB_HOST', 'localhost<span style="color:red">:/var/lib/mysql/mysql<span style="color:blue">'''57'''</span>.sock</span>');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');


'''Préfixe de la BD de WordPress'''

Le paramètre <code>$table_prefix</code> est la valeur placée devant les tables de votre base de données.

''Référence'': [http://sql.sh/1205-wordpress-changer-prefixe-tables http://sql.sh/1205-wordpress-changer-prefixe-tables].


'''''Risques encourus en laissant le préfixe par défaut'''''

Les pirates informatiques utilisent des scripts automatisés qui tentent des injections SQL sur des failles connues de WordPress ou de certaines de ses extensions. Sachant que la base de données contient pratiquement toutes les informations du site, ces failles peuvent être exploitées pour l’une des raisons suivantes:

* Ajouter du contenu sur le site ''(exemple: liens vers des sites illégaux)''.
* Ajouter des commentaires pourriels.
* Détruire le contenu du site.
* Faire planter le site.
* Extraire des informations ''(récupérer la liste des courriels des personnes qui ont laissées un commentaire)''.

Sachant que les scripts sont automatisés, ils tentent des requêtes les plus probables possibles. Autrement dit, les scripts utilisent en général des injections SQL avec le nom des tables qui possèdent le préfixe par défaut "wp_". En utilisant le préfixe par défaut facilite indirectement le travail de ces pirates.


'''''Quel préfixe utiliser?'''''

Certes, nous venons de comprendre que le préfixe par défaut est à éviter mais alors, quel préfixe utiliser? Utiliser un nom trop commun n’est pas très sécuritaire non plus. Par exemple, un préfixe tel que "monsite_" peut être trop facilement deviné. Pour vraiment compliquer la vie des pirates il faut plutôt utiliser un préfixe mélangeant des caractères et des chiffres, tel que "fym39dtz_".

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;En utilisant un préfixe qui commence par "wordpress" ''(ex: "wordpress_fym39dtz_")'' il est plus facile de reconnaître les tables qui correspondent à l’installation WordPress au cas où votre base de données contiendrait d’autres tables qui ne seraient pas liées à ce CMS.


'''''Modification dans le fichier wp-config.php'''''

Le fichier contient une ligne: <code>$table_prefix = 'wp_';</code> spécifiant le paramètre et la variable qui indique à PHP le préfixe des tables.

Il convient de remplacer ce préfixe avec <span style="color:DarkMagenta">celui de votre choix</span>.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Seulement des lettres, des nombres et le caractère de soulignement "_".

Pour les besoins de ce document, on change le préfixe 'wp_' pour '<span style="color:DarkMagenta">Toto0327_</span>'.
# sed -i 's/'wp_'/'<span style="color:DarkMagenta">Toto0327_</span>'/' wp-config.php

On vérifie.
# cat wp-config.php | grep <span style="color:DarkMagenta">Toto0327_</span>

$table_prefix = '<span style="color:DarkMagenta">Toto0327_</span>';

<span id="BD de comptes"></span>
=== BD de comptes ===

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

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Modifiez en conséquence pour une autre i-bay.

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


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


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


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


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

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

=== Fichier .htaccess ===

''Référence'': [http://www.commentcamarche.net/contents/7-apache-les-fichiers-htaccess http://www.commentcamarche.net/contents/7-apache-les-fichiers-htaccess].

Les fichiers <code>.htaccess</code> sont des fichiers de configuration d'Apache, permettant de définir des règles dans un répertoire et dans tous ses sous-répertoires ''(qui n'ont pas de fichier .htaccess à l'intérieur)''. On peut les utiliser pour protéger un répertoire par mot de passe, <u>pour changer le nom ou l'extension de la page index</u> ou encore pour interdire l'accès au répertoire.


''Principe des fichiers <code>htaccess</code>''

Le fichier <code>.htaccess</code> est placé dans le répertoire dans lequel il doit agir. Il agit ainsi sur les permissions du répertoire qui le contient et de tous ses sous-répertoires. Vous pouvez placer un autre fichier <code>.htaccess</code> dans un sous-répertoire d'un répertoire déjà contrôlé par un fichier <code>.htaccess</code>. Le fichier <code>.htaccess</code> du répertoire parent reste en "activité" tant que les fonctionnalités du fichier <code>.htaccess</code> du répertoire enfant n'ont pas été écrites.


'''Permaliens'''

''Référence'': [https://codex.wordpress.org/fr:Utilisation_des_permaliens https://codex.wordpress.org/fr:Utilisation_des_permaliens].

Les permaliens sont les adresses permanentes ''(URL'') de vos articles ainsi que des catégories, archives et autres pages spéciales. Le permalien permet à un autre site de référer à l'un de vos articles ou de pointer vers votre article depuis un courriel. L'adresse URL de chaque article devrait être permanente <u>et ne jamais changer</u> - d'où le terme de "perma"-lien.

On crée le fichier <code>.htaccess</code> et on y insère son contenu.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Modifiez en conséquence pour une autre i-bay.

Prendre tout le contenu de l'encadré pour la commande.
cat > /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/.htaccess <<'EOT'
<nowiki># ************************************** </nowiki>
<nowiki># Pour les permaliens</nowiki>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

EOT



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


On ajuste le propriétaire et le groupe.
# chown admin:shared /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/.htaccess


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

4 -<span style="color:red">rw-r-----</span> 1 <span style="color:red">admin shared</span> 265 27 mars 13:04 /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/<span style="color:red">.htaccess</span>


On vérifie le contenu.
# cat /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/.htaccess

<nowiki># **************************************</nowiki>
<nowiki># Pour les permaliens</nowiki>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Il n'y a pas de ligne vide avant la ligne <code># *****...</code>. Ci-dessus, nous avons inséré une ligne vide pour faciliter la copie de la commande.


'''Protection du fichier wp-config'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;<u>Modifiez en conséquence pour une autre i-bay</u>.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Dans la commande, les deux caractères <span style="color:red">>></span> après <code>cat</code>, signifie qu'<u>on ajoute</u> au fichier <code>.htaccess</code>.

Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/.htaccess <<'EOT'
<nowiki># **************************************</nowiki>
<nowiki># Pour protéger le fichier wp-config</nowiki>
<Files wp-config.php>
order allow,deny
deny from all
</Files>

EOT



On vérifie le contenu.
# tail -8 .htaccess

<nowiki># **************************************</nowiki>
<nowiki># Pour protéger le fichier wp-config</nowiki>
<Files wp-config.php>
order allow,deny
deny from all
</Files>


'''Protection du fichier .htaccess lui-même'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;<u>Modifiez en conséquence pour une autre i-bay</u>.

Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/.htaccess <<'EOT'
<nowiki># **************************************</nowiki>
<nowiki># Pour protéger le fichier htaccess lui-même</nowiki>
<Files .htaccess>
order allow,deny
deny from all
</Files>

EOT



On vérifie le contenu.
# tail -8 .htaccess

<nowiki># **************************************</nowiki>
<nowiki># Pour protéger le fichier htaccess lui-même</nowiki>
<Files .htaccess>
order allow,deny
deny from all
</Files>


<span id="Interdiction d'accès libre aux fichiers et aux répertoires"></span>
'''Interdiction d'accès libre aux fichiers et aux répertoires'''

Par défaut sous Apache, lorsqu'il n'y a pas de fichier d'index, on voit dans son navigateur la liste des fichiers et des répertoires contenus sur le serveur. Le réglage ci-dessous permet d’empêcher de voir et/ou récupérer les fichiers & images qui composent notre site.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;<u>Modifiez en conséquence pour une autre i-bay</u>.

Prendre tout le contenu de l'encadré pour la commande.

cat >> /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/.htaccess <<'EOT'
<nowiki># **************************************</nowiki>
<nowiki># permet d’empêcher que tout le monde puisse voir et/ou récupérer</nowiki>
<nowiki># les fichiers & images qui composent notre site.</nowiki>
Options All -Indexes

EOT



On vérifie le contenu.
# tail -6 .htaccess

<nowiki># **************************************</nowiki>
<nowiki># permet d’empêcher que tout le monde puisse voir et/ou récupérer</nowiki>
<nowiki># les fichiers & images qui composent notre site.</nowiki>
Options All -Indexes


'''Duplicator'''

<span id="Répertoire wp-snapshots"></span>
'''''Répertoire wp-snapshots'''''

Pour stocker les sauvegardes, l'installation de l'extension '''Duplicator''' voudra créer un dossier dans le répertoire racine hébergeant notre site WordPress.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Le répertoire <code>html</code> 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 notre future extension Duplicator.

On crée le répertoire.
# mkdir -p /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/<span style="color:red">wp-snapshots/tmp</span>


On crée aussi un fichier <code>.htaccess</code> dans le répertoire <code>wp-snapshots</code>.
# touch /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/wp-snapshots/<span style="color:red">.htaccess</span>


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

0 -rw-r--r-- 1 root shared 0 27 mars 13:08 /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/wp-snapshots/<span style="color:red">.htaccess</span>

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Plus loin, le lancement du script <code>droits_ibay.sh</code> va s'occuper de donner les droits nécessaires pour le répertoire <code>wp-snapshots</code>.


=== Propriétaire, groupes, droits et l'utilisateur other ===

Il est maintenant temps de devenir très sécuritaire.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Il faut ajuster le propriétaire, le groupe et les droits de tous les répertoires et sous-répertoires de notre site en exécutant le script <code>droits_ibay.sh <span style="color:DarkMagenta">[nom-de-l-i-bay]</span></code> qu'on peut consulter au paragraphe [[#Création du script droits_ibay.sh]]. Pour l'usage de ce script, voir le paragraphe [[#Usage]].

On sécurise notre site.
# droits_ibay.sh <span style="color:DarkMagenta"><span style="color:DarkMagenta">Primary</span></span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span></span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...
4 -rw-r----- 1 admin shared 742 11 oct. 13:22 <span style="color:red">.htaccess</span>
4 -rw-r----- 1 admin shared 418 24 sept. 2013 index.php
20 -rw-r----- 1 admin shared 19935 5 mars 2016 license.txt
12 -rw-r----- 1 admin shared 9028 2 nov. 2016 <span style="color:red">readme.html</span>
8 -rw-r----- 1 admin shared 5456 24 mai 2016 wp-activate.php
4 drwxr-s--- 9 admin shared 4096 2 nov. 2016 wp-admin
4 -rw-r----- 1 admin shared 364 19 déc. 2015 wp-blog-header.php
4 -rw-r----- 1 admin shared 1477 23 mai 2016 wp-comments-post.php
4 -rw-r----- 1 admin shared 3580 11 oct. 13:20 <span style="color:red">wp-config.php</span>
...

= Installation de WordPress =

=== Prérequis ===

L'installation est <u>considérée comme une mise à jour</u> de WordPress car, elle manipule les fichiers de configuration. Donc, on exécute le script <code>droits_<span style="color:red">debut</span>_MAJ-WP.sh <span style="color:DarkMagenta">[nom-de-l-i-bay]</span></code>.
# droits_<span style="color:red">debut</span>_MAJ-WP.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[RETOUR]</span>

/bin/cp: impossible d'évaluer «&nbsp;../<span style="color:red">readme.html</span>&nbsp;»: <span style="color:red">Aucun fichier ou dossier de ce type</span>
...
12 -rw-rw---- 1 admin shared 9028 23 févr. 21:34 readme.html
...

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Le message est dû à ce que le fichier <code>readme.html</code> est dans le répertoire racine au lieu d'être dans celui au-dessus de celui-ci.


'''Lancement de l'installation'''

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;" AVEC LARGUEUR = GRANDE (600px)

{| style="float: right; margin-left:0.5em ;margin-right:100px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-028-Inst-G-1.png|450px|border]]
|}
Pour lancer l'installation de WordPress, on indique l'URL de notre site: https://www.micronator-101.com/.

L'URL changera pour:https://www.<span style="color:DarkMagenta">micronator-101.com</span><span style="color:blue">/wp-admin/install.php</span>


Le script <code>install.php</code> est lancé automatiquement et la page ci-contre s'affiche.
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>

On entre les informations demandées.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Pour des raisons de sécurité, il ne faut jamais utiliser le nom d'usager "admin" comme identifiant de l'administrateur du site.
<br>

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Choisir un mot de passe robuste.
<br>
<br>
<br>
<br>

Donner l'adresse courriel de l'administrateur du site.
<br>
<br>
<br>
<br>

Vérifiez toutes les informations demandées puis, cliquer ''Installer WordPress''.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;" AVEC LARGUEUR = GRANDE (600px)

{| style="float: right; margin-left:0.5em ;margin-right:100px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-029-Inst-H-1.png|600px|border]]
|}
Si tout a bien été configuré, l'administrateur du site reçoit un courriel de confirmation à l'adresse de messagerie donnée lors de l'installation de WordPress ci-dessus.

On pourrait se loguer en cliquant le lien spécifié.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-031-Inst-J.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-030-Inst-I.png|400px|border]]
|}
* <span style="font-family:Courier New;">De retour à notre page d'installation, on clique ''Se connecter''.</span>
* <span style="font-family:Courier New;">On entre notre ''Identifiant''<span style="color:red"> &nbsp;>&nbsp; </span>''Mot de passe''<span style="color:red"> &nbsp;>&nbsp; </span>''Se connecter''.</span>
<br clear=all>

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

WordPress a été installé et le "Tableau de bord" s'affiche.

[[Image:SME-101.05A-032-Inst-K-1.png|top|center|700px|border]]

Six ''(6)'' mises à jour sont disponibles dont la version WordPress-4.9.8. Les mises à jour disponibles sont principalement celles des thèmes. Plus loin, nous nous occuperons de tout mettre à jour.


=== Page d'accueil ===

On se rend à notre page d'accueil [http://www.micronator-101.com/ http://www.][http://www.micronator-101.com/ micronator-101.com]. Notre site WordPress s'affiche.

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Si le site ne s'affiche pas, simplement vidanger l'historique du navigateur Web.

[[Image:SME-101.05A-033-Inst-L.png|top|center|700px|border]]

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;" AVEC LARGUEUR = GRANDE (600px)

{| style="float: right; margin-left:0.5em ;margin-right:100px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-034-Inst-M.png|500px|border]]
|}
=== Sécurité primaire ===

'''Fichier readme.html'''

On se rend à: https://www.micronator-101.com/readme.html pour afficher le fichier <code>readme.html</code> de WordPress.

Ce fichier affiche le numéro de version de notre WordPress. Comme expliqué plus haut, la version d’un site ou d’un logiciel est une des informations que les pirates informatiques préfèrent car, connaître la version leur permet de savoir s’il existe des vulnérabilités connues et exploitables.

Si vous n’avez pas tenu à jour votre site, une version antérieure présentera des failles connues et donc, des moyens faciles d'en craquer l'accès.
<br clear=all>
<!-- ########################################################################### -->

=== Droits et permissions ===

'''Script droits_<span style="color:red">fin</span>_MAJ-WP.sh '''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Après l'installation, la sécurité étant notre principale préoccupation, on enlève les droits d'écriture donnés avant l'installation de WordPress et on ramène le fichier <code>.htaccess</code> en exécutant le script <code>droits_<span style="color:red">fin</span>_MAJ-WP.sh [nom-de-l-i-bay]</code>.
# droits_<span style="color:red">fin</span>_MAJ-WP.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>

********** Répertoire racine **********
total 196
4 drwxr-s--- 6 admin shared 4096 11 oct. 13:33 .
4 drwxr-xr-x 6 root root 4096 11 oct. 13:33 ..
4 -rw-r----- 1 admin shared 742 11 oct. 13:22 <span style="color:red">.htaccess</span>
4 -rw-r----- 1 admin shared 418 24 sept. 2013 index.php
20 -rw-r----- 1 admin shared 19935 5 mars 2016 license.txt
8 -rw-r----- 1 admin shared 5456 24 mai 2016 wp-activate.php
4 drwxr-s--- 9 admin shared 4096 2 nov. 2016 wp-admin
4 -rw-r----- 1 admin shared 364 19 déc. 2015 wp-blog-header.php
4 -rw-r----- 1 admin shared 1477 23 mai 2016 wp-comments-post.php
4 -rw-r----- 1 admin shared 3580 11 oct. 13:20 <span style="color:red">wp-config.php</span>
4 -rw-r----- 1 admin shared 3579 2 nov. 2016 wp-config-sample.php
4 drwxrws--- 5 admin shared 4096 11 oct. 13:32 wp-content
4 -rw-r----- 1 admin shared 3286 24 mai 2015 wp-cron.php
12 drwxr-s--- 17 admin shared 12288 2 nov. 2016 wp-includes
4 -rw-r----- 1 admin shared 2382 23 mai 2016 wp-links-opml.php
4 -rw-r----- 1 admin shared 3353 14 avril 2016 wp-load.php
36 -rw-r----- 1 admin shared 34057 14 juin 2016 wp-login.php
8 -rw-r----- 1 admin shared 7786 13 juil. 2016 wp-mail.php
16 -rw-r----- 1 admin shared 13920 13 août 2016 wp-settings.php
32 -rw-r----- 1 admin shared 29890 24 mai 2016 wp-signup.php
4 drwxrws--- 3 admin shared 4096 11 oct. 13:23 <span style="color:red">wp-snapshots</span>
4 -rw-r----- 1 admin shared 4035 30 nov. 2014 wp-trackback.php
4 -rw-r----- 1 admin shared 3064 6 juil. 2016 xmlrpc.php


<span id="Fichier readme.html"></span>
'''Fichier readme.html'''

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Nous aurions pu effacer le fichier <code>readme.html</code> mais, lors d'une mise à jour, WordPress a besoin de celui-ci.

Le script <code>droits_<span style="color:red">fin</span>_MAJ-WP.sh</code> le déplace dans le répertoire au dessus de la racine de WordPress, c.-à-d. <code>/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/</code>.

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

12 -rw-rw---- 1 admin shared 9028 2 nov. 2016 /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/<span style="color:red">readme.html</span>

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;<u>Avant</u> une mise à jour de WordPress, le script <code>droits_<span style="color:red">debut</span>_MAJ-WP.sh</code> remet le fichier <code>readme.html</code> dans le répertoire racine de WordPress, c.-à-d. <code>/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html</code>. Le script s'occupe de faire les ajustements nécessaires pour une autre i-bay.


<span id="Fichier .htaccess"></span>
'''Fichier .htaccess'''

Comme on peut le voir, le fichier <code>.htaccess</code> a été remis en place.


'''Script droits_ibay.sh <span style="color:DarkMagenta">Primary</span>'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Après toutes mises à jour, installations de thèmes ou d'extensions, il est obligatoire de lancer le script <code>droits_ibay.sh <span style="color:DarkMagenta">Primary</span></code> pour s'assurer que tous les droits et permissions soient ce qu'ils devraient être.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>

...
********** Répertoire racine **********
total 196
4 drwxr-s--- 6 admin shared 4096 11 oct. 13:33 .
4 drwxr-xr-x 6 root root 4096 11 oct. 13:33 ..
4 -rw-r----- 1 admin shared 742 11 oct. 13:22 <span style="color:red">.htaccess</span>
4 -rw-r----- 1 admin shared 418 24 sept. 2013 index.php
20 -rw-r----- 1 admin shared 19935 5 mars 2016 license.txt
8 -rw-r----- 1 admin shared 5456 24 mai 2016 wp-activate.php
4 drwxr-s--- 9 admin shared 4096 2 nov. 2016 wp-admin
4 -rw-r----- 1 admin shared 364 19 déc. 2015 wp-blog-header.php
4 -rw-r----- 1 admin shared 1477 23 mai 2016 wp-comments-post.php
4 -rw-r----- 1 admin shared 3580 11 oct. 13:20 wp-config.php
4 -rw-r----- 1 admin shared 3579 2 nov. 2016 wp-config-sample.php
4 drwxr<span style="color:red">w</span>s--- 5 admin shared 4096 11 oct. 13:32 <span style="color:red">wp-content</span>
4 -rw-r----- 1 admin shared 3286 24 mai 2015 wp-cron.php
12 drwxr-s--- 17 admin shared 12288 2 nov. 2016 wp-includes
4 -rw-r----- 1 admin shared 2382 23 mai 2016 wp-links-opml.php
4 -rw-r----- 1 admin shared 3353 14 avril 2016 wp-load.php
36 -rw-r----- 1 admin shared 34057 14 juin 2016 wp-login.php
8 -rw-r----- 1 admin shared 7786 13 juil. 2016 wp-mail.php
16 -rw-r----- 1 admin shared 13920 13 août 2016 wp-settings.php
32 -rw-r----- 1 admin shared 29890 24 mai 2016 wp-signup.php
4 drwxr<span style="color:red">w</span>s--- 3 admin shared 4096 11 oct. 13:23 <span style="color:red">wp-snapshots</span>
4 -rw-r----- 1 admin shared 4035 30 nov. 2014 wp-trackback.php
4 -rw-r----- 1 admin shared 3064 6 juil. 2016 xmlrpc.php


'''Répertoire wp-content'''

Le répertoire <code>wp-content</code> est le seul avec <code>wp-snapshots</code> à posséder un droit d'écriture pour le groupe ''(<code>shared/<span style="color:DarkMagenta">www</span></code>)''. Ce droit d'écriture est nécessaire pour permettre, lors d'une installation d'extension/thème, de pouvoir créer des répertoires et des fichiers. Le droit d'écriture de <code>wp-snapshots</code> permet à l'extension Duplicator d'y déposer ses sauvegardes du site.

= Mise à jour =

'''Avis #1'''

''Référence'': [http://www.wordpress-fr.net/faq/est-ce-important-de-faire-regulierement-les-mises-a-jour-proposees/ http://www.wordpress-fr.net/faq/est-ce-important-de-faire-regulierement-les-mises-a-jour-proposees/].

Est-ce important de faire régulièrement les mises à jour proposées?

Oui, il est important de faire régulièrement les mises à jour de WordPress, de ses thèmes et de ses extensions, en particulier si votre site est public. Il est même indispensable de le faire lorsque la nouvelle version apporte des corrections en matière de sécurité.

Laisser sur votre site une version obsolète de WordPress, d’un de ses thèmes ou de ses extensions vous expose à des risques de piratage.

Pensez à vérifier, avant la mise à jour, la compatibilité de votre hébergement et à effectuer une sauvegarde.


'''Avis #2'''

Référence: [http://www.maintpress.com/blog/important-mettre-jour-site-wordpress-douleur/ http://www.maintpress.com/blog/important-mettre-jour-site-wordpress-douleur/].

'''''Pourquoi il est important de mettre à jour son site WordPress''''' ''(sans douleur)''

Nous l’avons tous fait au moins une fois: ignorer, plus ou moins volontairement, la notification "Une nouvelle version de WordPress est disponible. Faites la mise à jour!"

Cela vous rappelle quelque chose?

Il y a quelques années, installer une nouvelle version pouvait tourner au drame: écran blanc, bug complet du site… pour tout débutant ou personne non initiée aux rouages du CMS s’ouvraient alors des heures de manipulations incompréhensibles avant de pouvoir revenir à la normale.

Les mises à jour de WordPress, mais aussi de vos extensions et de votre thème, sont pourtant indispensables et ne se font plus dans la douleur.

Mais au fait, pourquoi est-il si important de s’y plier?

'''''Les mises à jour apportent de nouvelles fonctionnalités'''''

Chaque nouvelle version de WordPress vise à corriger les bugs de la précédente tout en apportant de nouvelles fonctionnalités qui facilitent votre travail de publication au quotidien.

WordPress 4.0 inclut par exemple:

* Un éditeur plus intelligent dont la taille s’adapte à votre travail
* Des outils de mise en forme toujours accessibles
* Une intégration exceptionnelle des vidéos YouTube et des Tweets
* Une mise en page fluide de la bibliothèque de médias

Pourquoi se passer d’une expérience-utilisateur plus agréable? Les mises à jour servent aussi à cela.

'''''Vous renforcez la sécurité de votre installation'''''

Une étude a montré que 83% des blogs WordPress "hackés" n’étaient pas mis à jour. Bien sûr, cela ne concerne pas que le CMS lui-même mais, aussi ses extensions et la fiabilité de votre hébergeur: https://www.wpbeginner.com/beginners-guide/ultimate-guide-to-upgrade-wordpress-for-beginners-infograph/?display=wide.

Le mot d’ordre est clair; les failles de sécurité connues par les "hackers" ne risquent pas de disparaître si vous n'installez pas une version plus sûre des composants de votre site!

Lorsqu'un talon d’Achille est décelé sur un CMS aussi populaire que WordPress, vous devenez une cible idéale si vous ne vous protégez pas. Contrairement aux idées reçues, même les "petits" sites et blogs sont la cible d’attaques répétées.

'''''Quid des thèmes et des extensions?'''''

C'est exactement la même chose; les auteurs des thèmes et des extensions les mettent à jour pour apporter de nouvelles options (demandées ou non par les utilisateurs), réparer des bugs et renforcer la sécurité de l'outil qu’ils ont codé.

Mettre à jour ses extensions WordPress est également important pour des raisons de compatibilité. Avez-vous déjà remarqué que certaines extensions entraient en conflit avec d’autres extensions, voir même avec votre thème? Les mises à jour servent aussi à pallier ces erreurs.

'''''Faut-il toujours activer immédiatement une mise à jour?'''''

Si votre développeur a procédé à des modifications ou personnalisations particulières de votre thème ou de vos extensions, renseignez-vous avant d'autoriser une mise à jour. Vous éviterez ainsi de perdre le travail réalisé sur votre site.

Dans l'ensemble, veillez tout de même à suivre les évolutions du CMS, de votre thème et de vos extensions. Vous serez moins vulnérable aux attaques et bénéficierez de toutes les évolutions des outils.


'''Avis #3'''

''Référence'': [http://www.deepintheweb.com/wordpress-et-les-mises-a-jour-est-ce-indispensable/ http://www.deepintheweb.com/wordpress-et-les-mises-a-jour-est-ce-indispensable/].

'''''Doit-on le faire ou pas?'''''

Comme chaque "action", celle-ci doit être réfléchie et fondée. Les développeurs WordPress prennent le temps de détailler leurs travaux et les nouveautés mises en place dans les mises à jour. Par conséquent, vous pouvez ''(et devez)'' prendre le temps de lire et de vous mettre au courant de ce qui a été fait. De cette façon, vous pourrez juger de la nécessité ou non de mettre votre WordPress à jour.

Si vous voulez mettre à jour et être sûr que tout se passera bien, il y a plusieurs solutions:

* '''Se renseigner''': Il existe des forums spécialisés où les utilisateurs WP viennent s'exprimer. Comme beaucoup de gens qui mettent à jour directement sans se poser de questions et sans prendre de précautions, on arrive très rapidement ''(après la sortie de la mise à jour)'' de voir les premiers problèmes que cela peut générer: compatibilité des extensions, réglages, etc. Vous pouvez donc en profitez pour détecter les éventuels problèmes que cela pourrait entraîner sur votre site.
* '''Vérifier!''' Il n'y a pas de meilleure solution que la vérification. Je vous recommande d’avoir toujours une plateforme de test ''(en ligne ou en local)'', sur laquelle vous installez tous les thèmes et extensions que vous utilisez sur vos sites. Utilisez cette plateforme pour tester les mises à jour et vérifier que tout se passe pour le mieux. De cette façon vous pourrez identifier les éventuels problèmes et en discuter sur les forums pour trouver des solutions.


'''Notre avis personnel'''

Vous devez vérifier si les nouvelles extensions et thèmes que vous employez ont été approuvés et vérifiés pour la nouvelle version et enfin les essayer sur une machine de VirtualBox.

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;La meilleure façon de vérifier une extension ou un thème est d'utiliser une machine virtuelle qui est un clone exact de votre site original, voir le Cahier-7: ''Duplicator & migration'': https://www.micronator.org/affaires/produit/micronator-101-cahier-7duplicator-migration/.

* Installez toutes les mises à jour sur le WordPress virtuel et vérifiez tout au complet.
* Sur votre site réel, installez seulement les mises à jours qui fonctionnent sans problèmes sur votre site virtuel.


'''Mise en garde'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Il faut obligatoirement toujours utiliser le bon usager téléchargeur.


=== Sauvegarde avec Duplicator ===

Avant une mise à jour de WordPress ''(surtout pour un saut de plusieurs version: WordPress-4.6.1 vers WordPress-4.9.8)'', on devrait sauvegarder notre site, voir le Cahier-7: ''Duplicator & migration'': https://www.micronator.org/affaires/produit/micronator-101-cahier-7duplicator-migration/.


=== Droits, permissions et sécurité ===

Avant une mise à jour de WordPress, on exécute le script <code>droits_<span style="color:red">debut</span>_MAJ-WP.sh</code>.

# droits_<span style="color:red">debut</span>_MAJ-WP.sh Primary

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>

********** Répertoire racine **********
total 204
4 drwxr-s--- 6 admin shared 4096 11 oct. 14:22 .
4 drwxr-xr-x 6 root root 4096 11 oct. 14:22 ..
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 418 24 sept. 2013 index.php
20 -rw-r<span style="color:red">w</span>---- 1 admin shared 19935 5 mars 2016 license.txt
12 -rw-r<span style="color:red">w</span>---- 1 root shared 9028 11 oct. 14:22 <span style="color:red">readme.html</span>
8 -rw-r<span style="color:red">w</span>---- 1 admin shared 5456 24 mai 2016 wp-activate.php
4 drwxr<span style="color:red">w</span>s--- 9 admin shared 4096 2 nov. 2016 wp-admin
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 364 19 déc. 2015 wp-blog-header.php
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 1477 23 mai 2016 wp-comments-post.php
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 3552 11 oct. 13:20 wp-config.php
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 3579 2 nov. 2016 wp-config-sample.php
4 drwxr<span style="color:red">w</span>s--- 6 admin shared 4096 11 oct. 13:32 wp-content
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 3286 24 mai 2015 wp-cron.php
12 drwxr<span style="color:red">w</span>s--- 17 admin shared 12288 2 nov. 2016 wp-includes
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 2382 23 mai 2016 wp-links-opml.php
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 3353 14 avril 2016 wp-load.php
36 -rw-r<span style="color:red">w</span>---- 1 admin shared 34057 14 juin 2016 wp-login.php
8 -rw-r<span style="color:red">w</span>---- 1 admin shared 7786 13 juil. 2016 wp-mail.php
16 -rw-r<span style="color:red">w</span>---- 1 admin shared 13920 13 août 2016 wp-settings.php
32 -rw-r<span style="color:red">w</span>---- 1 admin shared 29890 24 mai 2016 wp-signup.php
4 drwxr<span style="color:red">w</span>s--- 3 admin shared 4096 11 oct. 13:23 wp-snapshots
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 4035 30 nov. 2014 wp-trackback.php
4 -rw-r<span style="color:red">w</span>---- 1 admin shared 3064 6 juil. 2016 xmlrpc.php

Le fichier <code>readme.html</code> est de retour et le fichier <code>.htaccess</code> a disparu; il a été sauvegardé dans le répertoire au-dessus de la racine. De plus, tous les fichiers du répertoire racine ont le droit d'écriture ''(<span style="color:red">w</span>)''; il en est de même pour tous les répertoires.

=== Mise à jour de WordPress ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-052-MAJ-H.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-051-MAJ-G-2.png|550px|border]]
|}
* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Mise à jour''<span style="color:red"> &nbsp;>&nbsp; </span>"Mise à jour de WordPress"<span style="color:red"> &nbsp;>&nbsp; </span>Mettre à jour maintenant.</span>
* <span style="font-family:Courier New;">Entrer les informations requises<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-055-MAJ-K.png|200px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-054-MAJ-J-2.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-053-MAJ-I-1.png|300px|border]]
|}
* <span style="font-family:Courier New;">Le téléchargement et la décompression <u>peuvent prendre quelques minutes</u>, il faut être patient!</span>
* <span style="font-family:Courier New;">On peut consulter les notes de publication.</span>
* <span style="font-family:Courier New;">Avec la souris, survoler le "Titre du site" pour dérouler le menu<span style="color:red"> &nbsp;>&nbsp; </span>''Aller sur le site''.</span>
<br clear=all>
<!-- ########################################################################### -->
'''Droits et permissions après la mise à jour'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Après une mise à jour du coeur de WordPress, on exécute toujours le script script <code>droits_<span style="color:red">fin</span>_MAJ-WP.sh</code>.
# droits_<span style="color:red">fin</span>_MAJ-WP.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>

<nowiki>********** Répertoire racine **********</nowiki>
total 204
4 drwxr-s--- 6 admin shared 4096 11 oct. 14:26 .
4 drwxr-xr-x 6 root root 4096 11 oct. 14:26 ..
4 -rw-r----- 1 admin shared 742 11 oct. 13:22 <span style="color:red">.htaccess</span>
4 -rw-r----- 1 admin shared 418 24 sept. 2013 index.php
20 -rw-r----- 1 admin shared 19935 11 oct. 14:25 license.txt
8 -rw-r----- 1 admin shared 5458 11 oct. 14:25 wp-activate.php
4 drwxr-s--- 9 admin shared 4096 11 oct. 14:25 wp-admin
4 -rw-r----- 1 admin shared 364 19 déc. 2015 wp-blog-header.php
4 -rw-r----- 1 admin shared 1889 11 oct. 14:25 wp-comments-post.php
4 -rw-r----- 1 admin shared 3580 11 oct. 13:20 wp-config.php
4 -rw-r----- 1 admin shared 3581 11 oct. 14:25 wp-config-sample.php
4 drwxr<span style="color:red">w</span>s--- 7 admin shared 4096 11 oct. 14:25 <span style="color:red">wp-content</span>
4 -rw-r----- 1 admin shared 3669 11 oct. 14:25 wp-cron.php
12 drwxr-s--- 18 admin shared 12288 11 oct. 14:25 wp-includes
4 -rw-r----- 1 admin shared 2422 11 oct. 14:25 wp-links-opml.php
4 -rw-r----- 1 admin shared 3306 11 oct. 14:25 wp-load.php
40 -rw-r----- 1 admin shared 37794 11 oct. 14:25 wp-login.php
8 -rw-r----- 1 admin shared 8048 11 oct. 14:25 wp-mail.php
16 -rw-r----- 1 admin shared 16246 11 oct. 14:25 wp-settings.php
32 -rw-r----- 1 admin shared 30091 11 oct. 14:25 wp-signup.php
4 drwxr<span style="color:red">w</span>s--- 3 admin shared 4096 11 oct. 13:23 <span style="color:red">wp-snapshots</span>
8 -rw-r----- 1 admin shared 4620 11 oct. 14:25 wp-trackback.php
4 -rw-r----- 1 admin shared 3065 11 oct. 14:25 xmlrpc.php

Le fichier <code>.htaccess</code> est de retour et <code>readme.html</code> a été transféré au-dessus du répertoire racine. Les fichiers et répertoires ont perdu leur droit d'écriture sauf évidemment, <code>wp-content</code> et <code>wp-snapshots</code>.
<!-- ########################################################################### -->
=== Mise à jour des extensions ===

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-075-Stroefront-E.png|200px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-202-MAJextension-A.png|600px|border]]
|}
''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Mise à jour''<span style="color:red"> &nbsp;>&nbsp; </span>Sous "Extensions", ''Tout sélectionner''<span style="color:red"> &nbsp;>&nbsp; </span>''Mise à jour des extensions''<span style="color:red"> &nbsp;>&nbsp; </span>entrer les paramètres de connexion<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-203-MAJextension-B.png|815px|border]]
|}
* <span style="font-family:Courier New;">- On vérifie toujours les résultats des mises jour.<br>- ''Retourner aux mises à jour de WordPress''.</span>
<br clear=all>

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

'''Droits et permissions'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Après une mise à jour d'une ou plusieurs extensions, on exécute toujours le <code>script droits_<span style="color:red">ibay</span>.sh</code>.
# droits_<span style="color:red">ibay</span>.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...

=== Mise à jour des thèmes ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-046-MAJ-B.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-204-MAJthemes-A.png|550px|border]]
|}
* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Mises à jour''<span style="color:red"> &nbsp;>&nbsp; </span>Sous "Thèmes", ''Tout sélectionner''<span style="color:red"> &nbsp;>&nbsp; </span>''Mettre à jour les thèmes''.</span>
* <span style="font-family:Courier New;">- TOUJOURS <span style="color:red">localhost</span>.<br>- Entrer les informations requises<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-206-MAJthemes-C.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-205-MAJthemes-B.png|400px|border]]
|}
* <span style="font-family:Courier New;">Les téléchargements et les décompressions peuvent prendre un certain temps, il faut être patient!</span>
* <span style="font-family:Courier New;">Tout est à date.</span>
<br clear=all>

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

'''Droits et permissions'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Après une mise à jour d'un ou plusieurs <u>thèmes</u>, on exécute toujours le <code>script droits_<span style="color:red">ibay</span>.sh</code>.
# droits_<span style="color:red">ibay</span>.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...

<center><span style="font-size:120%">'''WordPress est à date et nous sommes toujours très sécuritaires.'''</span></center>


= Principaux réglages recommandés =

=== Général ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-208-Reglages-B.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-207-Reglages-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">- ''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Réglages''<span style="color:red"> &nbsp;>&nbsp; </span>"Réglages généraux".<br>- On peut changer le Slogan de notre site et ajuster l'adresse courriel qui recevra les messages de WordPress.</span>
* <span style="font-family:Courier New;">''Langue du site'' et ''Fuseau horaire''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-210-Reglages-D.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-209-Reglages-C.png|400px|border]]
|}
* <span style="font-family:Courier New;">"Format de la date", "Format d'heure" et "La semaine débute le"<span style="color:red"> &nbsp;>&nbsp; </span>''Enregistrer les modification''.</span>
* <span style="font-family:Courier New;">On s'assure du succès de l'enregistrement des réglages.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-039-RegEcriture.png|815px|border]]
|}

=== Écriture ===

'''Service de mise à jour'''

On n'utilise pas le service de notification, <u>on supprime tout</u><span style="color:red"> &nbsp;>&nbsp; </span>''Enregistrer les modifications'' et on s'assure du succès de l'opération.
<br clear=all>
<!-- ########################################################################### -->

=== Discussions ===

Si on ne publie pas d'articles.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-041-RegDiscussion-B.png|190px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-040-RegDiscussion-A.png|385px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-040-RegDiscussion-AA.png|200px|border]]
|}
* <span style="font-family:Courier New;">''Discussion''.</span>
* <span style="font-family:Courier New;">On décoche tous les "Réglages par défaut des articles".</span>
* <span style="font-family:Courier New;">''Enregistrer les modifications'' et on s'assure du succès de l'opération.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-042-RegPermaliens-A.png|600px|border]]
|}
=== Choisir sa structure de permaliens ===

''Référence'': https://codex.wordpress.org/fr:Utilisation_des_permaliens.

Dans la page de configuration ''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Réglages''<span style="color:red"> &nbsp;>&nbsp; </span>''Permaliens'', vous pouvez choisir l'un des "Réglages les plus courants" ou créer une "Structure personnalisée" en utilisant les marqueurs de structure.

Ne mettez jamais le nom du domaine de votre site dans le champ "Structure personnalisée". N'utilisez que les marqueurs de structure.

Si votre fichier <code>.htaccess</code> contient des erreurs qui rendent votre site inaccessible ''("Internal Server Error (500)")'', vous devrez utiliser un accès PuTTY pour effacer le fichier <code>.htaccess</code> fautif et refaire la procédure du paragraphe [[#Fichier .htaccess]].

* <span style="font-family:Courier New;">- Cocher ''Nom de l'article''.<br> - ''Enregistrer les modifications''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-043-RegPermaliens-B.png|600px|border]]
|}
[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Si WordPress ne peut mettre à jour votre fichier <code>.htaccess</code> automatiquement, il affichera au bas de l'écran:

{| style="width: 40%; background-color:#FFEED9;" align="center"
|- style="vertical-align:bottom;font-family: Courier New;"
|"Si vous aviez les droits en écriture sur le fichier .htaccess, nous pourrions faire cela automatiquement. Ce n’est pas le cas, donc voici les règles de réécriture que vous devrez mettre dans votre fichier .htaccess. Cliquez sur le champ et appuyez sur [Ctrl-a] pour tout sélectionner".
|}
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-044-RegPermaliens-C.png|400px|border]]
|}
[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Ce message en bas de la page est normal car, nous avons donné le droit d'écriture à root ''(admin)'' seulement et nous avons déjà ajouté les paramètres nécessaires pour les permaliens au fichier <code>.htaccess</code>. On peut donc ignorer ce message.

Lorsqu'on choisit "Nom de l'article" comme structure de permaliens, si on déplaçait la souris au-dessus d'un lien sur notre site, l'URL du lien s'afficherait en bas de l'écran <u>avec le nom de la page pointée par ce dernier</u>.
<br clear=all>
<!-- ########################################################################### -->

= Activation d'Akismet =

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-213-Akismet-B.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-212-Akismet-A.png|300px|border]]
|}

'''Akismet'''

Utilisé par des millions de sites, Akismet est probablement la meilleure manière de protéger votre site des commentaires et pisteurs indésirables.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Cet exemple provient de la documentation originale et les pages de connexion d'Akismet peuvent être légèrement différentes mais le principe demeure.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-216-Akismet-E.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-215-Akismet-D.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-214-Akismet-C.png|260px|border]]
|}
* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Extensions installées''<span style="color:red"> &nbsp;>&nbsp; </span>''Akismet''<span style="color:red"> &nbsp;>&nbsp; </span>''Activer''.</span>
* <span style="font-family:Courier New;">''Configurer votre compte Akismet''.</span>
* <span style="font-family:Courier New;">''Obtenir votre clé d'API''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-219-Akismet-G.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-218-Akismet-F.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-217-Akismet-F.png|260px|border]]
|}
* <span style="font-family:Courier New;">''Get started with Personal''.</span>
* <span style="font-family:Courier New;"><span style="color:red"><u>Lisez les conditions d'utilisation et si acceptées</u></span>, entrez les informations demandées<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
* <span style="font-family:Courier New;">Dans le courriel reçu, cliquer ''Activer le Compte''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-222-Akismet-J.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-221-Akismet-I.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-220-Akismet-H.png|260px|border]]
|}
* <span style="font-family:Courier New;">''Sign in to Akismet''.</span>
* <span style="font-family:Courier New;">''Add Personnal Subscription''.</span>
* <span style="font-family:Courier New;">Choisir un montant<span style="color:red"> &nbsp;>&nbsp; </span>''Create Subscription''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-225-Akismet-M.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-224-Akismet-L.png|260px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-223-Akismet-K.png|260px|border]]
|}
* <span style="font-family:Courier New;">''Got It''.</span>
* <span style="font-family:Courier New;">Cliquer l'icône pour afficher la clé API.</span>
* <span style="font-family:Courier New;">Sélectionner la clé et la copier.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-227-Akismet-O.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-226-Akismet-N.png|400px|border]]
|}
* <span style="font-family:Courier New;">De retour au Tableau de bord de WordPress, coller la clé.<span style="color:red"> &nbsp;>&nbsp; </span>''Connectez-vous avec une clé API''.</span>
* <span style="font-family:Courier New;">- ''Éliminer directement les pires indésirables...''<br>- ''Ne pas afficher le message d'information...''<br>- ''Enregistrer les modifications''.</span>
<br clear=all>

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

<center><span style="font-size:125%">'''L'extension Akismet est activée et paramétrée.'''</span></center>


= Installation d'une extension & d'un thème =

Pour s'assurer que tout fonctionne bien, nous allons ajouter l'extension '''Duplicator''' et le thème '''Storefront'''.

=== Connexion ===

Si nous ne sommes pas connectés à WordPress, on se rend à notre site: https://FQDN_ou_IP_du_site/.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-057-Connexion-B.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-056-Connexion-A.png|400px|border]]
|}
* <span style="font-family:Courier New;">Sur notre site, en bas à droite, on clique ''Connexion''.</span>
* <span style="font-family:Courier New;">On entre les informations demandées.<span style="color:red"> &nbsp;>&nbsp; </span>''Connecter''.</span>
<br clear=all>
<!-- ########################################################################### -->

=== Extension Duplicator ===
''Référence'': [https://fr-ca.wordpress.org/plugins/duplicator/ https://fr-ca.wordpress.org/plugins/duplicator/].

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-229-ExtTheme-B.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-228-ExtTheme-A.png|300px|border]]
|}
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 localement sur une machine virtuelle pour la vérification de nouveaux thèmes/extensions et le développement de nouveaux paramètres CSS.
* 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.


'''''Déplacement et sauvegarde'''''

Duplicator crée un "paquet" qui contient le contenu du site, sa base de données, les thèmes, extensions et fichiers du coeur 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 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 réaliser un gain de temps important en créant plusieurs versions de paquets en fonction des "bases" de sites qu’ils utilisent régulièrement.


'''''Prenez note'''''

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Les logiques de sauvegarde, déplacements et migrations de WordPress sont très complexes. Il est impossible de connaître chaque configuration système.


'''''Avertissement'''''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;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. Si vous devez déplacer ou sauvegarder votre site et avez besoin d’aide supplémentaire, visitez: [https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource-030-q La page des ressources Duplicator] ''(en anglais seulement'').


'''''Répertoire wp-snapshots'''''

Ce répertoire a déjà été créé au paragraphe [[#Répertoire wp-snapshots]].


'''Installation'''

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-231-ExtTheme-D.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-230-ExtTheme-C.png|500px|border]]
|}
* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Extensions''<span style="color:red"> &nbsp;>&nbsp; </span>''Ajouter''<span style="color:red"> &nbsp;>&nbsp; </span>"Mot clé" ''Duplicator''<span style="color:red"> &nbsp;>&nbsp; </span>''Installer''.</span>
* <span style="font-family:Courier New;">On entre les informations demandées.<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-233-ExtTheme-F.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-232-ExtTheme-E.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Activer''.</span>
* <span style="font-family:Courier New;">L'extension Duplicator est installée et activée.</span>
<br clear=all>

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

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

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Ajuster selon l'<span style="color:DarkMagenta">i-bay</span> utilisée.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...
4 drwxr<span style="color:red">w</span>s--- 5 admin shared 4096 10 oct. 13:54 <span style="color:red">wp-content</span>

4 drwxr<span style="color:red">w</span>s--- 3 admin shared 4096 10 oct. 13:54 <span style="color:red">wp-snapshots</span>
...

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Il faut que le groupe ait le droit d'écriture ''<span style="color:red">(w)</span>'' dans les arborescences <code>wp-content</code><code></code> et <code>wp-snapshots</code>.


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-235-ExtTheme-H.png|600px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-234-ExtTheme-G.png|200px|border]]
|}
'''Configuration'''

* <span style="font-family:Courier New;">Un nouveau menu a été créé dans le ''Tableau de bord''<span style="color:red">&nbsp; > &nbsp;</span>''Duplicator''<span style="color:red"> &nbsp;>&nbsp; </span>''Outils''.</span>
* <span style="font-family:Courier New;">- Cliquer les titres pour les dérouler.<br>- Tous les composants et paramètres de notre site sont affichés.<br><br>WordPress est à la version <span style="color:blue">4.9.8</span>.<br>PHP est bien à la version <span style="color:blue">7.1.16</span><br>MySQL est bien à la version <span style="color:blue">5.7.16</span>.<br>On peut voir la "Limite de mémoire" que nous avons définie précédemment.<br>Le <span style="color:red">Chemin du mysqldump</span> sera ajusté ci-dessous.
</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-236-ExtTheme-I.png|600px|border]]
|}
On cherche le chemin de <code>'''mysqldump<span style="color:red">57</span>'''</code>.<br>
<br>

{| style="width: 45%; background-color:#F0FFFF;" align="left"
|- style="vertical-align:bottom;font-family: Courier New;"
| <nowiki>#</nowiki> which '''mysqldump<span style="color:red">57</span>'''
<nowiki> &nbsp;</nowiki><br>
<nowiki> </nowiki>alias mysqldump57=/opt/rh/rh-mysql57/root/usr/bin/mysqldump --socket=/var/lib/mysql/mysql57.sock<br>
<span style="color:red">/opt/rh/rh-mysql57/root/usr/bin/mysqldump</span></span><br>
|}
<span style="font-family:Courier New;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>- ''Duplicator''<span style="color:red">&nbsp;&nbsp;>&nbsp;&nbsp;</span>''Réglages''<span style="color:red">&nbsp;&nbsp;>&nbsp;&nbsp;</span>onglet ''Paquets''.<br>
<nowiki>-</nowiki> "Mysqldump"<span style="color:red">&nbsp;&nbsp;>&nbsp;&nbsp;</span>"Chemin personnalisé"<span style="color:red">&nbsp;&nbsp;>&nbsp;&nbsp;</span>On entre le chemin de la commande trouvé ci-dessus: <code><span style="color:red">/opt/rh/rh-mysql57/root/usr/bin/mysqldump</span></code><br>
<nowiki>-</nowiki> ''Enregistrer les réglages du paquet''.<br></span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-238-ExtTheme-K.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-237-ExtTheme-J.png|400px|border]]
|}
* <span style="font-family:Courier New;">On s'assure du succès de l'opération.</span>
* <span style="font-family:Courier New;">Mysqldump a trouvé le chemin de la commande <code>mysqldump57</code>.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-240-ExtTheme-M.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-239-ExtTheme-L.png|400px|border]]
|}
'''Abonnement à l'infolettre'''

* <span style="font-family:Courier New;">- ''Duplicator''<span style="color:red"> &nbsp;>&nbsp; </span>''Réglages''<span style="color:red"> &nbsp;>&nbsp; </span>onglet ''À propos''<span style="color:red">&nbsp;>&nbsp;</span>"Restez dans la boucle".<br>- Entrer votre adresse courriel<span style="color:red">&nbsp; > &nbsp;</span>cochez<span style="color:red"> &nbsp;>&nbsp; </span>''Sign me up!''</span>
* <span style="font-family:Courier New;">Après avoir reçu le courriel d'abonnement, on confirme en répondant à celui-ci.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-242-Storefront-B.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-241-Storefront-A.png|300px|border]]
|}
<span id="Thème Storefront"></span>
=== Thème Storefront ===

Nous installons le thème '''Storefront''' qui est recommandé pour un site de commerce en ligne WooCommerce.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-074-Stroefront-D.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-073-Stroefront-C.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Tableau de Bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Apparence''<span style="color:red"> &nbsp;>&nbsp; </span>''Thèmes''<span style="color:red"> &nbsp;>&nbsp; </span>''Ajouter''<span style="color:red"> &nbsp;>&nbsp; </span>''Storefront''.</span>
* <span style="font-family:Courier New;">On passe la souris au-dessus du thème pour faire apparaître les boutons<span style="color:red"> &nbsp;>&nbsp; </span>''Installer''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-076-Stroefront-F.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-075-Stroefront-E.png|400px|border]]
|}
* <span style="font-family:Courier New;">On entre les informations demandées.<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
* <span style="font-family:Courier New;">On s'assure du succès de l'opération<span style="color:red"> &nbsp;>&nbsp; </span>''Activer''<span style="color:red"> &nbsp;>&nbsp; </span>On se rend sur notre site pour examiner le nouveau thème.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-243-Storefront-C.png|600px|border]]
|}
* <span style="font-family:Courier New;">Le thème a été installé et apparaît sur notre page principale.</span>
<br clear=all>
<!-- ########################################################################### -->

=== Droits, permissions et sécurité ===

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Après l'installation ou la mise à jour d'un ou plusieurs thèmes ou extensions, on exécute toujours le script <code>droits_ibay.sh</code>. Ajuster selon l'i-bay utilisée.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...

<center><span style="font-size:120%">'''Le thème Storefront est installé, activé et fonctionne correctement.'''</span></center>

= Extensions intéressantes =

=== Introduction ===

Si les fonctionnalités de WordPress ne vous suffisent pas, il est possible d’en ajouter en installant des extensions.

Il en existe des milliers et concernent les formulaires de contact, la navigation, la galerie d’images, les modules de partage… Ils peuvent s’appliquer à l’administration, au site ou aux deux.

Une extension, c’est quoi? Une extension est aussi un dossier mais, qu’on place dans <code>wp-content/plugins</code>. Elle contient principalement des fichiers PHP, mais peut aussi avoir des feuilles de style, des images, du JavaScript…

=== TinyMCE Advanced ===

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-245_ExtInteressantes-B.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-244_ExtInteressantes-A.png|300px|border]]
|}
Cette extension permet d'ajouter, de supprimer et d'organiser les boutons affichés dans la barre d'outils de l'éditeur Visual Editor. Vous pouvez configurer jusqu'à quatre lignes de boutons y compris: tailles de police, famille de polices, couleurs de texte et d'arrière-plan, tableaux, etc.

L'extension comprend 29 additions qui sont automatiquement activées ou désactivées selon les boutons que vous avez choisis. De plus, cette extension ajoute des options couramment utilisées en gardant les balises de paragraphe dans l'éditeur de texte. https://fr.wordpress.org/plugins/tinymce-advanced/.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-106-TinyMCE-D.png|350px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-246_ExtInteressantes-C.png|450px|border]]
|}
* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Extensions''<span style="color:red"> &nbsp;>&nbsp; </span>''Ajouter''<span style="color:red"> &nbsp;>&nbsp; </span>"Mot-clé" ''TinyMCE Advanced''<span style="color:red"> &nbsp;>&nbsp; </span>''Installer''.</span>
* <span style="font-family:Courier New;">Entrer les informations demandées.<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-249_ExtInteressantes-F.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-248_ExtInteressantes-E.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Activer''.</span>
* <span style="font-family:Courier New;">L'extension est installée et activée.</span>
<br clear=all>

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

'''''Droits et permissions'''''

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Après l’installation d’une nouvelle extension, on ajuste les droits et permissions. On exécute le script <code>droits_ibay.sh</code>.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...


'''Configuration'''

''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Réglages''<span style="color:red"> &nbsp;>&nbsp; </span>''TinyMCE Advanced''.

Cliquer et glisser les boutons désirés sur les barres de menu.

[[Image:SME-101.05A-109-TinyMCE-G.png|top|center|800px|border]]

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-111-TinyMCE-I.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-110-TinyMCE-H.png|400px|border]]
|}
* <span style="font-family:Courier New;">Cliquer/glisser et organiser les menus selon l'ordre désiré.</span>
* <span style="font-family:Courier New;">Cocher les options désirées.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-113-TinyMCE-K.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-112-TinyMCE-J.png|400px|border]]
|}
* <span style="font-family:Courier New;">Cocher les options désirées.<br>[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Pour l'ajout de CSS et d'un Thème enfant, voir le chapitre [[#CSS et Thème enfant]].</span>
* <span style="font-family:Courier New;">- On peut importer/exporter les réglages.<br>- ''Sauvegarder les changements''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-115-TinyMCE-M.png|550px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-114-TinyMCE-L.png|250px|border]]
|}
* <span style="font-family:Courier New;">- ''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Pages''<span style="color:red"> &nbsp;>&nbsp; </span>''Ajouter''.<br>- Cliquer l'icône ''Ouvrir/fermer la barre d'outils''.</span>
* <span style="font-family:Courier New;">Les nouveaux boutons apparaissent.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-118-Exclude-C.png|295px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-253-ExcludePages-B.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-252-ExcludePages-A.png|230px|border]]
|}
=== Exclude Pages From Menu ===

https://fr.wordpress.org/plugins/exclude-pages-from-menu/.

*Cette extension ajoute une case à cocher, “Exclude this page from menu”.
* Cette case n'est pas cochée par défaut. Si on coche la case, la page n'apparaîtra pas dans aucune des listes de pages <u>dans le menu de navigation du site</u>.
* ''Référence'': [https://fr.wordpress.org/plugins/exclude-pages-from-menu/ https://fr.wordpress.org/plugins/exclude-pages-from-menu/].<br>Lors de la création d’une page, celle-ci est automatiquement ajoutée au menu de navigation du site. Si vous ne souhaitez pas qu’elle y soit ajoutée, il est possible de le faire à l'aide de “Exclude Pages From Menu”. Dans la colonne de droite, lors de la création de la page ou lors de sa modification, il suffit de cocher la case dans le bloc “Exclude pages from menu”.
<br clear=all>
<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-120-Exclude-E.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-254-ExcludePages-C.png|500px|border]]
|}
'''Installation'''

* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Extensions''<span style="color:red"> &nbsp;>&nbsp; </span>''Ajouter''<span style="color:red"> &nbsp;>&nbsp; </span>"Mot-clé" ''Exclude Pages''<span style="color:red"> &nbsp;>&nbsp; </span>''Installer''.</span>
* <span style="font-family:Courier New;">Entrer les informations demandées.<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-256-ExcludePages-E.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-255-ExcludePages-D.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Activer''.</span>
* <span style="font-family:Courier New;">L'extension est installée et activée.</span>
<br clear=all>

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

'''''Droits et permissions'''''

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Après l’installation d’une nouvelle extension, on ajuste les droits et permissions. On exécute le script <code>droits_ibay.sh</code>.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-124-Exclude-I.png|450px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-123-Exclude-H.png|350px|border]]
|}
'''Usage'''

* <span style="font-family:Courier New;">"Page d'exemple" est visible sur la barre du menu du site.</span>
* <span style="font-family:Courier New;">- ''Pages''<span style="color:red"> &nbsp;>&nbsp; </span>''Toutes les pages''.<br>- On survole le titre de la page avec la souris.<br>- ''Modifier''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-127-Exclude-L.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-126-Exclude-K.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-125-Exclude-J.png|275px|border]]
|}
* <span style="font-family:Courier New;">On coche "Exclude this page from menu".</span>
* <span style="font-family:Courier New;">En haut à droite, ''Mettre à jour''.</span>
* <span style="font-family:Courier New;">Le titre de la page d'exemple n'apparaît plus sur la barre du menu principal.</span>
<br clear=all>
<!-- ########################################################################### -->

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-258-BrokenLink-B.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-257-BrokenLink-A.png|300px|border]]
|}
=== Broken Link Checker ===

''Référence'': [https://fr.wordpress.org/plugins/broken-link-checker/ https://fr.wordpress.org/plugins/broken-link-checker/].

Cette extension va scruter vos articles, commentaires et autres contenus à la recherche de liens cassés et d'images manquantes; elle vous notifiera si elle en trouve.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-131-BLC-D.png|250px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-259-BrokenLink-C.png|550px|border]]
|}
* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Extensions''<span style="color:red"> &nbsp;>&nbsp; </span>Ajouter<span style="color:red"> &nbsp;>&nbsp; </span>"Mot-clé" ''Broken Link Checker''<span style="color:red"> &nbsp;>&nbsp; </span>''Installer''.</span>
* <span style="font-family:Courier New;">Entrer les informations demandées.<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-261-BrokenLink-E.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-260-BrokenLink-D.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Activer''.</span>
* <span style="font-family:Courier New;">L'extension est installée et activée.</span>
<br clear=all>

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

'''''Droits et permissions'''''

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Après l’installation d’une nouvelle extension, on ajuste les droits et permissions. On exécute le script <code>droits_ibay.sh</code>.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-135-BLC-H.png|500px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-134-BLC-G.png|300px|border]]
|}
'''Configuration'''

* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Extensions''<span style="color:red"> &nbsp;>&nbsp; </span>''Extensions installées''<span style="color:red"> &nbsp;>&nbsp; </span>"Broken Link Checker"<span style="color:red"> &nbsp;>&nbsp; </span>''Réglages''.</span>
* <span style="font-family:Courier New;">- ''Onglet Général''<span style="color:red"> &nbsp;>&nbsp; </span>Ajuster selon ses choix.<br>- ''Enregistrer les modifications''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-137-BLC-J.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-136-BLC-I.png|400px|border]]
|}
* <span style="font-family:Courier New;">- ''Onglet Rechercher des liens dans''.<br>- Ajuster selon ses choix.<br>- ''Enregistrer les modifications''.</span>
* <span style="font-family:Courier New;">- Onglet ''Quels liens vérifier''.<br>- Ajuster selon ses choix.<br>- ''Enregistrer les modifications''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-139-BLC-L.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-138-BLC-K.png|400px|border]]
|}
* <span style="font-family:Courier New;">- Onglet ''Protocoles & APIs''.<br>- Ajuster selon ses choix.<br>- ''Enregistrer les modifications''.</span>
* <span style="font-family:Courier New;">- Onglet ''Options avancées''.<br>- ''Ajuster selon ses choix''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-140-BLC-M.png|600px|border]]
|}
* <span style="font-family:Courier New;">Ajuster selon ses choix.<br>''Enregistrer les modifications''.</span>
<br clear=all>

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

=== Recommandations ===

Toujours examiner la moyenne des étoiles, le nombre de traductions, l'historique des téléchargements et la date de la dernière mise à jour.

{| style="width: 90%; background-color:#ffffff;" align="center"
|- style="vertical-align:top;"
|[[Image:SME-101.05A-141-Recommandations-A.png|center|top|250px|border]]
||[[Image:SME-101.05A-142-Recommandations-B.png|center|top|250px|border]]
||[[Image:SME-101.05A-143-Recommandations-C.png|center|top|250px|border]]
||[[Image:SME-101.05A-144-Recommandations-D.png|center|top|250px|border]]
|}

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-146-Recommandations-F-2.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-145-Recommandations-E.png|500px|border]]
|}
* <span style="font-family:Courier New;">Une autre bonne indication est le temps entre les demandes d'aide dans le forum de l'extension et surtout le nombre de réponses.</span>
* <span style="font-family:Courier New;">On peut aussi googler les "reviews" de l'extension.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-148-CF7-B.png|275px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-262-ContactForm7-A.png|325px|border]]
|}
=== Contact Form 7 ===

''Référence'': [https://fr-ca.wordpress.org/plugins/contact-form-7/ https://fr-ca.wordpress.org/plugins/contact-form-7/].

Contact Form 7 permet la création d’une page de contact qui affichera un formulaire permettant aux personnes désireuses de nous contacter de le faire le plus simplement possible.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-120-Exclude-E.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-149-CF7-C.png|500px|border]]
|}
* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Extensions''<span style="color:red"> &nbsp;>&nbsp; </span>''Ajouter''<span style="color:red"> &nbsp;>&nbsp; </span>"Mot-clé" ''Contact Form 7''<span style="color:red"> &nbsp;>&nbsp; </span>''Installer''.</span>
* <span style="font-family:Courier New;">Entrer les informations demandées.<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-266-ContactForm7-E.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-150-CF7-D.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Activer''.</span>
* <span style="font-family:Courier New;">L'extension est installée et activée.</span>
<br clear=all>

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

'''''Droits et permissions'''''

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Après l’installation d’une nouvelle extension, on ajuste les droits et permissions. On exécute le script <code>droits_ibay.sh</code>.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-154-CF7-H.png|400px|border]]<br>
<br>

[[Image:SME-101.05A-155-CF7-I.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-267-ContactForm7-F.png|400px|border]]<br>

[[Image:SME-101.05A-153-CF7-G.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Contact''<span style="color:red"> &nbsp;>&nbsp; </span>''Créer un formulaire''<span style="color:red"> &nbsp;>&nbsp; </span>Onglet ''Formulaire''<span style="color:red"> &nbsp;>&nbsp; </span>Entrer les informations requises<span style="color:red"> &nbsp;>&nbsp; </span>''Enregistrer''.</span>
* <span style="font-family:Courier New;">On s'assure que le "Formulaire de contact" a bien été créé.</span>
* <span style="font-family:Courier New;">- Onglet ''E-mail''.<br>- Entrer les informations requises.<br>- Modifier l'<u>anglolâtrie aplaventriste</u> "email" pour le terme québécois pour courrier électronique, c.-à-d. '''''courriel'''''.<br>- ''Enregistrer''.</span>
* <span style="font-family:Courier New;">On s'assure que le "Formulaire de contact" a bien été sauvegardé.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-157-CF7-K.png|400px|border]]<br>

[[Image:SME-101.05A-158-CF7-L.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-156-CF7-J.png|400px|border]]
|}
* <span style="font-family:Courier New;">- Onglet ''Messages''.<br>- Corriger la sémantique, si nécessaire.<br>- ''Sauvegarder''.</span>
* <span style="font-family:Courier New;">S'assurer que le formulaire a bien été sauvegardé.</span>
* <span style="font-family:Courier New;">Le code court de ce formulaire est: <code>[contact-form-7 id="12" title="Contacter le webmestre"]</code>.</span>


<span style="font-family:Courier New;">C'est cette ligne de code <code>[contact-form-7 id="12" title="Contacter le webmestre"]</code> qu'il faut entrer sur une page pour qu'elle affiche ce formulaire de contact.</span>

<span style="font-family:Courier New;">Le numéro d'identification <code>id="12"</code> peut être différent selon le cas.</span>
<br clear=all>

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

'''Page pour le formulaire de contact'''

On crée une page pour afficher le formulaire ''(on peut utiliser le même nom pour le formulaire et la page)''.

[[Image:SME-101.05A-159-CF7-M.png|top|center|800px|border]]

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-161-CF7-O.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-160-CF7-N.png|400px|border]]
|}
* <span style="font-family:Courier New;">Après la publication, cliquer ''Prévisualiser les modifications'' pour afficher le formulaire.</span>
* <span style="font-family:Courier New;">Le formulaire s'affiche.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-269-MaxButtons-B.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-268-MaxButtons-A.png|300px|border]]
|}
=== MaxButtons ===

''Référence'': [https://fr.wordpress.org/plugins/maxbuttons/ https://fr.wordpress.org/plugins/maxbuttons/].

MaxButtons est l'une des extensions de WordPress les plus utilisés pour créer et gérer les boutons d'un site. Cette extension crée des boutons de liens sur n'importe quelle page de votre site et peut les faire pointer vers les sites de partage social tel Facebook, Twitter, etc.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-165-MaxButtons-D.png|300px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-270-MaxButtons-C.png|500px|border]]
|}
'''Installation'''

* <span style="font-family:Courier New;">''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Extensions''<span style="color:red"> &nbsp;>&nbsp; </span>''Ajouter''<span style="color:red"> &nbsp;>&nbsp; </span>"Mot-clé" ''MaxButtons''<span style="color:red"> &nbsp;>&nbsp; </span>''Installer''.</span>
* <span style="font-family:Courier New;">Entrer les informations demandées.<span style="color:red"> &nbsp;>&nbsp; </span>''Continuer''.</span>
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-272-MaxButtons-E.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-271-MaxButtons-D.png|400px|border]]
|}
* <span style="font-family:Courier New;">''Activer''.</span>
* <span style="font-family:Courier New;">L'extension est installée et activée.</span>
<br clear=all>

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

'''''Droits et permissions'''''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Après l’installation d’une nouvelle extension, on ajuste les droits et permissions. On exécute le script droits_ibay.sh.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...

= Conditions d'utilisation =

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Il est préférable d'avoir une page énonçant les conditions d'utilisation de notre site.

=== Création de la page des conditions d'utilisation ===

''Tableau de bord''<span style="color:red"> &nbsp;>&nbsp; </span>''Pages''<span style="color:red"> &nbsp;>&nbsp; </span>''Ajouter''<span style="color:red"> &nbsp;>&nbsp; </span>on écrit notre page<span style="color:red"> &nbsp;>&nbsp; </span>''Publier''.

[[Image:SME-101.05A-168-CondUtilisation-A.png|top|center|800px|border]]


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-169-CondUtilisation-B.png|550px|border]]
|}
* <span style="font-family:Courier New;">On vérifie notre page en cliquant ''Prévisualiser les modifications''. On peut aussi cliquer l'onglet ''Conditions d'utilisation'' sur le menu principal du site.</span>
<br clear=all>

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

<span id="CSS et Thème enfant"></span>
= CSS et Thème enfant =

Nous allons modifier l'apparence de notre site en utilisant un Thème enfant et les feuilles de style en cascade.


'''CSS'''

''Référence'': [https://fr.wikipedia.org/wiki/Feuilles_de_style_en_cascade https://fr.wikipedia.org/wiki/Feuilles_de_style_en_cascade].

Les feuilles de style en cascade, généralement appelées CSS de l'anglais Cascading Style Sheets, forment un langage informatique qui décrit la présentation des documents HTML et XML. Les standards définissant CSS sont publiés par le World Wide Web Consortium ''(W3C)''. Introduit au milieu des années 1990, CSS devient couramment utilisé dans la conception de sites Web et est bien pris en charge par les navigateurs Web dans les années 2000.


'''Thème enfant'''

''Référence'': [https://codex.wordpress.org/fr:Thèmes_Enfant https://codex.wordpress.org/fr:Th%C3%A8mes_Enfant].

Un Thème enfant WordPress est un thème qui hérite des fonctionnalités d'un autre thème, appelé Thème parent. Le Thème enfant est la méthode recommandée pour modifier un thème existant.


'''''Pourquoi utiliser un Thème enfant?'''''

Il existe quelques raisons qui pourraient vous motiver à utiliser un Thème enfant:

* Si vous modifiez un thème existant et qu'il était mis à jour, vos modifications seraient perdues.
* Utiliser un Thème enfant vous assure que vos modifications seront préservées.
* Utiliser un Thème enfant accélère le temps de développement.
* Utiliser un Thème enfant est une excellente façon d'apprendre à développer un thème WordPress.


=== Création d'un Thème enfant pour Storefront ===

''Référence'': [https://codex.wordpress.org/fr:Thèmes_Enfant https://codex.wordpress.org/fr:Th%C3%A8mes_Enfant].

Un thème enfant est composé d'au moins un répertoire ''(le répertoire du thème enfant)'' et de deux fichiers obligatoires: <code>style.css</code> et <code>functions.php</code>.


'''Répertoire du Thème enfant'''

La première étape dans la création d'un Thème enfant est de créer le répertoire du Thème enfant dans <code>wp-content/themes</code>. Il est recommandé ''(mais non nécessaire, surtout si vous créez un thème pour un usage public)'' d'accoler <code>-enfant</code> à la fin du nom du répertoire du Thème enfant en s'assurant qu'il n'y ait pas d'espaces ni de caractère accentués dans le nom qui pourrait entraîner des erreurs. Nous allons appeler notre Thème enfant <code>storefront-enfant</code> qui indique que le Thème parent est le thème Storefront.

On se rend dans le répertoire des thèmes.
# cd /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/wp-content/themes/


On crée le répertoire pour le Thème enfant.
# mkdir storefront-enfant

On vérifie.
# ls -alsd storefront-enfant/

4 drwxr-sr-x 2 root shared 4096 11 oct. 16:50 <span style="color:red">storefront-enfant/</span>

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;Nous ajusterons les droits une fois le Thème enfant terminé.


'''Fichier style.css'''

L'étape suivante consiste à créer la feuille de styles <code>style.css</code> pour le Thème enfant. La feuille de styles doit absolument commencer par les lignes suivantes:

{| class="wikitable" style="width: 100%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
<nowiki> </nowiki>/*<br>
<nowiki> </nowiki>&nbsp;Theme Name: Storefront Enfant<br>
<nowiki> </nowiki>&nbsp;Theme URI: http://www.micronator-101.com/<br>
<nowiki> </nowiki>&nbsp;Description: Storefront Enfant<br>
<nowiki> </nowiki>&nbsp;Author: Michel-André // 2018-03-28_11h45<br>
<nowiki> </nowiki>&nbsp;Author URI: http://www.micronator.org/affaires/<br>
<nowiki> </nowiki>&nbsp;<span style="color:red">Template</span>: storefront<br>
<nowiki> </nowiki>&nbsp;Version: 0.0.1
<nowiki> </nowiki>&nbsp;License: Licence publique generale GNU, Version 3, 29 June 2007<br>
<nowiki> </nowiki>&nbsp;License URI: http://www.gnu.org/licenses/gpl-3.0.fr.html<br>
<nowiki> </nowiki>&nbsp;Tags: Pied de page différent<br>
<nowiki> </nowiki>&nbsp;Text Domain: storefront-enfant<br>
<nowiki> </nowiki><nowiki>*/</nowiki>
|}

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Il ne faut pas mettre d'espace avant le signe ":" pour les noms des champs dans l'en-tête comme on le fait habituellement en français sans quoi, cela risque de poser problème.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;La ligne ''Template'' correspond au nom du répertoire du Thème parent. Le Thème parent dans notre exemple est le thème ''Storefront'', de sorte que la variable de Template est storefront. On peut travailler avec un thème différent donc, adapter en conséquence.


On crée le fichier <code>style.css</code> dans le répertoire du Thème enfant.

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

cat > storefront-enfant/style.css <<'EOT'
/*
Theme Name: Storefront Enfant
Theme URI: http://www.micronator-101.com/
Description: Storefront Enfant
Author: Michel-André // 2018-03-28_11h45
Author URI: http://www.micronator.org/affaires/
Template: storefront
Version: 0.0.1
License: Licence publique generale GNU, Version 3, 29 June 2007
License URI: http://www.gnu.org/licenses/gpl-3.0.fr.html
Tags: Pied de page différent
Text Domain: storefront-enfant
<nowiki>*/</nowiki>

EOT


On vérifie.
# cat storefront-enfant/style.css

<span style="color:red">/*</span>
Theme Name: Storefront Enfant
Theme URI: http://www.micronator-101.com/
Description: Storefront Enfant
Author: Michel-André // 2018-03-28_11h45
Author URI: http://www.micronator.org/affaires/
Template: storefront
Version: 0.0.1
License: Licence publique generale GNU, Version 3, 29 June 2007
License URI: http://www.gnu.org/licenses/gpl-3.0.fr.html
Tags: Pied de page différent
Text Domain: storefront-enfant
<nowiki>*/</nowiki>

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Il n'y a pas de ligne vide au dessus de <span style="color:red">/*</span>. Ci-dessus, nous avons inséré une ligne vide pour faciliter la copie de la commande.


'''Fichier functions.php'''

Le seul fichier réellement requis pour un Thème enfant est <code>style.css</code> mais, le fichier <code>functions.php</code> est nécessaire pour mettre correctement les styles en file d'attente.

La dernière étape consiste à mettre en file d'attente les feuilles de style ''parent'' et ''enfant''. La méthode anciennement utilisée était d'importer la feuille de style du Thème parent utilisant <code>@import:</code>. <u>Ce n'est plus la meilleure pratique</u>.

La méthode "moderne" est d'utiliser <code>wp_enqueue_script()</code> dans le fichier <code>functions.php</code> du Thème enfant.

La première ligne du fichier <code>functions.php</code> du Thème enfant sera la balise d'ouverture de PHP <code><span style="color:red"><?php</span></code>. Après quoi, on pourra mettre en file d'attente les feuilles de style du Thème parent et du Thème enfant.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Si votre thème avait plus d'un fichier <code>.css</code> ''(c.-à-d. <code>style.css</code>, <code>toto.css</code> et <code>titi.css</code>)'', on devrait s'assurer de maintenir toutes les dépendances du Thème parent. Configurer le 'style-parent' comme une dépendance veillera à ce que les chargements des feuilles de styles du Thème enfant se fassent correctement.

Si le Thème parent ne contenait qu'un seul fichier de style, on utiliserait le fichier <code>functions.php</code> suivant.

{| class="wikitable" style="width: 100%; background-color:#FFEED9;"
|- style="vertical-align:top;font-family: Courier New;"
|
&nbsp;<span style="color:red"><?php</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function theme_enqueue_styles() {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );<br>
&nbsp;?>
|}

Vérification du nombre de fichiers de styles dans le Thème parent.
# ls -als storefront/*.css

40 -rw-rw---- 1 admin shared 39886 11 oct. 15:09 storefront/<span style="color:red">style.css</span>
40 -rw-rw---- 1 admin shared 39877 11 oct. 15:09 storefront/<span style="color:red">style-rtl.css</span>

Il existe deux fichiers de styles dans le Thème parent Storefront.

Il faut donc deux fonctions dans le fichier <code>functions.php</code>: une pour <code>style.css</code> et une autre pour <code>style-rtl.css</code>.


On crée le fichier <code>functions.php</code>.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.
cat > storefront-enfant/functions.php <<'EOT'
<?php
// Etiquette d'ouverture de PHP
// Ce script va charger les feuilles de styles du Theme parent (Storefront).

function theme_name_parent_styles() {
// Mettre en file d'attente le fichier <span style="color:red">style.css</span>
wp_enqueue_style( 'theme-name-parent-style', get_template_directory_uri() . '<span style="color:blue">/style.css</span>', array(), '0.1', 'all' );

// Mettre en file d'attente le fichier <span style="color:red">style-rtl.css</span>
if ( is_rtl() ) {
wp_enqueue_style( 'theme-name-parent-style-style-rtl.css', get_template_directory_uri() . '<span style="color:blue">/style-rtl.css</span>', array(), '0.1', 'all' );
}
}
add_action( 'wp_enqueue_scripts', 'theme_name_parent_styles' );

?>

EOT


On vérifie.
# cat storefront-enfant/functions.php

<span style="color:red"><?php</span>
// Etiquette d'ouverture de PHP
// Ce script va charger les feuilles de styles du Theme parent (Storefront).

function theme_name_parent_styles() {
// Mettre en file d'attente le fichier <span style="color:red">style.css</span>
wp_enqueue_style( 'theme-name-parent-style', get_template_directory_uri() . '<span style="color:blue">/style.css</span>', array(), '0.1', 'all' );

// Mettre en file d'attente le fichier <span style="color:red">style-rtl.css</span>
if ( is_rtl() ) {
wp_enqueue_style( 'theme-name-parent-style-style-rtl.css', get_template_directory_uri() . '<span style="color:blue">/style-rtl.css</span>', array(), '0.1', 'all' );
}
}
add_action( 'wp_enqueue_scripts', 'theme_name_parent_styles' );

?>

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Il n'y a pas de ligne vide au dessus de <code><span style="color:red"><?php</span></code>. Ci-dessus, nous avons inséré une ligne vide pour faciliter la copie de la commande.


'''Fichier screenshot.png'''

''Référence'': [https://codex.wordpress.org/Theme_Development https://codex.wordpress.org/Theme_Development].

On peut créer une image pour le Thème enfant. L'image doit être nommée <code>screenshot.png</code> et doit être placée dans le répertoire du Thème enfant. Elle doit afficher avec précision la conception du thème et être enregistrée au format <code>png</code>. La taille d'image recommandée est <span style="color:red">1200x900</span>. Elle ne sera affichée que sous <span style="color:red">387x290</span> mais ainsi, la grandeur d'origine permettra une visualisation haute résolution sur les affichages HiDPI.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Optionnellement, <code>.jpg</code>, <code>.jpeg</code> et <code>.gif</code> sont également des extensions et des formats de fichier valides ''(bien que non recommandés)''.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;On copie le fichier de l'image dans le répertoire du Thème enfant et on active ce dernier.

{| style="width: 90%; background-color:#ffffff;" align="center"
|- style="vertical-align:top;"
|[[Image:SME-101.05A-170-ThemeEnfant-A.png|center|top|325px|border]]
||[[Image:SME-101.05A-171-ThemeEnfant-B.png|center|top|325px|border]]
||[[Image:SME-101.05A-172-ThemeEnfant-C.png|center|top|325px|border]]
|}


'''Droits et permissions'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Nous avons ajouté de nouveaux fichiers, on ajuste les droits et permissions. On exécute le script <code>droits_ibay.sh</code>.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...

On est maintenant prêt pour modifier certaines déclarations CSS de notre site.


=== Pied de page ===

Le fichier qui affiche le pied de page est <code>footer.php</code>.

Nous allons copier le fichier <code>footer.php</code> du Thème parent dans le répertoire du Thème enfant pour pouvoir le modifier afin qu'il affiche les informations à propos de notre site tel que ci-dessous.

Pied de page original.

[[Image:SME-101.05A-174-PiedDePage-B.png|top|center|800px|border]]


Pied de page après les modifications.

[[Image:SME-101.05A-173-PiedDePage-A.png|top|center|800px|border]]

'''Logo'''

On s'assure que nous sommes toujours dans le répertoire des thèmes.
# pwd

/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/<span style="color:red">wp-content/themes</span>


On crée le répertoire [<span style="color:DarkMagenta">répertoire-racine-du-site-WordPress</span>]<span style="color:red">/Ut/Images/Logo</span> pour y stocker certaines images relatives à notre société.
# mkdir -p /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html<span style="color:red">/Ut/Images/Logo</span>


On vérifie.
# ls -alsd /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/Ut/Images/Logo/

4 drwxr-sr-x 2 root shared 4096 11 oct. 17:07 /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html<span style="color:red">/Ut/Images/Logo/</span>


[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;On téléverse notre logo, à l'aide de WinSCP ou de FileZilla, dans le répertoire: <code>/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/Ut/Images/Logo/</code>.

On vérifie le téléversement.
# ls -als ../../Ut/Images/Logo/</span><span style="color:DarkMagenta">logo_RF-232_transparent_BT.png</span>

20 -rw-r----- 1 admin shared 16544 28 mars 12:06 ../..<span style="color:red">/Ut/Images/Logo/</span><span style="color:DarkMagenta">logo_RF-232_transparent_BT.png</span>


'''Fichier footer.php'''

Copie du fichier <code>footer.php</code> dans le répertoire du Thème enfant.
# cp storefront/footer.php storefront-enfant/


On vérifie.
# ls -ls storefront-enfant/footer.php

4 -rw-r----- 1 root shared 734 28 mars 12:12 storefront-enfant/<span style="color:red">footer.php</span>


On affiche le fichier <code>footer.php</code>.
# cat storefront-enfant/footer.php

<?php
/**
<nowiki>* The template for displaying the footer.</nowiki>
<nowiki>*</nowiki>
<nowiki>* Contains the closing of the #content div and all content after</nowiki>
<nowiki>*</nowiki>
<nowiki>* @package storefront</nowiki>
<nowiki>*/</nowiki>

?>

<nowiki></div><!-- .col-full --></nowiki>
<nowiki></div><!-- #content --></nowiki>

<nowiki><?php do_action( 'storefront_before_footer' ); ?></nowiki>

<span style="color:red"><nowiki><footer id="colophon" class="site-footer" role="contentinfo"></nowiki></span>
<span style="color:red"><nowiki><div class="col-full"></nowiki></span>

<span style="color:red"><?php</span>
<span style="color:red">/**</span>
<span style="color:red"><nowiki>* Functions hooked in to storefront_footer action</nowiki></span>
<span style="color:red"><nowiki>*</nowiki></span>
<span style="color:red"><nowiki>* @hooked storefront_footer_widgets - 10</nowiki></span>
<span style="color:red"><nowiki>* @hooked storefront_credit </nowiki> - 20</span>
<span style="color:red"><nowiki>*/</nowiki></span>
<span style="color:red"><nowiki>do_action( 'storefront_footer' ); ?></nowiki></span>

<span style="color:red"><nowiki></div><!-- .col-full --></nowiki></span>
<span style="color:red"><nowiki></footer><!-- #colophon --></nowiki></span>

<nowiki><?php do_action( 'storefront_after_footer' ); ?></nowiki>

<nowiki></div><!-- #page --></nowiki>

<nowiki><?php wp_footer(); ?></nowiki>

<nowiki></body></nowiki>
<nowiki></html></nowiki>


[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Nous remplaçons le texte en <span style="color:red">rouge</span> ci-dessus par celui en <span style="color:DarkGreen">'''vert'''</span> et en <span style="color:DarkMagenta">'''magenta'''</span> ci-dessous.


On vérifie.
# cat storefront-enfant/footer.php

<?php
/**
<nowiki>* The template for displaying the footer.</nowiki>
<nowiki>*</nowiki>
<nowiki>* Contains the closing of the #content div and all content after</nowiki>
<nowiki>*</nowiki>
<nowiki>* @package storefront</nowiki>
<nowiki>*/</nowiki>

?>

<nowiki></div><!-- .col-full --></nowiki>
<nowiki></div><!-- #content --></nowiki>

<nowiki><?php do_action( 'storefront_before_footer' ); ?></nowiki>

<span style="color:DarkGreen"><nowiki><?php //Displaying footer logo ?></nowiki></span>
<span style="color:DarkGreen"><nowiki><!-- #DEBUT - MODIFICATION DU PIED DE PAGE --></nowiki></span>
<span style="color:DarkGreen"><nowiki><!-- Trait horizontal de séparation --></nowiki></span>
<span style="color:DarkMagenta"><nowiki><hr style="width:75%; margin: 0 auto;"></nowiki></span>
<span style="color:DarkMagenta"><nowiki><br /></nowiki></span>

<span style="color:DarkGreen"><nowiki><!-- Première ligne --></nowiki></span>
<span style="color:DarkMagenta"><nowiki><div align="center"></nowiki></span>
<span style="color:DarkMagenta"><nowiki><?php _e( 'Copyright'); ?> &copy;</nowiki></span>
<span style="color:DarkMagenta"><nowiki><?php echo date("Y"); ?> &nbsp;&nbsp;&nbsp;&nbsp;</nowiki></span>
<span style="color:DarkMagenta"><nowiki><?php _e( 'Tous droits réservés'); ?> &nbsp;&nbsp;&nbsp;&nbsp;</nowiki></span>
<span style="color:DarkMagenta"><nowiki><span><?php bloginfo('name')?></span> &nbsp;&nbsp;&nbsp;&nbsp;</nowiki></span>
<span style="color:DarkMagenta"><nowiki><em></nowiki></span>
<span style="color:DarkMagenta"><nowiki><a href="/conditions-dutilisation"</nowiki></span>
<span style="color:DarkMagenta"><nowiki>style="text-decoration: underline; color: #0000ff;"</nowiki></span>
<span style="color:DarkMagenta"><nowiki>target="_blank"</nowiki></span>
<span style="color:DarkMagenta"><nowiki>title="Conditions d'Utilisation">Conditions d'utilisation</a></nowiki></span>
<span style="color:DarkMagenta"><nowiki>&nbsp;&nbsp;&nbsp;&nbsp;</nowiki></span>
<span style="color:DarkMagenta"><nowiki></em></nowiki></span>
<span style="color:DarkMagenta"><nowiki></div> <br /></nowiki></span>

<span style="color:DarkGreen"><nowiki><!-- Deuxième ligne --></nowiki></span>
<span style="color:DarkMagenta"><nowiki><div align="center"></nowiki></span>

<span style="color:DarkMagenta"><nowiki><a href="http://www.micronator.org/affaires/"</nowiki></span>
<span style="color:DarkMagenta"><nowiki>target="_blank"</nowiki></span>
<span style="color:DarkMagenta"><nowiki>title="Votre design alternatif GPL"></nowiki></span>
<span style="color:DarkMagenta"><nowiki><img style="vertical-align:middle"</nowiki></span>
<span style="color:DarkMagenta"><nowiki>src="/Ut/Images/Logo/</nowiki></span><span style="color:red">logo_RF-232_transparent_BT.png</span>"
<span style="color:DarkMagenta"><nowiki>alt="Documentation GFDL & design GPL"</nowiki></span>
<span style="color:DarkMagenta"><nowiki>width="67" height="25"</nowiki></span>
<span style="color:DarkMagenta"><nowiki>align="middle"></nowiki></span>
<span style="color:DarkMagenta"><nowiki></a></nowiki></span>
<span style="color:DarkMagenta"><nowiki></div></br></nowiki></span>
<span style="color:DarkGreen"><nowiki><!-- #FIN - MODIFICATION DU PIED DE PAGE --></nowiki></span>

<nowiki><?php do_action( 'storefront_after_footer' ); ?></nowiki>

<nowiki></div><!-- #page --></nowiki>

<nowiki><?php wp_footer(); ?></nowiki>

<nowiki></body></nowiki>
<nowiki></html></nowiki>


Voilà, notre nouveau pied de page s'affiche tel que voulu.

[[Image:SME-101.05A-175-PiedDePage-C.png|top|center|800px|border]]


'''''Droits et permissions'''''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;On ajuste les droits et permissions pour le <u>nouveau répertoire et fichiers</u>. On exécute le script <code>droits_ibay.sh</code>.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-176-TitreDePage-A.png|600px|border]]
|}
=== Titre de page ===

* <span style="font-family:Courier New;">Voici l'affichage original du titre d'une page.</span>

On veut le titre de la page centré, une police de 1.75em ''( ± 21pt )'' et en gras.
<br clear=all>
<!-- ########################################################################### -->

On s'assure que nous sommes toujours dans le répertoire des thèmes.
# pwd

/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/<span style="color:red">wp-content/themes</span>


On ajoute ''(<span style="color:red">>></span>)'' la nouvelle déclaration ci-dessous au fichier <code>style.css</code> du Thème enfant.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Prendre tout le contenu de l'encadré pour la commande.
cat <span style="color:red">>></span> storefront-enfant/style.css <<'EOT'
/* TITRE DE LA PAGE - police 21pt, centré et gras */
.entry-title {
font-size: 1.75em;
text-align: center;
font-weight: bold !important;
}

EOT


On vérifie les 7 dernières lignes du fichier.
# tail -7 storefront-enfant/style.css

/* TITRE DE LA PAGE - police 21pt, centré et gras */
.entry-title {
font-size: 1.75em;
text-align: center;
font-weight: bold !important;
}


On affiche une page du site.

[[Image:SME-101.05A-177-TitreDePage-B.png|top|center|800px|border]]


=== Logo et slogan ===

On veut mettre notre logo et une image à la place du logo et du slogan standard.

[[Image:SME-101.05A-178-Logo-0A.png|top|center|800px]]


'''Fichier style.css'''

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

cat <span style="color:red">>></span> storefront-enfant/style.css <<'EOT'

/* LOGO ET SLOGAN DU SITE - ne pas l'afficher */
.site-header .site-branding { <span style="color:blue">display: none;</span>}

/* ARRIÈRE-PLAN DE L'EN-TÊTE - la couleur est blanche */
.site-header { <span style="color:blue">background-color: white;</span> }

/* COULEUR DE LA POLICE DU MENU - la couleur est mauve et en gras */
.main-navigation ul.menu > li > a, .main-navigation ul.nav-menu > li > a {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue">color: #96588a;</span>
font-weight: bold !important;
}

/* Pour insérer 20px au-dessus du diagramme réseau et (0px en-dessous du menu principal) */
/* Fonctionne avec la directive de l'espace au-dessus et en-dessous du menu Panier */
.site-header {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue">padding-top: 20px;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue">padding-bottom: 0;</span>
}

EOT


On vérifie.
# tail -n19 storefront-enfant/style.css

/* LOGO ET SLOGAN DU SITE - ne pas l'afficher */
.site-header .site-branding { <span style="color:blue">display: none;</span>}

/* ARRIÈRE-PLAN DE L'EN-TÊTE - la couleur est blanche */
.site-header { <span style="color:blue">background-color: white;</span> }

/* COULEUR DE LA POLICE DU MENU - la couleur est mauve et en gras */
.main-navigation ul.menu > li > a, .main-navigation ul.nav-menu > li > a {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue">color: #96588a;</span>
font-weight: bold !important;
}

/* Pour insérer 20px au-dessus du diagramme réseau et (0px en-dessous du menu principal) */
/* Fonctionne avec la directive de l'espace au-dessus et en-dessous du menu Panier */
.site-header {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue">padding-top: 20px;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue">padding-bottom: 0;</span>
}


'''Fichier functions.php'''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;On ajoute le contenu de l'encadré ci-dessus dans le fichier <code>functions.php</code> <u>'''''<span style="color:red">juste avant la dernière ligne</span>'''''</u>, celle qui contient la dernière fermeture PHP <code><span style="color:red">?></span></code>.

/* ############################################ */
/* 2018-03-29_12h43 <nowiki>*/</nowiki>
/* APPARENCE | EN-TÊTE <nowiki>*/</nowiki>
/* Pas de jeu d’images <nowiki>*/</nowiki>
/* Couleurs - En-tête actuel <nowiki>*/</nowiki>
/* Couleur d’arrière-plan: #ffffff (blanc) <nowiki>*/</nowiki>
/* Couleur du texte: #9aa0a7 <nowiki>*/</nowiki>
/* Couleur des liens: #96588a (magenta) <nowiki>*/</nowiki>
/* IMAGE D'EN-TÊTE <nowiki>*/</nowiki>
/* LOGO: /Ut/Images/EN-TETE/logo_Micronator_250x65_res_1200x1200_PPT.png <nowiki>*/</nowiki>
/* LIEN: / <nowiki>*/</nowiki>
/* IMAGE RESEAU: /Ut/Images/EN-TETE/Reseau_complet_avec_clone_PPT_800.png */
/* LIEN: aucun <nowiki>*/</nowiki>

add_action( 'storefront_header', 'jk_storefront_header_content', 40 );
function jk_storefront_header_content() {
?>
<nowiki><div></nowiki>
<nowiki><table style="text-align: center; width: 100%; "></nowiki>
<nowiki><tbody></nowiki>
<nowiki><tr></nowiki>
<nowiki><td style="width: 22%; text-align: left; vertical-align: top; padding: 0px; "><a title="Page principale" href="/"><img class="alignleft" src="/Ut/Images/EN-TETE/logo_Micronator_250x65_res_1200x1200_TB.png" alt="Page principale" width="250" height="65" /></a></td></nowiki>
<nowiki><td style="text-align: right; vertical-align: top; width: 68%; padding: 0px; "><img class="alignright" src="/Ut/Images/EN-TETE/Reseau_complet_avec_clone_TB-OK_800.png" alt="Réseau Micronator" width="800" height="162" /></td></nowiki>
<nowiki></tr></nowiki>
<nowiki></tbody></nowiki>
<nowiki></table></nowiki>
<nowiki></div></nowiki>
<nowiki><?php</nowiki>
}

<span style="color:red">?></span>


On vérifie.
# tail -33 storefront-enfant/functions.php

/* ############################################ */
/* 2018-03-29_12h43 <nowiki>*/</nowiki>
/* APPARENCE | EN-TÊTE <nowiki>*/</nowiki>
/* Pas de jeu d’images <nowiki>*/</nowiki>
/* Couleurs - En-tête actuel <nowiki>*/</nowiki>
/* Couleur d’arrière-plan: #ffffff (blanc) <nowiki>*/</nowiki>
/* Couleur du texte: #9aa0a7 <nowiki>*/</nowiki>
/* Couleur des liens: #96588a (magenta) <nowiki>*/</nowiki>
/* IMAGE D'EN-TÊTE <nowiki>*/</nowiki>
/* LOGO: /Ut/Images/EN-TETE/logo_Micronator_250x65_res_1200x1200_PPT.png <nowiki>*/</nowiki>
/* LIEN: / <nowiki>*/</nowiki>
/* IMAGE RESEAU: /Ut/Images/EN-TETE/Reseau_complet_avec_clone_PPT_800.png */
/* LIEN: aucun <nowiki>*/</nowiki>

add_action( 'storefront_header', 'jk_storefront_header_content', 40 );
function jk_storefront_header_content() {
?>
<nowiki><div></nowiki>
<nowiki><table style="text-align: center; width: 100%; "></nowiki>
<nowiki><tbody></nowiki>
<nowiki><tr></nowiki>
<nowiki><td style="width: 22%; text-align: left; vertical-align: top; padding: 0px; "><a title="Page principale" href="/"><img class="alignleft" src="/Ut/Images/EN-TETE/logo_Micronator_250x65_res_1200x1200_TB.png" alt="Page principale" width="250" height="65" /></a></td></nowiki>
<nowiki><td style="text-align: right; vertical-align: top; width: 68%; padding: 0px; "><img class="alignright" src="/Ut/Images/EN-TETE/Reseau_complet_avec_clone_TB-OK_800.png" alt="Réseau Micronator" width="800" height="162" /></td></nowiki>
<nowiki></tr></nowiki>
<nowiki></tbody></nowiki>
<nowiki></table></nowiki>
<nowiki></div></nowiki>
<nowiki><?php</nowiki>
}

<span style="color:red">?></span>


'''''Répertoire des images d'en-tête'''''

On crée le répertoire <code>Ut/Images/EN-TETE</code>.
# mkdir -p /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/Ut/Images/EN-TETE/


On vérifie.
# ls -alsd /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/Ut/Images/EN-TETE/

4 drwxr-sr-x 2 root shared 4096 11 oct. 17:22 ../../<span style="color:red">Ut/Images/EN-TETE/</span>


[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;À l'aide de WinSCP ou de FileZilla, on téléverse les images nécessaires dans le répertoire:<code>/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/Ut/Images/EN-TETE/</code>.

On vérifie.
# ls -ls /home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>/html/Ut/Images/EN-TETE/

total 144
28 -rw-r--r-- 1 root shared 26620 8 mai 2017 <span style="color:DarkMagenta">logo_Micronator_250x65_res_1200x1200_TB.png</span>
116 -rw-r--r-- 1 root shared 118312 28 mars 12:48 <span style="color:DarkMagenta">Reseau_complet_avec_clone_TB-OK_800.png</span>


'''''Droits et permissions'''''

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;On ajuste les droits et permissions. On exécute le script <code>droits_ibay.sh</code>.

# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...


Notre nouvel en-tête s'affiche tel que voulu.

[[Image:SME-101.05A-180-Logo-C.png|top|center|800px|border]]


=== Conclusion de l'utilisation du Thème enfant ===

En utilisant un Thème enfant, on peut modifier le code CSS de notre site sans craindre qu'une mise à jour écrase les modifications.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Un Thème enfant s'applique seulement lorsque le Thème parent est actif. Si on change de thème, il faudra refaire un nouveau Thème enfant pour le nouveau thème activé.


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

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

=== PHP ===

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

''Référence'': [https://wiki.contribs.org/PHP_Software_Collections#Update https://wiki.contribs.org/PHP_Software_Collections#Update].

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

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

<nowiki>============================================================================================</nowiki>
Paquet Architecture Version Dépôt Taille
<nowiki>============================================================================================</nowiki>
Mise à jour:
php54-php-pear noarch 1:1.10.4-1.el6.remi remi-safe 369 k
php54-php-pecl-zip x86_64 1.14.0-1.el6.remi remi-safe 39 k
php55-php-pear noarch 1:1.10.4-1.el6.remi remi-safe 369 k
php55-php-pecl-zip x86_64 1.14.0-1.el6.remi remi-safe 39 k
php56-php-pear noarch 1:1.10.4-1.el6.remi remi-safe 369 k
php56-php-pecl-zip x86_64 1.14.0-1.el6.remi remi-safe 39 k

Résumé de la transaction
<nowiki>============================================================================================</nowiki>
Mise à jour de 6 paquet(s)

Taille totale des téléchargements&nbsp;: 1.2 M
Téléchargement des paquets&nbsp;:
(1/6): php54-php-pear-1.10.4-1.el6.remi.noarch.rpm | 369 kB 00:01
(2/6): php54-php-pecl-zip-1.14.0-1.el6.remi.x86_64.rpm | 39 kB 00:00
...
Lancement de la transaction
Mise à jour : php54-php-pecl-zip-1.14.0-1.el6.remi.x86_64 1/12
Mise à jour : 1:php54-php-pear-1.10.4-1.el6.remi.noarch 2/12
...
Mis à jour&nbsp;:
<span style="color:red">php54</span>-php-pear.noarch 1:1.10.4-1.el6.remi php54-php-pecl-zip.x86_64 0:1.14.0-1.el6.remi
<span style="color:red">php55</span>-php-pear.noarch 1:1.10.4-1.el6.remi php55-php-pecl-zip.x86_64 0:1.14.0-1.el6.remi
<span style="color:red">php56</span>-php-pear.noarch 1:1.10.4-1.el6.remi php56-php-pecl-zip.x86_64 0:1.14.0-1.el6.remi

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

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


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

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


'''Signalisation des changements'''

[[Image:Icone-AstuceAPT.png|25px]]&nbsp;&nbsp;On peut attendre après la mise à jour de MySQL57 pour signaler les changements.

Si une mise à jour avait été installée, on la signalerait et on réamorcerait.
# signal-event post-upgrade<nowiki>; </nowiki>signal-event reboot


On vérifie certaines des mises à jour.
# rpm -qa | grep php-pecl-zip

php71-php-pecl-zip-1.14.0-1.el6.remi.x86_64
php70-php-pecl-zip-1.14.0-1.el6.remi.x86_64
php56-php-pecl-zip-<span style="color:red">1.14.0-1</span>.el6.remi.x86_64
php55-php-pecl-zip-<span style="color:red">1.14.0-1</span>.el6.remi.x86_64
php54-php-pecl-zip-<span style="color:red">1.14.0-1</span>.el6.remi.x86_64

=== MySQL57 ===

'''Lancement de la mise à jour'''
# yum update -y --enablerepo=smecontribs,centos-sclo-rh smeserver-mysql57

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

Présentement, il n'y a aucune mise à jour de disponible. S'il y en avait une, la commande ci-dessus l'installerait.


'''Signalisation des changements'''

Si une mise à jour avait été installée, on la signalerait et on réamorcerait.
# signal-event post-upgrade<nowiki>; </nowiki>signal-event reboot

= Sécurité =

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Cet exemple provient de la documentation originale de ce document mais, les principes demeurent valides.

Pour demeurer très sécuritaire, il faut exécuter le script <code>droits_ibay.sh</code> après avoir fait des mises à jour, installé de nouvelles extensions, de nouveaux thèmes ou exécuté des téléversements de divers fichiers.

On s'assure ainsi que:

* le contenu de l'i-bay qui héberge notre WordPress a le bon propriétaire, le bon groupe et surtout les bons droits.
* le groupe "other" n'a toujours aucun droit sur n'importe quel fichier ou répertoire.

[[Image:Icone-NoteAPT.png|25px]]&nbsp;&nbsp;Il n'est pas nécessaire d'exécuter <code>droits_ibay.sh</code> si on téléverse des fichiers avec ''Tableau de bord''<span style="color:red">&nbsp;&nbsp;>&nbsp;&nbsp;</span>''Medias''<span style="color:red">&nbsp;&nbsp;>&nbsp;&nbsp;</span>''Ajouter''.

=== Propriétaire et droits après l'installation d'un thème ou extension ===

Cette section démontre la justification de l'utilisation du script <code>droits_ibay.sh</code> après l'installation d'un nouveau thème ou extension.

Pour démontrer notre propos, nous allons ajouter le thème '''TwentyTen''' en suivant l'exemple de l'installation du thème '''Storefront''' au paragraphe [[#Thème Storefront]] mais, sans exécuter le script <code>droits_ibay.sh</code>.

Après l'installation du nouveau thème Twenty Ten, on utilise ''FileZilla'' ou ''WinSCP'' et on affiche le répertoire <code>wp-content/themes</code>.

<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-095-Securite-A.png|600px|border]]
|}
<nowiki>-</nowiki><nowiki></nowiki> Comme on peut le voir, le répertoire twentyten a le propriétaire <code>chargeurprim</code> au lieu d'<code>admin</code> à cause du "téléchargeur".

<nowiki>-</nowiki> [[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Les droits ne sont pas sécuritaires car "other" a le droit de lecture du répertoire <code>twentyten</code>.
<br clear=all>

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

{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-096-Securite-B.png|600px|border]]
|}
<nowiki>-</nowiki> Si nous n'avions pas utilisé le paramètre <code>Options All -Indexes</code> dans le fichier <code>.htaccess</code>, "other" pourrait entrer dans le répertoire et lire son contenu de même que celui de ses sous-répertoires si ceux-ci ne contiennent pas de fichier <code>index.xxx</code> ''(xxx représente une extension .htm, .html, .php, etc...)''

<nowiki>-</nowiki> Les droits des sous-répertoires <code>twentyten</code> ne sont pas plus sécuritaires et ils n'ont pas le bon propriétaire.
<br clear=all>
<!-- ########################################################################### -->

=== Propriétaire, groupes, droits et other ===

On demeure très sécuritaire, on exécute maintenant le script <code>droits_ibay.sh</code>.
# droits_ibay.sh <span style="color:DarkMagenta">Primary</span>

Vous avez bien spécifié l'i-bay: "/home/e-smith/files/ibays/<span style="color:DarkMagenta">Primary</span>"? o/n [o]: <span style="color:red">[Entrée]</span>
...


'''Vérification du répertoire racine de WordPress'''

Une des dernières commandes contenues dans le script <code>droits_ibay.sh</code> affiche le répertoire racine de WordPress.

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Attention particulière au fichier <code>wp-config.php</code> et au répertoire <code>wp-content</code>.

...
<nowiki>********** Répertoire racine **********</nowiki>
total 204
4 drwxr-s--- 7 admin shared 4096 6 mars 21:00 .
4 drwxr-xr-x 6 root root 4096 6 mars 21:00 ..
4 -rw-r----- 1 admin shared 1106 6 mars 19:20 .htaccess
4 -rw-r----- 1 admin shared 418 24 sept. 2013 index.php
20 -rw-r----- 1 admin shared 19935 6 mars 20:48 license.txt
4 drwxr-s--- 3 admin shared 4096 1 mars 19:33 .well-known
8 -rw-r----- 1 admin shared 5447 6 mars 20:48 wp-activate.php
4 drwxr-s--- 9 admin shared 4096 2 nov. 11:30 wp-admin
4 -rw-r----- 1 admin shared 364 19 déc. 2015 wp-blog-header.php
4 -rw-r----- 1 admin shared 1627 6 mars 20:48 wp-comments-post.php
4 -<span style="color:red">rw-r-----</span> 1 admin shared 3552 6 mars 19:18 <span style="color:red">wp-config.php</span>
4 -rw-r----- 1 admin shared 3581 6 mars 20:48 wp-config-sample.php
4 drwxr<span style="color:red">w</span>s--- 6 admin shared 4096 6 mars 21:06 <span style="color:red">wp-content</span>
4 -rw-r----- 1 admin shared 3286 24 mai 2015 wp-cron.php
12 drwxr-s--- 18 admin shared 12288 6 mars 20:48 wp-includes
4 -rw-r----- 1 admin shared 2422 6 mars 20:48 wp-links-opml.php
4 -rw-r----- 1 admin shared 3301 6 mars 20:48 wp-load.php
36 -rw-r----- 1 admin shared 33939 6 mars 20:48 wp-login.php
8 -rw-r----- 1 admin shared 8048 6 mars 20:48 wp-mail.php
16 -rw-r----- 1 admin shared 16250 6 mars 20:48 wp-settings.php
32 -rw-r----- 1 admin shared 29896 6 mars 20:48 wp-signup.php
4 drwxr<span style="color:red">w</span>s--- 3 admin shared 4096 6 mars 08h55 <span style="color:red">wp-snapshots</span>
8 -rw-r----- 1 admin shared 4513 6 mars 20:48 wp-trackback.php
4 -rw-r----- 1 admin shared 3065 6 mars 20:48 xmlrpc.php

[[Image:Icone-AsurveillerAPT.png|25px]]&nbsp;&nbsp;Le répertoire <code>wp-snapshots</code> est utilisé par Duplicator et doit avoir le droit d'écriture.


<!-- ########################################################################### -->
{| style="float: right; margin-left:0.5em ;margin-right:40px;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-097-Securite-C-2.png|400px|border]]
|}
{| style="float: right; margin-left:0.5em; margin-right:0.5em;"
|-
| style="vertical-align: top;" |[[Image:SME-101.05A-097-Securite-C.png|400px|border]]
|}
Si les images ci-dessous n'étaient pas à jour. <u>Il faudrait faire un rafraîchissement des écrans de WinSCP</u> pour visualiser les nouveaux droits.
<br clear=all>
<!-- ########################################################################### -->

= Sauvegarde du répertoire /opt =

[[Image:Icone-SeTirerDembarrasAPT.png|20px]]&nbsp;&nbsp;Dans le fichier <code>/etc/e-smith/templates-custom/etc/dar/DailyBackup.dcf/41go-into</code>, il faut ajouter le répertoire <code>/opt</code> et les liens <code>/bin/droit*</code> dans la sauvegarde standard du Serveur SME au paragraphe https://wiki.contribs.org/SME-101.04_Certificat_Let%27s_Encrypt#Sauvegarde_du_r.C3.A9pertoire_.2Fetc.2Fdehydrated.

#
# Indique à la sauvegarde d'inclure le répertoire /etc/dehydrated et tous ses
# sous-répertoires dans la sauvegarde standard.
--go-into etc/dehydrated
--go-into usr/bin/dehydrated
--go-into usr/bin/dehydrated_hooks
--go-into usr/bin/dehydrated_revoke

<span style="color:red"># Pour la sauvegarde du répertoire /opt et des liens /bin/droit*
--go-into opt
--go-into bin/droits_debut_MAJ-WP.sh
--go-into bin/droits_fin_MAJ-WP.sh
--go-into bin/droits_ibay</span>
<br>

[[Image:Odoo-11-BanniereDeLaVictoire-APT.png|caption|36px]]&nbsp;&nbsp;Victoire totale, hissons la bannière de la victoire.
<br>
<br>

----
<references/>

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

edits

Navigation menu