Table des matières

, ,

Serveur web Apache2

Pour quoi faire ? Héberger son blog, son wiki… et les rendre accessibles par https (liaison chiffrée SSL rendant plus compliquée, par exemple, la capture d'identifiants et mots de passe).

Installation

Pour installer Apache2, tous ses petits copains habituels (MySQL, Php5) et même des invités surprise (module Python) :

apt-get install apache2 apache2-mpm-prefork apache2-utils libapache2-mod-fastcgi libapache2-mod-php5 libapache2-mod-wsgi-py3 php5 php5-cli php5-gd php5-json php5-mysql php5-readline mysql-server mysql-client python-mysqldb openssl ssl-cert ca-certificates

Organisation

L'organisation choisie est largement inspirée de celle préconisée par Jean-Baptiste Favre sur cette page.

Cette organisation permet ensuite de configurer aisément avec Apache des hôtes virtuels avec :

Dans /etc/apache2

Les fichiers de configuration d'Apache2 sont dans /etc/apache2, comme il se doit. (etc = editable text configurations.)

/etc/apache2/
├── apache2.conf
├── conf-available/
├── conf-enabled/
├── envvars
├── magic
├── mods-available/
├── mods-enabled/
├── ports.conf
├── sites-available/
└── sites-enabled/

Nous reviendrons sur le contenu de ces fichiers et répertoires.

Dans /var/www

Les sites sont stockés dans /var/www. Nous allons choisir une arborescence particulière :

/var/www/
├── domaine.ext/
│   ├── config/
│   │   ├── auth/
│   │   ├── htpasswd
│   │   ├── ssl/
│   │   │   └── linux -> /var/www/domaine.ext/www/linux/
│   │   └── subdomains/
│   │       ├── apt -> /var/www/domaine.ext/www/apt/
│   │       └── linux -> /var/www/domaine.ext/www/linux/
│   ├── logs/
│   │   ├── access.log
│   │   ├── error.log
│   │   ├── rewrite.log
│   │   └── ssl_error.log
│   └── www/
│       ├── apt/
│       └── linux/
├── index.html
└── pythonCGI/

(On n'a pas déployé toute l'arborescence.)

Le premier niveau de /var/www contient :

  1. un dossier dévolu au nom de domaine domaine.ext (par exemple claudeclerc.fr) ; on créera un dossier par domaine.
  2. un fichier index.html historique (celui qui indique It works !) ; on pourrait s'en passer.
  3. un dossier pythonCGI (qui peut contenir des scripts python pour faire des pages web dynamiques).

Le dossier domaine.ext contient :

  1. un dossier config pour configurer aisément :
    • l'authentification basique (par identifiant/mot de passe) : un simple lien dans auth suffira pour protéger une partie d'un site !
    • l'accès sécurisé par https (ssl) : là encore, un simple lien suffit.
    • les sous-domaines : apt et linux sont deux sous-domaines de domaine.ext (apt.domaine.ext et linux.domaine.ext) ; remarquez le lien et vers où il pointe, vous comprendrez le mécanisme mis en place pour créer un sous-domaine.
  2. un dossier logs dont la fonction est évidente.
  3. un dossier www qui contient les fichiers (html, php, images, vidéos etc) et dossiers du domaine et des sous-domaines.

Configuration d'Apache2

Comme on l'a vu, les fichiers de configuration d'Apache2 sont dans /etc/apache2.

Rappel : les variables d'environnement d'Apache2 sont renseignées dans le fichier envvars ; il vaut mieux en prendre connaissance.

Fichier ports.conf

Le port http est par défaut le port 80 ; Apache2 répondra donc aux requêtes effectuées sur ce port. Si l'un des modules ssl_module ou mod_gnutls.c est chargé, alors Apache2 répondra également aux requêtes effectuées sur le port 443 (https).

Listen 80
<IfModule ssl_module>
	Listen 443
</IfModule>
<IfModule mod_gnutls.c>
	Listen 443
</IfModule>

Fichier apache2.conf

nano /etc/apache2/apache2.conf


Liens externes

FIXME


1 personne a visité cette page aujourd'hui et 463 en tout.