Linux : Mise en place d’un serveur web (2)

Après avoir vu l’installation des différents services dans le précédent billet « Linux : Mise en place d’un serveur web (1) » nous allons maintenant nous pencher un peu plus sur la configuration du serveur http Apache2.


La configuration principale

Dans le fichier /etc/apache2/apache2.conf (le répertoire peut changer suivant la distribution installé, le nom du fichier est parfois httpd.conf) nous avons la configuration principale du serveur Apache. La configuration de base peut suffire dans la plupart des cas et le fichier est assez bien documenté pour comprendre a quoi correspond chaque ligne de configuration. Cependant voici quelques points que je modifie sur la plupart de mes installations :

AccessFileName               .htaccess

Indique le nom des fichiers de surcharges pouvant être créée par les utilisateurs, par defaut la valeur est .htaccess

ErrorLog                /var/log/apache2/error.log

Emplacement du fichier de logs d’Apache.

Include /etc/apache2/sites-enabled/

Emplacement des fichiers de configurations pour vos différents sites.

Les Virtuals Hosts

Apache permet grâce aux virtuals hosts d’utiliser plusieurs noms de domaines sur le même serveur avec la même adresse ip. Apache peut gérer les hôtes virtuels avec les commandes « a2ensite » et « a2dissite » mais personnellement je préfère l’édition manuel des fichiers pour ajuster correctement la configuration de chaque site.

Le répertoire /etc/apache2/sites-enabled/contient le fichier de configuration pour le site par défaut, « 000-default ». Pour permettre le « multi-site » j’utilise la configuration suivante :

NameVirtualHost *
<VirtualHost *>
     ServerAdmin webmaster@localhost
     ServerSignature Off
     DocumentRoot /var/www/domaine.tld/www/
     <Directory />
          Options FollowSymLinks
          AllowOverride None
     </Directory>
     <Directory /var/www/domaine.tld/www/>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride None
          Order allow,deny
          allow from all
     </Directory>
	
     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
     <Directory "/usr/lib/cgi-bin">
          AllowOverride None
          Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
          Order allow,deny
          Allow from all
     </Directory>
	
     ErrorLog /var/log/apache2/error.log
	
     # Possible values include: debug, info, notice, warn, error, crit,
     # alert, emerg.
     LogLevel warn
     CustomLog /var/log/apache2/access.log combined
	
     Alias /doc/ "/usr/share/doc/"
     <Directory "/usr/share/doc/">
          Options Indexes MultiViews FollowSymLinks
          AllowOverride None
          Order deny,allow
          Deny from all
          Allow from 127.0.0.0/255.0.0.0 ::1/128
     </Directory>
</VirtualHost>
	

Pour que les modifications soit prises en compte on recharge la configuration du serveur apache avec la commande

/etc/init.d/apache2 reload

A partir de maintenant n’importe quel nom de domaine pointant sur l’ip de votre serveur affichera le site par défaut, c’est à dire celui défini dans le fichier 000-default ci-dessus.

Et pour gérer plusieurs domaines ?

Pour gérer plusieurs domaines la procédure reste identique. Pour chaque nouveau nom de domaine vous devez créer un fichier /etc/apache2/sites-enabled/domaine.tld dans lequel sera défini la configuration du domaine et des éventuels sous domaines.

Par exemple pour mon nom de domaine netha.fr j’utilise la configuration suivante :

<VirtualHost *>
     ServerAdmin webmaster@localhost
     ServerName www.netha.fr
     DocumentRoot /var/www/netha.fr/www/
     <Directory /var/www/netha.fr/www/>
         Options -Indexes
         AllowOverride None
         Order allow,deny
         Allow from all
     </Directory>
	
ErrorLog /var/log/apache2/www.netha.fr.log
</VirtualHost>
	
<VirtualHost *>
     ServerAdmin webmaster@localhost
     ServerName blog.netha.fr
     DocumentRoot /var/www/netha.fr/blog/
     <Directory /var/www/netha.fr/blog/>
         Options -Indexes
         AllowOverride None
         Order allow,deny
         Allow from all
     </Directory>
	
ErrorLog /var/log/apache2/blog.netha.fr.log
</VirtualHost>
	
<VirtualHost *>
     ServerAdmin webmaster@localhost
     ServerName search.netha.fr
     DocumentRoot /var/www/netha.fr/search/
     <Directory /var/www/netha.fr/search/>
         Options -Indexes
         AllowOverride None
         Order allow,deny
         Allow from all
     </Directory>
	
ErrorLog /var/log/apache2/search.netha.fr.log
</VirtualHost>
	

Pensez à recharger la configuration du serveur Apache après chaque modification des fichiers de configuration.

Documentation Apache (site officiel, FR)

  1. Le mieux est d’écrire les VHost dans des fichiers différents sinon, lorsqu’il y a beaucoup de site, ça risque de devenir un vaste bordel.

    vi TLDName
    a2ensite TLDName
    /etc/init.d/apache2 reload

    et ça roule.

    Il manque aussi le ServerSignature Off (à mettre au même niveau que le log)

    Je n’ai pas fait attention, mais quand tu édites ton VHost, tu le fais bien depuis « sites-available » et non depuis « sites-enable » (texto : Disponible & Activé) ?

Laisser un commentaire


NOTE - Vous pouvez utiliser les éléments et attributs HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackbacks and Pingbacks: