Exercices TP-4

  1. culture générale
    1. culture générale-1
  2. disques
    1. commande df
    2. df peripherique
    3. fdisk
    4. table de partition actuelle
    5. swap
    6. création d'une partition
    7. création d'un système de fichiers
    8. mkfs
    9. types de systèmes de fichiers et OS
    10. mount
    11. mount utilisation
    12. mount vérification
    13. umount
    14. Bilan création système fichiers
    15. Bilan création système fichiers : commande 1
    16. Bilan création système fichiers : commande 2
    17. Bilan création système fichiers : commande 3
    18. umount
    19. fstab, exemple
    20. fstab, exemple2
  3. donéées et sauvegardes - importance des données / RAID
    1. Durée de vie d'un disque dur
    2. Importance des données
    3. importance de données
    4. raid
    5. raid-5
    6. raid-5
    7. raid-5 parité
    8. raid-5 parité
    9. raid risques
  4. données et sauvegardes - copies, machines distantes
    1. transfert de données
    2. ftp non securise
    3. scp
    4. scp distant vers local
    5. scp wirehark
    6. rsync
    7. sauvegarde par duplication
    8. sauvegarde incrementale
    9. sauvegarde lourde
  5. Installation et configuration de logiciels web, utilisant une BdD
  6. Installation, configuration et utilisation de MySQL
    1. Nom de paquet, client mysql.
    2. Installation client MySQL
    3. Nom de paquet, serveur mysql
    4. Installation serveur MySQL
    5. premiers pas avec mysql
    6. Utilisation de MySql
    7. creation d'un utilisateur mysql
  7. phpMyAdmin
    1. Modules PHP
    2. php7.4-mysql
    3. Module mbstring
    4. Téléchargement de phpMyAdmin
    5. Installation de phpMyAdmin
    6. Création d'un utilisateur de la base de données.
    7. Utilisation de phpMyAdmin
  8. Wordpress
    1. Installation de Wordpress
    2. Version Worpress
    3. Début de l'installation
    4. Création de la base de données
    5. Créer un utilisateur
    6. Fin d'installation
    7. Utilisation de Wordpress
    8. Tables
    9. Table users
    10. Table user : mot de passe
    11. Post
    12. Modifier un article
    13. Ajout d'une image
    14. Droits d'accès sur le répertoire wp-content
    15. Droits d'accès
    16. Droits en écriture - modification
    17. Image déposée
    18. fin

1. culture générale

1.1 culture générale

culture générale

1.2 culture générale-1

Pour chacun des composants logiciels suivants (apache, gtk...) :
- prenez le temps de faire une recherche internet. Au minimum, visitez la page principale du logiciel en plus de sa page wikipedia.
- vérifiez que vous comprenez les grandes lignes du logiciel. A quoi il sert, comment il s'insère dans le fonctionnement du système. A quoi il pourrait vous être utile. Imaginez des scénarios d'utilisation.

2. disques

2.1 disques

Dans les questions suivantes nous allons manipuler des disques, des partitions et des systèmes de fichiers.

Voici quelques transparents du cours sur ce sujet:

disques

2.2 commande df

Quelle est la commande permettant d'afficher la quantité d'espace libre restant sur les différents disques montés sur le système?

disques

2.3 df peripherique

Sur cet ordinateur, quel est le périphérique associé au répertoire racine du système de fichiers ?

disques

2.4 fdisk

fdisk


"fdisk" est un petit utilitaire en mode texte qui permet de manipuler la table des partitions.

x

Souvenez vous, la table des partitions se trouve au tout début du disque (MBR ou GPT). Elle définit, entre autres, le début et la fin de chaque partition.

Attention: la table des partitions se trouve sur le disque (c'est à dire /dev/sda  ou /dev/nvme0n1) et pas sur une partition particulière ( comme /dev/sda1 ou /dev/nvme0n1p2)

Lancez la commande "sudo fdisk /dev/sda "  ou "sudo fdisk /dev/nvme0n1"

Appuyez sur la touche "m" pour lister les différentes options possibles.

Quelle touche permet d'afficher la table des partitions?

disques

2.5 table de partition actuelle

Combien de partitions est-ce qu'il y a actuellement sur votre disque?

disques

2.6 swap

La [ Salle P202: deuxième partition /dev/sda2)  ; Salle P203: 3e partition /dev/nvme0n1p3 ] n'était pas visible avec la commande "df". En effet, il s'agit d'une partition pour le "swap" : lorsque votre ordinateur n'a pas assez de mémoire vive, il utilise cette partition comme un "prolongement" de sa mémoire.

Swap (mémoire)

