Le système d'exploitation GNU-Linux/Le serveur Web Apache
Sections |
[modifier] Installation de Apache2
Pour installer Apache2 sous Debian, on tape la commande suivante :
# apt-get install apache2
Il faut aussi s'assurer que Apache version 1.3 est désintallé :
# apt-get remove apache
Si Apache était déjà installé vérifier le fichier pour indiquer le démarrage automatique d'Apache 2 /etc/default/apache2 :
# vi /etc/default/apache2 ... NO_START=0
[modifier] Configuration de Apache2
Le fichier de configuration principal de Apache2 est /etc/apache2/apache2.conf. Dans le cas de Apache version 1.3, ce fichier s'appelle /etc/apache/httpd.conf.
Par défaut, Apache utilise deux fichiers de logs :
- /var/log/apache2/access.log : contient les logs de connexion au serveur Web
- /var/log/apache2/error.log : contient les erreurs survenues
Dans les fichiers de configuration /etc/apache2/apache2.conf ou /etc/apache2/conf.d/security, on peut être amené à modifier :
# Pour que Apache ne donne pas son numéro de version et les modules chargés (via une page d'erreur) ServerSignature off # Pour que Apache ne donne pas son numéro de version et les modules chargés (via le protocole HTTP) ServerTokens Prod # Permet d'enregistrer les noms canoniques au lieu des adresses IP # dans le fichier access.log HostnameLookups On
Le fichier /etc/apache2/ports.conf contient la liste des ports sur lequel Apache écoute. On peut changer le port le par défaut (80), ou lui indiquer d'écouter sur d'autres ports (ex: 443 pour https) en rajoutant des lignes Listen <port>.
# cat /etc/apache2/ports.conf Listen 80
[modifier] Héberger plusieurs sites Internet
Apache permet de gérer plusieurs sites internet sur le même serveur, pour cela on va utiliser des sections VirtualHost. Pour chaque site Internet, on crée un nouveau fichier dans /etc/apache2/sites-enabled et on lui indique la section VirtualHost (voir ci-dessous). Par convention, on appelle ce fichier avec le nom du site Internet :
# cd /etc/apache2/sites-enabled
# vi www.mondomaine.fr
# Ne mettre cette ligne que dans UN seul fichier
NameVirtualHost 192.168.30.220
<VirtualHost 192.168.30.220>
ServerName www.mondomaine.fr
ServerAlias mondomaine.fr
ServerAdmin webmaster@mondomaine.fr
DocumentRoot /var/www/www.mondomaine.fr
CustomLog /var/log/apache2/www.mondomaine.fr_access.log combined
ErrorLog /var/log/apache2/www.mondomaine.fr_error.log
</VirtualHost>
Les différents sites vont être stockés dans le répertoire /var/www.On va créer un sous-répertoire par site :
# cd /var/www # mkdir www.mondomaine.fr
Afin de tester, on crée une page HTML minimale :
# echo "<html><body>www.mondomaine.fr</body></html>" > /var/www/www.mondomaine.fr/index.html
Après toutes modifications des fichiers de configuration, on relance Apache2 avec la commande suivante :
# /etc/init.d/apache2 restart
On peut tester avec son navigateur en se connectant à l'URL suivante :
http://www.mondomaine.fr
Dans cet exemple, il faut bien entendu que www.mondomaine.fr pingue vers notre serveur. On peut simuler ceci en rajoutant une entrée dans le fichier /etc/hosts ou en modifiant le DNS.
[modifier] Installer des modules supplémentaires
Apache 2 permet l'installation de nombreux modules pour offrir plus de services ou pour renforcer la sécurité.
Les modules sont dans le répertoire /etc/apache2/mods-available . C'est ici qu'il faut copier les modules additionnels que vous pourrez télécharger pour Apache.
Pour activer un module on peut créer manuellement un lien symbolique dans le répertoire mods-enable
Par exemple pour activer le mod URL Rewriting
# ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
Une alternative consite à utiliser la commande a2enable / a2disable
# a2enable mod_rewrite // Active le mod_rewrite dans apache2
# a2disable mod_rewrite // Désactive le mod_rewrite dans apache2
NB : sur les dernières versions de apache2, ces deux commandes s'appellent respectivement a2enmod et a2dismod.
[modifier] Protéger un répertoire avec un login / mot de passe
Pour protéger un répertoire avec un login et un mot de passe, on crée dans le répertoire à protéger un fichier .htaccess qui contient le code suivant :
# cd /var/www/www.mondomaine.fr # vi .htaccess # Type d'authentification AuthType Basic # Nom affiché dans la boite d'authentification AuthName "Site personnel" # Emplacement du fichier contenant les utilisateurs AuthUserFile /etc/apache2/utilisateurs # Emplacement du fichier contenant les groupes AuthGroupFile /etc/apache2/groupes # On autorise seulement les membres du groupe admin Require Group admin
On crée ensuite le fichier /etc/apache2/utilisateurs à l'aide de la commande htpasswd :
# cd /etc/apache2 # htpasswd -c utilisateurs alex ... # htpasswd utilisateurs pierre
La première fois, on utilise l'option -c de la commande htpasswd pour créer le fichier.
On crée ensuite le fichier /etc/apache2/groupes :
# echo "admin: alex pierre" > /etc/apache2/groupes
Il faut également éditer le fichier /etc/apache2/sites-available/default afin d'activer la prise en charge du fichier htaccess. Ajouter, si cela n'existe pas encore :
<Directory /var/www/mondossierprotege/> AllowOverride All </Directory>
On relance le serveur web :
# /etc/init.d/apache2 restart
[modifier] Outils pour générer des statistiques de connexion
Chaque fois qu'un visiteur vient sur le site Internet, Apache enregistre sa connexion dans les fichiers /var/log/apache2/*_access.log.
Voici deux logiciels libres qui analysent ces fichiers et qui permettent de générer des statistiques sur les connexions :