SERVICE DE LA FORMATION CONTINUE

Administration de serveurs Web

Configuration de Apache 1.3.14

Objectifs :

Comprendre la configuration de base du serveur Apache.

Configurer un serveur virtuel.



Documentation : http://httpd.apache.org/



A. Configuration de base

Fichier /etc/httpd/httpd.conf :


# Type de serveur. Lancé par le serveur inetd ou par le processus père dédié de Apache.

ServerType standalone


# Répertoire racice des programmes et modules de Apache.

ServerRoot "/usr"


#Interfaces et ports sur lesquels Apache reçoit des connections.

Listen 127.0.0.1:80


# Localisation du fichier trace du processus httpd.

PidFile /var/run/httpd.pid


# Temps d'expiration d'une requête http.

Timeout 300


# Activation de la persistence des connetions sur le protocol HTTP 1.0.

KeepAlive On


# Nombre maximal de requêtes sur une connection persitente

MaxKeepAliveRequests 100


# Temps maximal d'une conenction persitente.

KeepAliveTimeout 15


#Nombre minimal de serveurs HTTP disponibles.

MinSpareServers 5


#Nombre maximal de serveurs HTTP.

MaxSpareServers 10


# Nombre initial de serveur HTTP.

StartServers 5


#Nombre maximal de serveurs HTTP disponibles.

MaxClients 150


# Nombre maximal de requêtes par serveur HTTP ( 0 défini l'infini)

MaxRequestsPerChild 0


# Modules chargés au démarrage de Apache.

LoadModule vhost_alias_module libexec/apache/mod_vhost_alias.so

LoadModule env_module libexec/apache/mod_env.so

LoadModule config_log_module libexec/apache/mod_log_config.so

LoadModule mime_magic_module libexec/apache/mod_mime_magic.so

LoadModule mime_module libexec/apache/mod_mime.so

LoadModule negotiation_module libexec/apache/mod_negotiation.so

LoadModule status_module libexec/apache/mod_status.so

LoadModule info_module libexec/apache/mod_info.so

LoadModule includes_module libexec/apache/mod_include.so

LoadModule autoindex_module libexec/apache/mod_autoindex.so

LoadModule dir_module libexec/apache/mod_dir.so

LoadModule cgi_module libexec/apache/mod_cgi.so

LoadModule asis_module libexec/apache/mod_asis.so

LoadModule imap_module libexec/apache/mod_imap.so

LoadModule action_module libexec/apache/mod_actions.so

LoadModule speling_module libexec/apache/mod_speling.so

LoadModule userdir_module libexec/apache/mod_userdir.so

LoadModule alias_module libexec/apache/mod_alias.so

LoadModule rewrite_module libexec/apache/mod_rewrite.so

LoadModule access_module libexec/apache/mod_access.so

LoadModule auth_module libexec/apache/mod_auth.so

LoadModule anon_auth_module libexec/apache/mod_auth_anon.so

LoadModule dbm_auth_module libexec/apache/mod_auth_dbm.so

LoadModule digest_module libexec/apache/mod_digest.so

LoadModule proxy_module libexec/apache/libproxy.so

LoadModule cern_meta_module libexec/apache/mod_cern_meta.so

LoadModule expires_module libexec/apache/mod_expires.so

LoadModule headers_module libexec/apache/mod_headers.so

LoadModule usertrack_module libexec/apache/mod_usertrack.so

LoadModule unique_id_module libexec/apache/mod_unique_id.so

LoadModule setenvif_module libexec/apache/mod_setenvif.so


# Modules chargés au démarrage de Apache.

ClearModuleList

AddModule mod_vhost_alias.c

AddModule mod_env.c

AddModule mod_log_config.c

AddModule mod_mime_magic.c

AddModule mod_mime.c

AddModule mod_negotiation.c

AddModule mod_status.c

AddModule mod_info.c

AddModule mod_include.c

AddModule mod_autoindex.c

AddModule mod_dir.c

AddModule mod_cgi.c

AddModule mod_asis.c

AddModule mod_imap.c

AddModule mod_actions.c

AddModule mod_speling.c

AddModule mod_userdir.c

AddModule mod_alias.c

AddModule mod_rewrite.c

AddModule mod_access.c

AddModule mod_auth.c

AddModule mod_auth_anon.c

AddModule mod_auth_dbm.c

AddModule mod_digest.c

AddModule mod_proxy.c

AddModule mod_cern_meta.c

AddModule mod_expires.c

AddModule mod_headers.c

AddModule mod_usertrack.c

AddModule mod_unique_id.c

AddModule mod_so.c

AddModule mod_setenvif.c


# Fichiers inclus en fonction d'un module chargé par Apache.

<IfDefine PHP3>

Include /etc/httpd/conf/modules/mod_php3.conf

</IfDefine>


<IfDefine SSL>

Include /etc/httpd/conf/modules/mod_ssl.conf

</IfDefine>


#Port par défaut sur lequel Apache reçoit des connections.

Port 80


# Usager et groupe sous lesquels Apache tournent.

User nobody

Group nobody


# Addresse de couriel de l'administrateur du site.

ServerAdmin webmaster@you.com



# Répertoire racice des documents servis par le serveur Web.

DocumentRoot "/home/httpd/html"


# Réperoire racine du serveur Web et ses attributs.

<Directory "/home/httpd/html">

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>


<IfModule mod_userdir.c>

UserDir public_html

</IfModule>


<IfModule mod_dir.c>


# Document par défaut dans un répertoire.

DirectoryIndex index.html index.php index.php3 index.cgi

</IfModule>


