Nous nous occuperons en premier d'
Apache, le serveur qui enverra les pages web aux visiteurs.
Commençons par installer les paquets nécessaires :
- apache2 : Le serveur web ;
- apache2-utils : Quelques utilitaires ;
- php5 : Le module PHP ;
- php5-dev : Fichiers de développements (nécessaires pour certains modules) ;
- php5-gd : La librairie GD, pour manipuler les images. (ça n'est pas forcément obligatoire, mais autant l'installer pendant que nous y sommes)
C'est très rapide avec
aptitude :
Code : Console | aptitude install apache2 apache2-utils php5 php5-dev php5-gd |
La Configuration
Passons maintenant à la configuration d'Apache.
Les Adresses et les Ports
Apache peut écouter sur différentes adresses et ports, pour cela nous éditerons le fichier ports.conf.
Dans ce fichier, les directives vont par deux :
- NameVirtualHost : On défini un VirtualHost. (prochaine sous-partie)
- Listen : Dit a apache d'écouter sur un certain port.
Exemple :
vim /etc/apache2/ports.conf
Code : Apache 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | # On définit un VH toutes les adresses (*) et le port 80
NameVirtualHost *:80
# On dit à Apache d'écouter sur le port 80
Listen 80
# Vous pouvez en faire plusieurs, par exemple sur un autre port.
# On en défini un autre sur toutes les adresses (*) et le port 8080
NameVirtualHost *:8080
# On dit a Apache d'écouter aussi sur le port 8080
Listen 8080
# Je n'expliquerai pas l'utilisation de SSL (https) ici.
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
|
La Sécurité
Les directives concernant la sécurité sont dans le fichier
conf.d/security :
vim /etc/apache2/conf.d/security
Nous changerons :
- ServerTokens : Envoi des informations (comme l'OS et la version d'Apache) aux clients ;
- ServerSignature : Donne des informations en bas des pages d'erreurs ;
- TraceEnable : La méthode TRACE est réservée pour le débogage.
Code : Apache | # Chercher la ligne du ServerTokens et remplacer par :
ServerTokens Prod
# Chercher la ligne du ServerSignature et remplacer par :
ServerSignature Off
# Chercher la ligne du TraceEnable et remplacer par :
TraceEnable Off
|
Les VirtualHosts
Les
VirtualHosts (en français "hôtes virtuels") permettent de "découper" le serveur en plusieurs sites.
Pour en fabriquer un, créez un fichier du nom de votre site dans "sites-available" :
vim /etc/apache2/sites-available/monsite
Code : Apache 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | # Le virtualHost de monsite.fr
<VirtualHost *:80>
ServerAdmin webmaster@monsite.fr # L'E-Mail de l'administrateur
ServerName monsite.fr # L'adresse du site
ServerAlias www.monsite.fr monsite.com # Les alias du site
# Les documents du site (Souvent /var/www/monsite ou /home/monsite)
DocumentRoot /var/www/monsite.fr/
# Les options du site (comme dans un .htaccess)
<Directory /var/www/monsite.fr/>
# On autorise tous le monde a voir le site
Order allow,deny
allow from all
</Directory>
# Les logs (historiques des IPs et des fichiers envoyés)
ErrorLog /var/log/apache2/monsite.fr-error_log # Erreurs
TransferLog /var/log/apache2/monsite.fr-access_log # Acces
</VirtualHost>
|
Nous avons fini la configuration, activons le VH et redémarrons le serveur :
Code : Console | a2ensite monsite
/etc/init.d/apache2 restart |
Testons Apache
Pour vérifier que tout cela fonctionne, connectez vous au serveur avec son IP :
http://aaa.bbb.ccc.ddd/
Vous devez normalement voir un grand "It works!" : C'est la page par défaut.
Si vous avez un problème ici, regardez les dernières lignes du log d'erreurs :
tail /var/log/apache2/error.log
Si il n'y a rien d'anormal dans le log, le firewall bloque surement apache :
iptables -L | grep 'DROP'