Dans un ordinateur, opération fréquente consistant à vider une portion moins utilisée des données situées en mémoire (page) et à la stoker sur le disque temporairement, permettant à d'autres données d'être traitées pendant ce temps.
Cette opération ralentie le traitement des données, mais permet de disposer d'une mémoire de traitement supérieure à la mémoire réellement disponible : la mémoire virtuelle.

Voir : http://fr.wikipedia.org/wiki/M%C3%A9moire_virtuelle#Swapping

Sur quel périphérique se trouve la partition swap de votre système?

disques

2.7 création d'une partition

Création d'une partition


"fdisk" n'écrit rien sur le MBR tant que vous n'utilisez pas la commande "w".
N'hésitez donc pas à expérimenter: en quittant ("q") vous abandonnez tous vos changements.

Si vous regardez de près, vous remarquerez qu'il reste beaucoup de place libre (non partitionné) sur votre disque.

Créez deux nouvelles partitions primaires (P202: no. 3 et 4, P203: no. 4 et 5). La (P202:  partition 3 ; P203: partition 4) fera 1Go et la suivante prendra toute la place restante.

Une fois que vous êtes 100% surs de vous, écrivez votre table de partions sur le disque avec "w".


Indications:

fdisk affiche le début et la fin de chaque partition en secteurs, ce qui n'est pas très intuitif (chaque secteur fait 512 octets)
Quand vous créez une partition, fdisk vous demande le secteur ou vous voulez qu'elle commence.
fdisk vous propose une valeur par défaut (appuyez sur entrée pour la valider).
fdisk vous demande aussi le secteur ou vous voulez qu'elle termine.
Il est souvent plus pratique de spécifier la taille avec un "+"
Par exemple: +2G pour une partition de deux gigaoctets


disques

2.8 création d'un système de fichiers

Création d'un système de fichiers


Vous venez de créer deux partitions. Pour l'instant elles ne contiennent rien : c'est juste une série d'octets disponibles. Tapez "sudo fdisk -l" pour obtenir une liste des partitions des périphériques branchés.

Dans des cas très rares, on pourrait utiliser ces partitions directement (en "brut"), mais en général on souhaite y mettre des fichiers, il nous faut donc créer un système de fichiers dessus:

Pour créer un système de fichiers on utilise la commande "mkfs -t ext4 nom-périphérique"

Quelle commande faut-il taper ?

disques

2.9 mkfs

Tapez la commande pour créer le système de fichiers:

sudo mkfs -t ext4 /dev/sda3
ou
sudo mkfs -t ext4 /dev/nvme0n1p4

disques

2.10 types de systèmes de fichiers et OS

En général, un système d'exploitation a un système de fichiers natif préféré.
(Ca ne veut pas pour autant dire qu'un système d'exploitation utilise necesairement ce système de fichier)

Faites les liens:
(en cas de doute, cherchez sur internet)

disques

2.11 mount

Quel est le nom de la commande (juste son nom) permettant d'associer un peripherique à un répertoire ?

disques

2.12 mount utilisation

Utilisation de la commande "mount"


Pour l'instant nous avons:
  1. crée une partition
  2. crée un système de fichiers sur la partition
Pour pouvoir utiliser notre système de fichiers, il faut l'associer à un répertoire.

Tapez la commande "df" et vérifiez que /dev/sda3 ou /dev/nvme0n1p4 n'est pas encore associé à aucun répertoire.

Créez un répertoire essai-mount dans /mnt  (/mnt existe déjà)

Créez un fichier dedans et vérifiez qu'il est bien là.
Ensuite, sortez de ce répertoire.

Quelle commande faut-il taper pour associer le périphérique /dev/sda3 (ou /dev/nvme0n1p4) au répertoire /mnt/essai-mount ?

disques

2.13 mount vérification

Vérification du montage


Vérifiez avec "df" que la commande mount a bien fonctionné.

Rentrez dans le répertoire /mnt/essai-mount et regardez son contenu.

Est-ce que le fichier crée toute à l'heure est là ?

disques

2.14 umount


Lorsqu'un rentre dans le repertoire /mnt/essai-mount on est redirigé vers notre système de fichiers, grace à l'association faite avec "mount".

Créez quelques fichiers et répertoires dans le nouveau système de fichiers (donc dans /mnt/essai-mount).

Umount

Pour des-associer le système de fichiers d'un répertoire, on utilise la commande "umount".

Tout en restant dans "/mnt/essai-mount" tapez la commande "umount /mnt/essai-mount".

Que se passe-il?

disques

2.15 Bilan création système fichiers

Pour résumer quelle est l'ordre des différentes étapes?

disques

2.16 Bilan création système fichiers : commande 1