#Controle d'accès par type de fichier.

<Files ~ "^\.ht">

Order allow,deny

Deny from all

</Files>


# Référence des fichiers et répertoires en fonction de la directive ServerName.

UseCanonicalName On


<IfModule mod_mime.c>

TypesConfig /etc/httpd/conf/mime.types

</IfModule>


# Type de fichier par défaut si aucun type MIME n'est déterminé.

DefaultType text/plain


<IfModule mod_mime_magic.c>

MIMEMagicFile /etc/httpd/conf/magic

</IfModule>


# Résolution DNS de chaque client.

HostnameLookups Off


# Localisation du jounal d'erreurs.

ErrorLog /var/log/httpd/error_log


# Niveau de détail de journalisation

LogLevel warn


# Format du journal d'asccès

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent


# Journal d'accès.

CustomLog /var/log/httpd/access_log common


CustomLog /var/log/httpd/combined_log combined


# Lors d'un message d'erreur généré par le serveur Web, le serveur s'identifie avec l'addresse du Webmaster.

ServerSignature On


<IfModule mod_alias.c>


# Répertoire permettant l'exécution de CGI en dehors du DocumentRoot.

ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"


# Attributs du répertoire cgi-bin

<Directory "/home/httpd/cgi-bin">

AllowOverride None

Options None

Order allow,deny

Allow from all

</Directory>


</IfModule>


<IfModule mod_mime.c>


AddEncoding x-compress Z

AddEncoding x-gzip gz tgz


# Extension d'un fichier en fonction de la langue du navigateur.

AddLanguage da .dk

AddLanguage nl .nl

AddLanguage en .en

AddLanguage et .ee

AddLanguage fr .fr

AddLanguage de .de

AddLanguage el .el

AddLanguage he .he

AddCharset ISO-8859-8 .iso8859-8

AddLanguage it .it

AddLanguage ja .ja

AddCharset ISO-2022-JP .jis

AddLanguage kr .kr

AddCharset ISO-2022-KR .iso-kr

AddLanguage no .no

AddLanguage pl .po

AddCharset ISO-8859-2 .iso-pl

AddLanguage pt .pt

AddLanguage pt-br .pt-br

AddLanguage ltz .lu

AddLanguage ca .ca

AddLanguage es .es

AddLanguage sv .se

AddLanguage cz .cz

AddLanguage ru .ru

AddLanguage tw .tw

AddCharset Big5 .Big5 .big5

AddCharset WINDOWS-1251 .cp-1251

AddCharset CP866 .cp866

AddCharset ISO-8859-5 .iso-ru

AddCharset KOI8-R .koi8-r

AddCharset UCS-2 .ucs2

AddCharset UCS-4 .ucs4

AddCharset UTF-8 .utf8


<IfModule mod_negotiation.c>

LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw

</IfModule>


AddType application/x-tar .tgz


</IfModule>

<IfModule mod_setenvif.c>


# Comportement du serveur Web face à un navigateur particulier.

BrowserMatch "Mozilla/2" nokeepalive

BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

BrowserMatch "RealPlayer 4\.0" force-response-1.0

BrowserMatch "Java/1\.0" force-response-1.0

BrowserMatch "JDK/1\.0" force-response-1.0


</IfModule>


# Inclusion d'un fichier de configuration.

include /etc/httpd/conf/vhosts/vhostsTest.conf



B. Configuration de serveurs virtuels par nom de domaine :


Ajoutez les lignes suivantes au fichier /etc/httpd/httpd.conf :


Listen addresse_ip_virtuelle:80

include /etc/httpd/conf/vhosts/vhostsTest.conf


Créez le fichier /etc/httpd/conf/vhosts/vhostsTest.conf et inclure :


NameVirtualHost addresse_ip


<VirtualHost addresse_ip:80>

ServerAdmin you@fxg.edu

DocumentRoot /www/html

ServerName test.fxg.edu

CustomLog /var/log/httpd/test.fxg.edu-access_log common

ErrorLog /var/log/httpd/test.fxg.edu-error_log

</VirtualHost>


<VirtualHost addresse_ip:80>

ServerAdmin him@fxg.edu

DocumentRoot /www2/html

ServerName test2.fxg.edu

CustomLog /var/log/httpd/test2.fxg.edu-access_log common

ErrorLog /var/log/httpd/test2.fxg.edu-error_log

</VirtualHost>


Créez les répertoires /www et /www/html.

Créez les répertoires /www2 et /www2/html.


Créez le fichier /www/html/index.html et insérez quelques lignes de textes en identifiant ce site.

Créez le fichier /www/html/index.html et insérerzquelques lignes de textes en identifiant ce site.


Insérez dans le fichier /etc/hosts :


adresse_ip test.fxg.edu

adresse_ip test2.fxg.edu


Attribuez les permissions 550 et l'appartenance à l'usager nobody et au groupe nobody :


chmod 550 /www -R ; chown nobody.nobody /www -R

chmod 550 /www2 -R ; chown nobody.nobody /www2 -R


Redémarrez le serveur Apache :


/etc/rc.d/init.d/httpd stop ; /etc/rc.d/init.d/httpd start


Vérifier la configuration des serveurs virtuels de Apache :


/usr/sbin/httpd -S


Testez le fonctionnement des sites virtuels en pointant votre navigateur vers chaque nom de domaine.



C. Exercices :

Sous quel compte Apache est exécuté et pourquoi ?


À quoi sert la directive KeepAlive et quel est sont fonctionnement ?


Quelle est la différence entre un site virtuel par addresse IP est par nom de domaine ?