LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


apache

Installation

Sur Debian, on utilise l'outil apt pour installer le serveur Web Apache

# apt-get install apache2

Configuration

Le fichier httpd.conf

C'est dans ce fichier que l'on rajoute les paramètres personnels de notre configuration.

# vi /etc/apache2/httpd.conf

On commence par lui indiquer la directive ServerName (le nom FQDN du serveur est soit résolu par les DNS, soit inscrit dans le fichier /etc/hosts)

ServerName monserveur.monsite.fr

puis, parce que c'est une philosophie qui a fait ses preuves, on commence par tout interdire ^^

<Directory />
AllowOverride None
Order deny,allow
Deny from all
</Directory>

ensuite, on interdit la lecture des fichiers .htaccess

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

enfin, on indique à Apache que l'on va utiliser le mécanisme des VirtualHosts par IP

NameVirtualHost xxx.xxx.xxx.xxx:80

les xxx correspondent à l'IP ouverte au monde extérieur, celle reliée à Internet la plupart du temps ;)

On enregistre et on sort du fichier par un :wq sous vi.

Les VirtualHosts

L'installation via le package fournit un virtualhost nommé default. N'en ayant pas besoin, je le supprime, mais chacun fait comme il le sent.

# rm /etc/apache2/sites-available/default && rm /etc/apache2/sites-enables/000-default && rm -rf /var/www/apache2-default

On va maintenant créer notre premier Vhost en éditant un fichier sous /etc/apache2/sites-available

# vi /etc/apache2/sites-available/monsite

Exemple type d'un vhost sur le port 80 appelé par www.monsite.fr

<VirtualHost xxx.xxx.xxx.xxx:80>
        ServerName      www.monsite.fr
        ServerAlias     monsite.fr
        ServerAdmin     webmaster@monsite.fr
        DocumentRoot    /var/www/monsite
        Options         -Indexes

        #Sécurité
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]

        DirectoryIndex  index.html
        CustomLog       /var/log/apache2/monsite_access.log combined
        <Directory />
                AllowOverride   All  #Permet la lecture d'un .htaccess
                AddDefaultCharset ISO-8859-1 #Force cet encodage
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

Activer un module

Dans la configuration de ce virtualhost, j'ai rajouté 3 lignes utilisant le mod Rewrite afin de sécuriser notre site (voir cross-site tracing attack). <note>Il faut donc s'assurer que ce module est activé !</note> Tout comme les virtualhosts, Debian organise ses modules en 2 répertoires (mods-available et mods-enabled).

Via un script fourni, en se plaçant dans /etc/apache2/mods-available

# a2enmod rewrite

Ou en créant le lien à la main, en se plaçant dans /etc/apache2/mods-enabled

# ln -s /etc/apache2/mods-available/rewrite.load

Mettre un site en ligne

Sous Debian, ce ne sont pas les fichiers du répertoire “sites-available” qui sont lu au démarrage du serveur, mais les liens symboliques contenu dans “sites-enabled”. Il faut donc créer ce lien symbolique.

Via un script fourni, en se plaçant dans /etc/apache2/sites-available :

# a2ensite monsite

Ou en créant le lien à la main, en se plaçant dans /etc/apache2/sites-enabled :

# ln -s /etc/apache2/sites-available/monsite

Le DocumentRoot

On remarque la directive DocumentRoot qui indique le répertoire “racine” du site. Il convient donc de créer ce répertoire. C'est là que nous y déposerons nos fichiers.

# mkdir /var/www/monsite

On applique ensuite des droits restreints sur le répertoire (accessible à l'utilisateur d'apache “www-data” et interdit aux autres)

# chown 750 /var/www/monsite -R && chown -R www-data:root /var/www/monsite

Démarrage du serveur

On peut maintenant redémarrer le serveur Apache pour valider cette nouvelle configuration ;) Pensez à vérifier les logs sous /var/log/apache2 pour être sur que tout est OK.

# /etc/init.d/apache2 restart

Test

Testons maintenant notre serveur. Nous allons éditer un fichier index.html dans /var/www/monsite/

# vi /var/www/monsite/index.html

et on écrit :

<html>
<head>
</head>
<body>
It Works !!
</body>
</html>

Il est maintenant temps de vérifier si tout fonctionne. Premièrement, on doit s'assurer que www.monsite.fr est bien dirigé vers l'IP du serveur.

Un simple

# ping www.monsite.fr

doit résoudre notre adresse. <note>Dans le cas d'un serveur de test non déclaré, on se contentera de modifier le fichier hosts de la machine cliente !</note>

Démarrer ensuite votre navigateur favori avec saisissez l'url www.monsite.fr ! Si vous ne voyez pas “It Works !!”“, c'est qu'il y a un zonzon ^^

Quoi qu'il arrive, regardez vos logs !

En production

Si vous ne l'avez pas remarqué, Apache, dans sa configuration standard est un peu trop verbeux… Une erreur de page ou un accès non-autorisé vous affichera par défaut un grand nomnbre de renseignements sur le serveur, pratique pour les Kevins…

Apache/2.2.3 (Debian) PHP/5.2.0-8+etch10 Server at monserveur.monsite.fr Port 80

Pour remédier à çà, modifier la directive suivante dans le fichier /etc/apache2/apache2.conf

ServerTokens Prod

Si vous voulez vraiment qu'il soit muet, modifiez de plus

ServerSignature Off
apache.txt · Dernière modification : 2018/11/17 12:52 de 127.0.0.1