Donnez le nom (uniquement le nom) de la commande permettant de créer une partition.

disques

2.17 Bilan création système fichiers : commande 2

Donnez le nom (uniquement le nom) de la commande permettant de créer un système de fichiers.

disques

2.18 Bilan création système fichiers : commande 3

Donnez le nom (uniquement le nom) de la commande permettant d'associer un périphérique (ex: partition d'un disque) à un répertoire.

disques

2.19 umount

Utilisation de umount


Il arrive souvent qu'un fichier ou répertoire soit encore en utilisation sur un péripherique que l'on veut démonter (umount). Vous devez trouver le programme (souvent un shell) coupable.

Sortez du répertoire /mnt/essai-mount puis tapez la commande "sudo umount /mnt/essai-mount"

vérifiez avec "df" que le disque n'est plus là.

rentrez dans le répertoire /mnt/essai-mount et vérifiez que son contenu (celui d'avant "mount") est bien revenu.

disques

2.20 fstab, exemple

Dans le fichier fstab suivant:


#
# /etc/fstab
#
/dev/sdb1 / ext4 defaults 1 1
/dev/sdb5 /usr ext4 defaults 1 2
/dev/sdb2 /usr/bin ext4 defaults 0 2
/dev/sdb7 /usr/local ext4 defaults 0 2
/dev/sdb6 /home ext4 defaults 1 2
/dev/sbpcd /mnt/cdrom iso9660 ro,noauto
/dev/fd0 /mnt/floppy ext4 defaults,noauto
/dev/sda1 /root/dosc msdos defaults
/dev/sdb8 /root/dosd msdos defaults
/dev/sdb3 none ignore
/dev/sdb4 none ignore
/proc /proc proc defaults
/dev/sda2 none swap sw


A quel répertoire est associé la deuxième partition se trouvant sur le deuxième disque dur sata ?

disques

2.21 fstab, exemple2

Dans le fichier fstab suivant:


#
# /etc/fstab
#
/dev/sdb1 / ext4 defaults 1 1
/dev/sdb5 /usr ext4 defaults 1 2
/dev/sdb2 /usr/bin ext4 defaults 0 2
/dev/sdb7 /usr/local ext4 defaults 0 2
/dev/sdb6 /home ext4 defaults 1 2
/dev/sbpcd /mnt/cdrom iso9660 ro,noauto
/dev/fd0 /mnt/floppy ext4 defaults,noauto
/dev/sda1 /root/dosc msdos defaults
/dev/sdb8 /root/dosd msdos defaults
/dev/sdb3 none ignore
/dev/sdb4 none ignore
/proc /proc proc defaults
/dev/sda2 none swap sw


A quel type de système de fichier est associé la première partition se trouvant sur le premier disque sata ?

3. donéées et sauvegardes - importance des données / RAID

3.1 donéées et sauvegardes - importance des données / RAID

Dans les exercices suivant nous allons travailler sur la protection et la sauvegarde des données.

Voici quelques transparents du cours:
xxxxx

donéées et sauvegardes - importance des données / RAID

3.2 Durée de vie d'un disque dur

La tête de lecture d'un disque dur vole sur un coussin d'air a un dizaine de nanomètres de la surface du disque dur (voir http://fr.wikipedia.org/wiki/Disque_dur) ... par comparaison un cheveu humain a un diamètre d'environ 100 micromètres (soit 10 000 fois plus).

Un disque standard tourne à 7200 tours par minute.

A votre avis, que se passe-il si une poussière rentre dans votre disque dur ?
A votre avis, que se passe-il si votre disque dur prend un coup lorsqu'il est en fonctionnement ?

Les fabriquants de disque dur donnent des durées de vie de leurs disques durs de l'ordre de 3 à 5 ans. Et des garanties de l'ordre de 1 à 3 ans.

Sur des serveurs très sollicités, il arrive de devoir changer des disques tous les ans.



donéées et sauvegardes - importance des données / RAID

3.3 Importance des données

Importance des données

Considérons une personne payée 15 euros de l'heure, donc coûtant 30 euros de l'heure à une entreprise.
Cette personne travaille 35 heures par semaine, 4 semaines par mois.

Quel est le coût pour l'entreprise si, suite à un crash de disque dur, 6 mois de travail sont perdus?

donéées et sauvegardes - importance des données / RAID

3.4 importance de données

Par comparaison le prix d'un disque dur est de l'ordre de 100 euros. (un peu moins)
Combien de disque durs peut-on acheter avec la somme calculée précédemment?

donéées et sauvegardes - importance des données / RAID

3.5 raid

Disques RAID


Vous trouverez des informations sur le RAID dans votre cours et sur:
http://fr.wikipedia.org/wiki/Raid_(informatique)
http://www.commentcamarche.net/protect/raid.php3

Combien de Go pouvez vous stocker dans un raid-1 formé de deux disques de 300 Go ?

donéées et sauvegardes - importance des données / RAID

3.6 raid-5

Considerons une configuration raid-5 de 3 disques de 300 Go, combien de Go pouvez vous stocker ?

donéées et sauvegardes - importance des données / RAID

3.7 raid-5

Considerons une configuration raid-5 de 10 disques de 300 Go, combien de Go pouvez vous stocker ?

donéées et sauvegardes - importance des données / RAID

3.8 raid-5 parité

Le raid-5 utilise la parité pour pouvoir récupérer des données en cas de perte d'un disque.

Ici, on a un raid-5 avec 4 disques:  donc, pour simplifier, 3 disques de données (A,B,C) et 1 disque de parité (D).

On suppose, pour simplifier, qu'un bit est stocké sur chaque disque.

Le disque de parité est calculé en comptant le nombre de bits à 1. Si ce nombre est pair le résultat est 0, sinon c'est 1.

Calculez les valeur sur le disque de parité.



num. ligne disque
A
disque
B
disque
C
 disque D
1 0
1
1
 ?
2 0
0
1
 ?
3 1 0
0
 ?
4 0
1 1
 ?
5 1
1 1 ?
6 1
0
0
 ?

donéées et sauvegardes - importance des données / RAID

3.9 raid-5 parité

Supposons que des données soient sur un raid-5 composé de 5 disques : A, B, C, D et E

Dans cet exemple, les données de parité sont sur E
Une panne survient sur le disque B.
Recalculez, à l'aide de la parité les données perdues sur le disque B.

num. ligne disque
A
disque
B
disque
C
 disque D
 disque E
1 0 ? 0 1 1
2 1 ? 0 1 1
3 1 ? 1 0 1
4 1 1 0 0 0
5 0 1 1 1 1
6 1 ? 11 0



donéées et sauvegardes - importance des données / RAID

3.10 raid risques

Risques


Un raid-5 vous protège contre quels risques?

Indications

RAID: N'oubliez pas: une donnée écrite/effacée sur le disque "virtuel" formée par un raid est immédiatement écrite/effacée sur l'ensemble des disques le constituant.

Piratage: Lorsqu'une machine est piratée, le pirate modifie des fichiers. Il est souvent très difficile de trouver quels fichiers ont été modifiés. On souhaite donc pouvoir restaurer les fichiers tels qu'ils étaient avant le piratage.

Interruption de service: un serveur très utilisé (exemple: serveur web) doit tourner en permanence. On ne peut pas se permettre que le service qu'il fournit soit interrompu.

4. données et sauvegardes - copies, machines distantes

4.1 données et sauvegardes - copies, machines distantes



xx

données et sauvegardes - copies, machines distantes

4.2 transfert de données

Transfert de données entre machines


De nombreux moyens existent pour transferer des données entre deux machines.
Lisez (sur internet ou avec dans man) des elements sur les trois protocoles suivants:





données et sauvegardes - copies, machines distantes

4.3 ftp non securise

Service FTP


Nous allons démarrer un serveur ftp et voir les informations qui circulent sur le réseau lorsqu'on s'y connecte. Vous pouvez faire cet exercice sur votre propre machine, ou le faire avec votre voisin (c'est plus parlant).

  1. Demandez à votre voisin de vous créer un compte sur sa machine
  2. Demandez à votre voisin d'installer un serveur ftp (vsftpd).
  3. Lancez le programme "sudo wireshark" (anciennement "ethereal"). wireshark est un "sniffer", qui permet d'écouter et enregistrer (capturer) les paquets circulant sur le réseau.
  4. Lancez la capture (menu capture -> interface -> eth0 -> start ... ou bien eth1 selon la config de votre machine).
  5. Ensuite connectez vous sur le serveur ftp avec le client ftp (commande "ftp nom-machine"). Utilisez le login et mot de passe du compte que votre voisin vous a crée sur sa machine.
  6. Une fois connecté, arrêtez la capture des paquets. Cherchez les paquets correspondant au protocole "ftp" (vous pouvez trier les paquets par protocole, en cliquant tout en haut de cette colonne). Vous devriez voir votre login/mot de passe apparaître!

données et sauvegardes - copies, machines distantes

4.4 scp

La commande "scp" permet de copier des fichiers d'une machine à l'autre en utilisant ssh.

Quelle commande faut-il taper pour copier un fichier "essai.txt" se trouvant sur votre machine, vers le répertoire personnel d'un utilisateur "toto" sur une machine appelé "zozo.org" ?
(on utilisera le compte de "toto" sur la machine distante zozo.org)

données et sauvegardes - copies, machines distantes

4.5 scp distant vers local

Quelle commande taper pour copier un fichier "essai.txt" se trouvant dans le répertoire "/tmp" d'une machine distante "zozo.org" vers le répertoire courant (de votre machine)? L'utilisateur à utiliser sur la machine distante est "toto".

données et sauvegardes - copies, machines distantes

4.6 scp wirehark

Lancez "sudo wireshark" et démarrez la capture de paquets.
Ensuite copiez des fichiers avec scp, puis arrêtez la capture.
Cherchez les paquets correspondants (ssh).
Est-ce que votre mot de passe apparaît?

données et sauvegardes - copies, machines distantes

4.7 rsync

La commande "rsync" est très utilisé. Elle a une syntaxe très proche de celle de "scp".
On peut l'utiliser pour copier des fichiers d'une machine à une autre, ou bien pour copier des fichiers sur une même machine.

Quelques options très courantes (voir "man rsync" pour plus de détails):
"-a"  : à la place de "-r" et "-p".
"-v"  : verbose, la commande décrit tout ce qu'elle fait.
"--delete" : effacer les fichiers absents présents dans le répertoire destination mais pas dans le source.

Un petit détail: "rsync" est sensible à la presence d'un / à la fin d'un nom de répertoire.

Utilisez "rsync" pour copier les fichier et répertoires précedents de votre machine vers celle de votre voisin et reciproquement. On utilisera ce type de commandes:
rsync -av --delete repertoire-source/  toto@adresse_ip_voisin:/tmp/essai/


données et sauvegardes - copies, machines distantes

4.8 sauvegarde par duplication

Conscient de la faible fiabilité des disques durs, vous achetez un
deuxième disque dur que vous installez sur la même machine. Vous utilisez un programme qui duplique
automatiquement votre premier disque sur le deuxième toutes les
semaines.

Contre quels risques êtes vous protégés?

percu=on remarque bien l'existence du problème avant la sauvegarde (donc moins d'une semaine après)
inapercu=on ne remarque pas l'existence du problème avant la sauvegarde (par exemple 1 mois plus tard)

données et sauvegardes - copies, machines distantes

4.9 sauvegarde incrementale

Sur une machine sans raid, on met en place une politique de sauvegarde incrémentale.
Ce type de sauvegarde permet de conserver un historique complet des fichiers.
Vous pouvez lire, par exemple: http://fr.wikipedia.org/wiki/Sauvegarde

La machine contenant les sauvegardes est dans un bâtiment différent.

Contre quels risques êtes vous protégés?

données et sauvegardes - copies, machines distantes

4.10 sauvegarde lourde

Dans un service administratif d'une université, l'administrateur système équipe tous les utilisateurs d'une clé USB et leur demande de sauvegarder régulièrement leurs propres données importantes.

Est-ce que cela vous parait être une bonne politique de sauvegarde?
Imaginez quelques scénarios.

Quelle espace est disponible sur une clé USB ?

Quel est la taille du disque dur de chaque utilisateur?

Combien de temps à votre avis est-ce que chaque utilisateur doit passer à chaque sauvegarde pour choisir les données importantes ?

Est-ce que vous pensez que les utilisateurs vont réellement faire ces sauvegardes ?

Est-ce que ce système de sauvegarde est efficace ?

5. Installation et configuration de logiciels web, utilisant une BdD

5.1 Installation et configuration de logiciels web, utilisant une BdD

Dans les  parties suivantes nous voulons, entre autres, installer un logiciel web appelé Wordpress qui permet de gérer un forum de discussion.

Ce logiciel est écrit en PHP et utilise une base de données pour enregistrer les informations nécessaires à son fonctionnement.

Il va falloir donc commencer par apprendre à gérer une base de données (MySql).
Pour ca, on va voir deux outils, tous deux très utilisés en pratique:
On va faire ça, ensemble, étape par étape, dans les pages suivantes.

6. Installation, configuration et utilisation de MySQL

6.1 Installation, configuration et utilisation de MySQL


Dans les exercices suivants nous allons gérer le SGBD MySQL avec la commande "mysql". Cette commande est le client MySQL. Elle se connecte à un serveur MySQL. Nous allons aussi installer le serveur.

Parfois le client et le serveur sont sur des machines différentes (voir premier schéma).

Dans notre cas, ils seront sur la même machine (voir deuxième schéma).

MariaDB
Attention: Sur Debian 11, MySQL a été remplacé par un logiciel presque identique appelée "MariaDB".

Installation, configuration et utilisation de MySQL

6.2 Nom de paquet, client mysql.

Pour pouvoir installer un logiciel il faut d'abord trouver le nom du paquet correspondant. Vous ne pouvez pas le deviner.

Essayez de trouver le nom du paquet correspondant au client MariaDB (remplacement de  MySQL sur debian 11) .

Attention, il y a beaucoup de choix, il faut fouiller un peu.

La liste de commandes se trouve ici


Installation, configuration et utilisation de MySQL

6.3 Installation client MySQL

Le nom du paquet est mariadb-client

Installez le.

Installation, configuration et utilisation de MySQL

6.4 Nom de paquet, serveur mysql

Quel est le nom du paquet correspondant au serveur MySQL ?

Installation, configuration et utilisation de MySQL

6.5 Installation serveur MySQL

Installez le paquet mariadb-server

Installation, configuration et utilisation de MySQL

6.6 premiers pas avec mysql

Utilisateurs MySQL

MySQL définit des "utilisateurs" avec des droits sur les différentes bases de données et les tables dans ces bases de données.
Les utilisateurs que définit MySQL n'ont rien à voir avec les utilisateurs de votre système (pas les mêmes noms, pas les mêmes mots de passe ... bref rien à voir!)
Par exemple : l'utilisateur "etudiant" qui existe sur votre machine n'existe pas dans MySQL.
Autre exemple : il existe bien un utilisateur "root" dans mysql, mais il n'a aucun lien avec l'utilisateur "root" de votre machine.

Il faut faire attention à ne pas confondre les deux.

Pour des raisons de sécurité, seul l'utilisateur "root" du système, peut se connecter sur l'utilisateur "root" de MySQL, sans mot de passe.

Client : commande "mysql"

Tapez la commande "sudo mysql -u root"
Cette commande vous permet de vous connecter en tant que "root" MySQL (rien à voir avec le "root" du système).

MySQL définit des bases de données (database). Chaque base de données peut contenir des tables.

Dans l'invite mysql, tapez la commande "SHOW DATABASES;" (n'oubliez pas le ";")

Combien de bases de données sont déjà définies?



Installation, configuration et utilisation de MySQL

6.7 Utilisation de MySql

Création d'une base

Pour créer une nouvelle base de données appelée "essai", on doit utiliser la commande :
CREATE DATABASE essai;
Ensuite utilisez-là (faites en sorte que "essai" soit la table utilisée)
USE essai
et vérifiez qu'il n'y ait (pour l'instant) aucune table dans cette base. 

Création d'une table

Créons une table avec:
CREATE TABLE matable (id int,nom text,age int);

Insérez quelques lignes dans cette table. Si vous ne vous souvenez pas de la syntaxe exacte, cherchez sur le web la commande SQL "INSERT INTO ...."

Vérifiez que vos informations sont bien là avec "SELECT ..." .

Installation, configuration et utilisation de MySQL

6.8 creation d'un utilisateur mysql

Utilisateurs MySQL


Il peut y avoir de nombreux sites web installés sur un même serveur web.
En général, ces sites web vont chacun utiliser une base de données différente dans MySQL.
En effet, on ne souhaite pas que le webmaster d'un site web puisse modifier la base de données d'un autre site web.

Pour cette raison, chaque webmaster aura un nom d'utilisateur et un mot de passe pour accéder à sa propre base.
Création d'un utilisateur
Jusque-là, nous avons utilisé la base "essai" en tant que root (l'utilisateur root de MySQL, pas le root Linux).
Nous allons créer un utilisateur "adminessai" qui aura le droit de tout faire sur la base "essai"

Il y a plusieurs manières de créer des utilisateurs dans MySQL,
voir http://dev.mysql.com/doc/refman/5.0/en/adding-users.html

Le plus simple pour nous est:
GRANT ALL PRIVILEGES ON essai.* TO 'adminessai'@'localhost' IDENTIFIED BY 'motdepasse';
FLUSH PRIVILEGES;

Cette commande fait trois choses:
  1. elle crée l'utilisateur adminessai
  2. elle lui donne un mot de passe
  3. elle lui donne tous les droits sur toutes les tables de la base "essai"
Et voila. Vous pouvez ouvrir un nouveau terminal et vous connecter en tant que 'adminessai' à mysql:
mysql -u adminessai -p

Vérifiez que vous avez accès à la base de données essai, que vous pouvez ajouter et enlever des informations dans la table 'matable' (avec SELECT et INSERT)


7. phpMyAdmin

7.1 phpMyAdmin


Dans les exercices suivants on va installer puis utiliser l'application web PhpMyAdmin pour gérer la base de données MySQL.
(n'installez PAS phpMyAdmin maintenant avec apt, on va le faire plus tard directement à partir des sources php)


phpMyAdmin

7.2 Modules PHP

On peut ajouter des fonctionnalités au PHP en installant des "modules".

Tapez "apt search php7.4".
Vous verrez de nombreux paquets dont le nom commence par "php7.4-".

Après l'installation d'un module, il faut redémarrer Apache.


phpMyAdmin

7.3 php7.4-mysql

Pour pouvoir acceder à MySQL à partir du PHP, PhpMyAdmin a besoin du module php7.4-mysql

Installez php7.4-mysql


phpMyAdmin

7.4 Module mbstring

PhpMyAdmin a aussi besoin d'un module lié à "mbstring".
Trouvez le nom du paquet et installez-le.

(pensez à redémarrer votre serveur Apache)

phpMyAdmin

7.5 Téléchargement de phpMyAdmin

Téléchargement de phpMyAdmin


PhpMyAdmin est un logiciel libre vous permettant d'administrer votre base de données à partir d'une interface web.

Pour mieux s'habituer à l'installation de logiciels web, nous allons installer phpmyadmin à partir des sources et non pas à partir du paquet debian (apt).
(donc n'utilisez pas apt install)

Trouvez sur https://www.phpmyadmin.net la section téléchargement (downloads), puis téléchargez et désarchivez le code source du logiciel "phpmyadmin". (on prendra, par exemple, la version autorisant toutes les langues et qui se trouve au format .tar.gz)

Quelle est la version actuelle de ce logiciel que vous téléchargez? (juste les numéros)

phpMyAdmin

7.6 Installation de phpMyAdmin

Installez ce logiciel. Pour ce faire, vous devez:
1- le désarchiver (par exemple dans votre répertoire personnel)
2- le déplacer dans un répertoire ou il sera accessible par le web (par exemple /var/www/html)

Le nom du répertoire principal crée en désarchivant ce fichier est très long. Il est conseille de le renommer avec un nom plus court "phpmyadmin", par exemple.

3 - Comme dans de nombreux logiciels web en PHP, la configuration se fait dans un fichier php. Ici, il s'appelle config.inc.php
Pour vous faciliter la configuration, phpMyAdmin vous propose un fichier config.sample.inc.php tout fait, que vous devez recopier en config.inc.php . Ouvrez ce fichier dans un éditeur et lisez rapidement son contenu.
C'est dans ce fichier qu'on dit à phpMyAdmin comment se connecter à la base de données MySQL. Vous n'aurez rien à changer à part 'blowfish_secret'. Vous pouvez y mettre ce que vous voulez, mais au moins 32 caractères (un texte aléatoire, c'est pour aider à crypter des mots de passe).

4 - Accédez, avec votre navigateur, au serveur web et allez dans le répertoire ou se trouve phpMyAdmin. Vous devriez avoir un formulaire de  connexion.
 

phpMyAdmin

7.7 Création d'un utilisateur de la base de données.

PhpMyAdmin utilise les mêmes utilisateurs que MySQL.

Cependant, votre MySQL, par défaut, ne permet pas une connexion de l'utilisateur "root".

Il faut donc créer un autre utilisateur dans mysql:
(en modifiant "exemple" et "motdepasse")

GRANT ALL PRIVILEGES ON *.* TO 'exemple'@'localhost' IDENTIFIED BY 'motdepasse';
FLUSH PRIVILEGES;

phpMyAdmin

7.8 Utilisation de phpMyAdmin


Vous devez maintenant pouvoir vous connecter à PhpMyAdmin, avec l'utilisateur à la question précédente.

Prenez le temps de visiter et comprendre les différentes parties de ce logiciel. PhpMyAdmin est très utilisé et vous risquez de le rencontrer souvent.

Utilisez le logiciel pour naviguer dans les base de données que vous avez crée dans les exercices précédents.

Créez une autre base de données "essai2" avec phpMyAdmin.
Créez une table dedans et ajoutez y des informations.
Habituez vous à éditer et supprimer des informations dans ces tables en utilisant phpMyAdmin.

8. Wordpress

8.1 Wordpress


Dans les pages suivantes on va installer un logiciel appelé Wordpress.

Wordpress est un CMS, un logiciel web permettant de créer un site web.
En 2018, 27% des sites web utilisent Wordpress.

Wordpress

8.2 Installation de Wordpress

Important: on va l'installer à partir des sources PHP et non pas avec apt

Dans les pages suivantes, on va installer ensemble Wordpress en plusieurs étapes.

Étape 1:
Trouvez sur le web, puis téléchargez la dernière version du code source de Wordpress.

Wordpress

8.3 Version Worpress

Quelle est la version de Wordpress que vous avez téléchargé ?

Wordpress

8.4 Début de l'installation

Désarchivez dans /var/www/html et vérifiez que votre navigateur peut accéder au site à l'adresse http://votre_adresse_ip/wordpress
(pendant l'installation, il faut utiliser  http://votre_adresse_ip/wordpress et pas http://localhost/wordpress)

Un message vous indiquant les informations nécessaires est affiché.

On va faire le nécessaire ensemble.



Wordpress

8.5 Création de la base de données

Comme beaucoup de logiciels web, Worpress a besoin d'une base de données.

Quelle commande SQL faut-il taper pour créer la base de données appelée bdd_wordpress ?

Wordpress

8.6 Créer un utilisateur

Créez la base de données avec la commande mysql suivante:

CREATE DATABASE bdd_wordpress


Maintenant il faut créer un utilisateur MySQL  appelée user_bdd_wordpress qui aura les droits sur cette base.

Quelle commande MySQL taper ?


Wordpress

8.7 Fin d'installation

Créez l'utilisateur de la base de données avec la commande suivante:

GRANT ALL PRIVILEGES ON bdd_wordpress.* TO 'user_bdd_wordpress'@'localhost' IDENTIFIED BY 'motdepasse';
FLUSH PRIVILEGES;


Retournez sur votre site Wordpress.
Remplissez les champs.
Puis suivez les instructions vous demandant de créer le fichier wp-config.php

Wordpress

8.8 Utilisation de Wordpress

Prenez quelques minutes pour vous familiarisez à la fois avec l'interface d'administration et l'utilisation de Wordpress. Créez quelques articles.

Demandez à votre voisin de visualiser votre site depuis sa machine.

Créez lui un compte sur votre site et demandez-lui de se connecter.

Wordpress

8.9 Tables

Tables créées par Wordpress dans la BdD


Lors de l'installation, Wordpress à crée un grand nombre de tables dans la base de données.
Les opérations que vous faites sur le site (par exemple, poster un article), sont répercutées sur la base de données.

Avec phpMyAdmin, parcourez la base de données que vous avez crée pour Wordpress et essayez de réfléchir à quoi peuvent servir les différentes tables.

Quelle est le nom de la table qui définit les utilisateurs du site?

Wordpress

8.10 Table users

Dans la table définissant les utilisateurs, vous devez retrouver les utilisateurs que vous avez crée.


Quel est le nom de la colonne où sont enregistrés les mot de passe ?

Wordpress

8.11 Table user : mot de passe

Les mots de passe des utilisateurs de Wordpress sont:

Wordpress

8.12 Post

Comment s'appelle la table qui contient les données sur les articles que vous avez écrit ?

Wordpress

8.13 Modifier un article

Dans PhpMyAdmin, modifiez un des le post_content d'un des articles que vous avez crée.

Vérifiez que la modification s'affiche bien sur le site.

Wordpress

8.14 Ajout d'une image

Ajout d'une image

Trouvez sur le web une image qui vous plaît et mettez la dans votre répertoire personnel.

Sur Wordpress, cliquez sur le lien "modifier" d'un de vos articles, puis "Ajouter un média".

Ensuite "Choisir des fichiers" et choisissez votre image.

Une erreur s'affiche à droite se plaignant d'un problème de droits d'écriture sur un répertoire.

Quel est le nom de ce répertoire ?


Wordpress

8.15 Droits d'accès sur le répertoire wp-content

Retrouvez le répertoire wp-content et regardez son contenu.
Wordpress veut créer un sous-répertoire appelé "uploads" pour y déposer votre image.
Il n'y arrive pas.
On va essayer de comprendre pourquoi.

Wordpress

8.16 Droits d'accès

Droits d'accès

Comme le montre le schèma du cours, Wordpress est exécuté par l'interpréteur PHP qui est lui même lancé dans le serveur web apache.
x

En reflechissant à ces informations, quel est l'utilisateur du système (Linux) qui exécute Wordpress, et qui va déterminer les droits d'accès aux fichiers?

Wordpress

8.17 Droits en écriture - modification

Wordpress vous indique qu'il n'arrive pas à écrire dans wp-content

On a vu que Wordpress est exécuté par Apache, donc par www-data

En gardant les propriétaires et groupes actuels de wp-content, quelle commande faut-il taper pour permettre à Wordpress d'écrire dans wp-content  ?

Wordpress

8.18 Image déposée

Retournez dans Wordpress et essayez à nouveau d'ajouter une image à votre article.

Essayez de retrouver l'image dans le répertoire de Wordpress.

Wordpress

8.19 fin

fin