Posts tagged ‘httpd.conf’

Apache: configurer correctement les vhosts

Un seul serveur web Apache est capable de servir plusieurs sites. Il est possibles de distinguer ces sites différents par leur adresse ip, ou par leur nom de domaine.

Cet article présentera la manière de configurer pour une seule ip / plusieurs sites web désignés par leur nom (l’inverse est aussi possible) grâce aux virtual hosts.

Nous allons d’abord utiliser la directive NameVirtualHost *.80 (on utilise * pour que répondent à la fois l’adresse ip du serveur, et à la boucle locale) pour déclarer que une seule adresse ip peut répondre a plusieurs noms de domaines différents (on parle de « name Based VirtualHost »).

Ensuite, chaque host va être décrit entre des balises

Les directives à connaitre sont:

ServerName
Donnez le nom de domaine auquel le site doit répondre.
DocumentRoot
Donnez le chemin qui contient les données du site

ErrorLog

donnez le chemin du fichier de log des erreurs de ce host

CustomLog
Donnez le chemin du fichier de log dédié aux accès à ce host, suivi du mot clé « combined » sion le démmaraage du service vous donnera une erreur (combined sert a formatter les informations affichées dans le fichier de log)

Spécifier l’adresse et le port auquel doit répondre le vhost?

Il pourrait etre tout a fait intéressant de servir différents sites web sur différents ports:
Il suffit de déclarer

Fichier exemple et notes sur l’organisation:

Il serait possible d’inclure tous ces vhost dans le fichier httpd.conf (cf. article Aprendre à configurer Apache httpd). Sur Debian, la gestion des sites web avec Apache est facilitée par l’organisation des répertoires. Chaque vhost est configuré dans un fichier distinct, placé dans le répertoire /etc/apache2/sites-availables/, puis un lien symbolique est réalisé dans le dossier /sites-enabled/… ca permet en un seul coup de main, et sans devoir supprimer des configurations existantes, d’activer/désactiver des sites à la volée!

Exemble de vhost pour un site:

#configuration du site www.site1.com
<Directory /var/www/site1>
Order Deny,Allow
Allow from All
</Directory>
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /var/www/site1
AddDefaultCharset ISO-8859-15
CustomLog /var/log/apache2/site1.access.log combined
ErrorLog /var/log/apache2/site1.errors.log
</VirtualHost>

Je vous souhaite une bonne mise en ligne 😉

23 septembre 2008 at 14 h 31 min Laisser un commentaire

Tips et astuces : apprendre à configurer Apache httpd

Cet article est un fourre tout des directives de configurations du serveur web Apache les plus basiques. Il s’adresse donc aux débutants qui veulent apprendre comment configurer Apache (v.2.x).

N’hésitez pas à poser des questions parmi vos commentaires, je ferai de mon mieux pour y répondre. Si vous constatez une erreur, ou si vous voulez ajouter une précision, le commentaire sera bienvenu!

Généralités

Où placer les directives ?

Les directives sont à placer dans le contexte global (/etc/apache2/apache2.conf chez Debian, généralement /etc/httpd.conf ailleurs) mais peuvent etre restreinte spécifiquement à un « host » entre des balises <VirtualHost> où à un répertoire entre des balises <Directory>. Les directives doivent donc être placées là ou vous voulez qu’elles prennent effet !

Que signifie… ?

AllowOverride (None / All)

AllowOverride permet de spécifier si l’utilisation d’un fichier .htaccess sera prise en compte ou non.

DocumentRoot

Se place dans le contexte global ou dans un virual host pour donner le chemin (l’arborescence unix) à partir duquel le serveur web va servir les données. Exemple avec DocumentRoot = /var/www/test/

http://www.adresse_du_serveur.com/index.html affichera le fichier UNIX
    /var/www/test/index.html.

NameVirtualHost

NameVirtualhost est la directive qui permet d’associer une adresse ip au serveur afin qu’il redispatche les requêtes sur les Virtualhost. Afin d’écouter à la foi la boucle locale, et l’adresse ip propre du serveur, on peut mettre *, en spécifiant le port, en lieu et place de la seule adresse du serveur.

NameVirtualHost *:80

Options

Cette directive est un fourre tout, qui permet d’activer:

– L’éxécution de scripts CGI dans l’arborescence définie par documentRoot.(ExecCGI)
– Le suivi des liens symboliques au sein de l’arborescence du documentRoot (FollowSymLinks). Exemple: si un dossier est placé a l’etérieur du document root, pour y accéder, il suffit de taper un ls -n /dossierCible /votre_documentRoot/www/ pour y accéder.
– et bien d’autres options encore…que nous ne listerons pas ici.

ServerName

Cette rubrique permet d’associer un host apache a une adresse de type DNS. SI vous possedez le domaine MONDOMAIN.COM, et que vous avez configuré le DNS pour que sous-domaine.mon-domaine.com pointe sur l’ip de la machine sur laquelle tourne apache, alors vous pouvez définir le serverName suivant:

ServerName sous-domaine.mon-domaine.com:80

Ce sera tout pour aujourd’hui, avec ces quelques directives, vous pourrez aisément comprendre les fichiers d’example des <VirtualHost>. Vous avez également le nécessaire pour pouvoir associer des sites différents à chacun de vos sous domaines (si vos DNS sont bien configurés…).

AddDefaultCharset

J’avais oublié une irective quasiment indispensable: AddDefaultCharset
Vous voulez spécifier par défaut une locale spécifique ? bonne idée! Si votre serveur doit servir du contenu en plusieurs locales différentes, vous pouvez même associer un charset différent par vhost avec
AddDefaultCharset UTF-8

extensions d’Apache?

Apache peut être très facilement étendu grâce a un système de « modules ». Les modules Apache permettent d’ajouter de nouvelles fonctionnalités comme par exemple le traitement des requêtes, la mise en cache de fichiers, l’amélioration de la sécurité, etc.

Un module s’active avec la directive

LoadModule nom_du_module chemin_du_fichier

Le nom_du_module est une variable qui est est listée dans la liste des définitions de modules.

18 septembre 2008 at 0 h 27 min 4 commentaires