← Semaine 2
semaine 2 - virtualisation

Un nom pour votre serveur

Votre serveur a une adresse IP, mais qui veut taper 139.177.198.221 ? Cette semaine : un vrai nom de domaine, des DNS bien configurés, et la magie des VHOST : plusieurs sites sur UN serveur.
nom de domaine

Choisir son registraire

Porkbun (recommandé)
Parmi les moins chers, recherche par prix, accepte la crypto.
NameCheap
Le plus populaire, recherche par catégories de TLD.
Name.com
Un nom GRATUIT pour les étudiants avec GitHub Students !
tld-list.com
Le comparateur : trouve le vendeur le moins cher pour chaque TLD.

Les spéciaux de première année valent le magasinage ; on peut transférer le nom ailleurs la deuxième année.

nom de domaine

La recette d'achat chez Porkbun

Un beau nom court à 2 $ la première année, ça existe. Prenez le temps de fouiller les extensions exotiques !
architecture d'internet

Les piliers du monde : 13 serveurs racine

# Voir la resolution complete d'un nom : prenom@serveur:~$ dig +trace tonsite.com
architecture d'internet

Les 14 gardiens des clés d'Internet

14 personnes. 7 clés. Le destin d'Internet. Et vous, cette semaine, vous entrez dans ce système avec votre propre nom.
enregistrements dns

Les enregistrements essentiels : A et CNAME

A Record
Dirige un domaine vers une IP. C'est lui qui envoie votre nom vers votre serveur.
CNAME Record
Un alias : tel sous-domaine suit toujours le domaine du A Record. On change d'IP ? On ne modifie QUE le A, les CNAME suivent.
MX Record
Seulement si vous voulez un serveur de courriel.
enregistrements dns

Les valeurs spéciales : @ et *

# Dans la zone DNS du registraire : @ A 139.177.198.221 # @ = le domaine lui-meme (tonsite.com) * CNAME tonsite.com # * = TOUS les sous-domaines
enregistrements dns

Deux recettes : liste ou wildcard ?

Recette des sous-domaines listés
Plus claire : on voit la liste des sous-domaines configurés. MAIS chaque ajout = retour chez le registraire + attente.
Recette wildcard (*)
Tous les sous-domaines, même les fautes de frappe (www2...), arrivent au serveur. On ne retourne JAMAIS chez le registraire.
Redirigez vos DNS 2 heures avant le laboratoire : la propagation prend du temps !
virtualisation

Un serveur, plusieurs sites : la virtualisation

/var/www/ ├── html/ # le site par defaut ├── www.tonsite.com/ # chaque site a SON repertoire ├── blog.tonsite.com/ └── wiki.tonsite.com/
Les répertoires de sites sont À CÔTÉ de html/, jamais dedans !
vhost - etape 1

Préparer les permissions web

# Une seule fois : prenom@serveur:~$ cd /var/www prenom@serveur:/var/www$ sudo chown prenom:www-data -R /var/www prenom@serveur:/var/www$ sudo chmod g+s /var/www # g+s : les nouveaux fichiers heriteront du groupe du parent # Le masque du dev web (dans ~/.bashrc) : prenom@serveur:~$ jed ~/.bashrc umask 022 prenom@serveur:~$ source ~/.bashrc
vhost - etape 2

Le répertoire du site

prenom@serveur:~$ cd /var/www prenom@serveur:/var/www$ sudo mkdir blog.tonsite.com prenom@serveur:/var/www$ sudo chown prenom:www-data -R blog.tonsite.com prenom@serveur:/var/www$ sudo chmod 0775 blog.tonsite.com # Un mini-site pour tester : prenom@serveur:/var/www$ cd blog.tonsite.com prenom@serveur:...$ echo "blog" > index.php
vhost - etape 3

Écrire le fichier VirtualHost

prenom@serveur:~$ cd /etc/apache2/sites-available prenom@serveur:...$ sudo jed blog.tonsite.com.conf
<VirtualHost *:80> ServerAdmin admin@tonsite.com ServerName blog.tonsite.com DocumentRoot /var/www/blog.tonsite.com/ ErrorLog ${APACHE_LOG_DIR}/blog.tonsite.com.error.log CustomLog ${APACHE_LOG_DIR}/blog.tonsite.com.access.log combined </VirtualHost>

Un fichier .conf par site, dans sites-available. Les fichiers finissant par ~ sont des backups d'éditeurs : à ignorer.

vhost - variantes

ServerAlias et AllowOverride

# Pour le site principal : domaine nu + www <VirtualHost *:80> ServerName tonsite.com ServerAlias www.tonsite.com DocumentRoot /var/www/www.tonsite.com/ </VirtualHost> # Pour WordPress : permettre les .htaccess <VirtualHost *:80> ServerName portefolio.online DocumentRoot /var/www/www.portefolio.online/ <Directory /var/www/www.portefolio.online> AllowOverride All </Directory> </VirtualHost>
vhost - etape 4

Activer le site

prenom@serveur:~$ cd /etc/apache2/sites-available/ prenom@serveur:...$ sudo a2ensite blog.tonsite.com.conf Enabling site blog.tonsite.com. prenom@serveur:...$ sudo service apache2 reload

a2ensite crée un lien symbolique dans sites-enabled : Apache ne charge que les configs qui y apparaissent. (a2dissite pour désactiver.)

Visitez http://blog.tonsite.com : votre premier hôte virtuel est vivant !
resume

Votre serveur a un nom (et des colocataires)

Nom de domaine
Acheté au meilleur prix chez un registraire sérieux.
DNS
A Record + wildcard : tout arrive chez vous.
VHOST
Répertoire + .conf + a2ensite = un site de plus.

Au laboratoire de la semaine 2 : votre domaine, vos DNS, vos trois premiers sous-domaines !