Configurer, optimiser et sécuriser un serveur Web.
Créer un site web à l’aide d’un CMS
Publier un site chez un hébergeur
Changer d’hébergeur
Planifier et mettre en œuvre la sauvegarde des données d’un site
Rappel des protocoles réseau en jeu
Domain Name System
HyperText Transfer Protocol
Installation et configuration d’un serveur web Nginx sur Debian
Introduction aux languages classiques du web (HTML, CSS, PHP)
Tour d’horizon des serveurs web
Service d’un site en PHP
Chiffrement avec Let’s Encrypt
Découverte d’un CMS : Wordpress
Moteur de bases de données : MariaDB
TP installation de Wordpress
Scripting : sauvegarde, restauration, déménagement
Modèle OSI simplifié à 4/5 couches
| N° | Nom | Protocoles principaux |
|---|---|---|
7 | Application | HTTPS, DNS, SMTP |
4 | Transport | TCP, UDP |
3 | Réseau | IP, ICMP |
2 | Liaison | Ethernet, Wifi, ARP, MAC |
1 | Physique | Ethernet, Wifi, Fibre, Pigeons voyageurs |
| IP | Routage des paquets entre deux machines par leur adresse IP |
| TCP | Connexion entre deux applications par leur numéro de port sur une machine/IP |
| DNS | Annuaire permettant de récupérer (entre autres) l’IP associée un nom de domaine |
| HTTP | Transfert de pages web entre un serveur et un client |
| HTTPS | Idem avec chiffrement SSL |
Service d’annuaire
Serveurs
| Résolveur | Cherche l’information (et la garde en mémoire) |
| Authoritatif | Détiens l’information |
| SOA | Start of Authority (DNS principal, mail de l’admin, horodatage, TTL, …) |
| NS | Serveur de nom |
| MX | Serveur mail |
| TXT | Champ texte (SPF, DKIM, DMARC) |
| SRV | Services rendus |
| A | IPv4 |
| AAAA | IPv6 |
| CNAME | Alias |
digIPv4 de gitlab.ksug.fr ?
Serveur DNS faisant autorité pour triscl.bzh ?
IPv6 de ragnar.dubronetwork.fr ?
SOA de ksug.fr selon son serveur de nom principal ?
Protocole définissant l’interaction entre un serveur web et un client (navigateur).
Créer un container Debian 12
Installer Nginx
Différents types de langages selon
Le but (affichage, requêtes an base de données, interactivité…)
Le lieu d’exécution (navigateur, serveur)
Langage à balise pour décrire le contenu d’une page
Langage pour la mise en forme d’une page (position, couleurs, etc)
Langage de programmation impératif, orienté objet
Génère une page HTML avant de l’envoyer par le serveur web
Sait faire des requêtes en BDD
Langage de programmation impératif, orienté objet
Peut se retrouver aussi bien dans le navigateur que côté serveur
Mis en page dynamique, vérifications de zones de texte, animations,…
Voir PHP
Voir la page de TP sur le site
Stocke des données :)
Plusieurs façons de stocker
| Relationnelle | Données organisées en tables reliées entre elles, se manipulent souvent avec le langage SQL |
| noSQL | Plus simple à manipuler, mais avec moins de possibilités |
| clé-valeur | Système le plus simple, juste une liste de clés et de valeurs associées |
| Oracle | Base de données payante, plutôt pour les gros volumes |
| PostgreSQL | Moteur robuste, fonctionnalités de réplication, stockage JSON |
| MySQL | Moteur facile d’accès, interface de gestion PHP intégrée, mais rachetée par Oracle |
| MariaDB | Fork de MySQL indépendant d’Oracle |
| Microsoft SQL Server | 🤔 |
| IBM DB2 | Plutôt utilisé pour les systèmes IBM basés sur le mainframe et le code COBOL |
Installer le paquet mariadb sur le serveur
Vérifier son fonctionnement
Installer l’interface de configuration phpmyadmin
Configurer Nginx pour accéder proprement à phpmyadmin (domaine, chiffrement)
Choisir un domaine valide phpmyadmin.xxx.tsr23.ksug.fr
Mettre en place un certificat Let’s Encrypt pour le domaine
Restreindre l’accès à l’interface d’administration aux IPs de la baie (et vérifier que certbot fonctionne toujours)
instructions allow et deny dans un bloc location
Solution permettant de créer un site web sans avoir à tout coder
Système de thèmes et de plugins pour étendre les fonctionnalités et configurer l’apparence
Plus répandu : Wordpress