Installation apache
#1 Configuration de la zone DNS d'un nom de domaine
Il nous faut un nom de domaine pour tester l'installation de notre serveur dédié. Pour ça, j'ai acheté tuto-dev-web.fr
et je l'ai configuré. Pour cela, il m'a suffi de mettre l'adresse IP du serveur que j'ai loué au bon endroit de la zone DNS. Illustration ci-dessous.
Si vous venez de faire la modification de la zone DNS, il faut attendre un peu, jusqu’à 48 heures.
Si vous avez besoin de vérifier sous windows, que la zone DNS est bien configurée, vous prenez une fenêtre en ligne de commande. (Passer par le raccourci suivant : touche Windows+R puis taper cmd)
-
Tout d'abord, il faut vider le cache DNS. Pour ça vous faites un :
-
Ensuite, vous interrogez "le système DNS" et pour cela, vous faites un
nslookup
detuto-dev-web.fr
. -
Pour terminer, il vous suffit de vérifier que c'est bien l'adresse IP de votre serveur dédié qui est retournée.
#2 Installation apache
Pour installer apache, lancez la commande suivante :
Ensuite, on prend un navigateur et on tape http://www.tuto-dev-web.fr
. Le navigateur doit afficher le message : "It Works" ( Peut-être que le navigateur se plaindra d'être en http et pas en https ).
Le répertoire de travail d'apache se trouve dans /var/www/html
. On y trouve la page qui affiche le message "It Works". Je prends en édition cette page avec vi.
Je travaille avec l'éditeur vi
depuis plusieurs décennies et je le garde car il n’y a pas une seule machine Unix/Linux sur laquelle je ne l’ai pas trouvé. Je vous mets un lien vers une page du site de François Goffinet qui vous aidera si vous ne savez pas vous en servir.
Si la coloration syntaxique par défaut ne vous convient pas, vous pouvez en changer :
Ou bien la supprimer :
Maintenant, je vais afficher la liste des processus apache. Pour cela je fais la commande :
Vous constatez qu'il y a plusieurs processus apache2. Ca mérite une explication.
Il y en a un qui appartient à root
, c'est celui qui reçoit les requêtes http.
Les autres appartiennent à www-data
qui est un utilisateur créé au moment de l'installation d'apache
.
Ce qui se passe c’est qu’à chaque nouvelle requête sur le port 80 ou 443 le process qui appartient à root forke et c’est le fils (issu du fork) qui prend en charge la nouvelle requête sur un nouveau port. C’est comme ça que fonctionne le client/serveur sous unix. C’est pareil pour ssh ou ftp.
Vous voyez qu'il y a plusieurs processus apache2
. Pourquoi ? Hé bien parce qu’ils sont déjà (pré)forkés pour aller plus vite. Ca c’est un paramètre de la conf apache. Si vous voulez qu’il y en ait 20 de forkés pour pouvoir monter en charge rapidement, hé bien c’est possible. Mais ça, on ne le fera pas.
Je vous raconte tout cela car lorsque l'on va installer le serveur ftp, hé bien il faudra partager l'arborescence contenue dans /var/www/html
(répertoire qui contient le code des sites web) entre les utilisateurs apache
et les utilisateurs ftp
. Il faudra attribuer un propriétaire à ces fichiers, voire un groupe, et gérer les droits d'accès aux fichiers.
Vous pouvez voir l'utilisateur qui a été créé pour apache
.
Vous pouvez voir le groupe qui a été créé pour apache
.
L'ensemble de la configuration apache
se trouve dans /etc/apache2
. Vous avez ci-dessous le contenu /etc/apache2
.
Le fichier de configution principal est apache2.conf
.
Vous avez ensuite des couples de répertoires. Les répertoires avec le suffixe available
qui contiennent les conf disponibles et les répertoires avec le suffixe enabled
qui contiennent les conf 'activée'.
On a :
- Un couple de répertoires pour les conf locales,
conf-available
etconf-enabled
. - Un couple de répertoires pour les sites, soit
sites-available
etsites-enabled
. - Un couple de répertoires pour les modules, soit
mods-available
etmods-enabled
.
Quand on veut faire une conf, on met un fichier de conf dans le répertoire available
, puis on fait un lien symbolique pour faire apparaître ce fichier dans enabled
. Le fait de faire un lien symbolique fabrique une deuxième entrée vers un fichier dans le système de fichier. Un deuxième nom pour le même emplacement en quelque sorte.
Pour faire les liens, on a des commandes spécifiques. Toutes les conf que l'on active sont inclus dans la conf principale.
Par exemple, si je veux configurer un site, je mets un fichier de conf dans sites-available
. Puis avec la commande a2esite nom_du_site.conf
, je fais le lien symbolique qui apparaîtra dans sites-enabled
. On va le faire au chapitre suivant pour le site tuto-dev-web.fr
et son fichier de conf tuto-dev-web.fr.conf
.
#3 Configuration d'un hôte virtuel
Quand on configure apache, et que l'on a besoin d'installer un site qui doit tourner sur le serveur apache, on dit que l'on configure un hôte virtuel.
Il faut configurer un hôte virtuel pour chaque site web qui va tourner sur le serveur. Il y a un fichier de conf par site web.
Ci-dessous, je donne un fichier de conf pour Votre-Site.fr. A vous de copier/coller ce pattern de conf et de l'éditer pour votre site.
Pour le site tuto-dev-web.fr
, j'édite le fichier tuto-dev-web.fr.conf
et je remplace Votre-Site
par tuto-dev-web
.
Ensuite, il suffit de lancer la commande ci-dessous pour faire le lien symbolique (comme expliqué au-dessus).
Vérifiez le lien symbolique avec un :
Maintenant, on va créer un répertoire pour accueillir le site. Ce sera la racine du site. On va aussi créer une page index.html
.
Pour l'instant, on ne gère pas les droits et on laisse root
comme propriétaire des fichiers.
#4 Test sur le port 80
N'oublions pas de recharger la conf apache :
Maintenant, on fait un test de l'hôte virtuel sur le port 80 soit http://tuto-dev-web.fr
.