Linux WWW-HOWTO
Wayne Leister,
[email protected];
Version Fran�aise par Arnaud Launay,
[email protected]
v0.82, 19 Novembre 1997.
Ce document contient des informations sur la mise en place de services
WWW sous Linux (� la fois serveur et client). Il n'est pas pr�vu pour
�tre un manuel d�taill� mais une vue d'ensemble et un bon pointeur
vers des informations compl�mentaires.
______________________________________________________________________
Table des mati�res
1. Introduction
1.1 Copyright
1.2 Echos
1.3 Nouvelles versions de ce document
2. Configurer un client WWW
2.1 Survol
3. Lynx
3.1 O� l'obtenir ?
4. Emacs-W3
4.1 O� l'obtenir ?
5. Netscape Navigator/Communicator
5.1 Des versions et des options diff�rentes.
5.2 O� l'obtenir ?
5.3 Installation
6. Lancer un server WWW
6.1 Survol
7. Apache
7.1 O� l'obtenir ?
7.2 Compiler et Installer
7.3 Configurer
7.4 H�berger des serveurs web virtuels
7.4.1 H�bergement virtuel bas� IP
7.4.2 H�bergement virtuel par IP partag�e
7.5 Scripts CGI
7.6 R�pertoires Web des Utilisateurs
7.7 Mode d�mon contre mode Inetd
7.8 Autoriser les commandes put et delete
7.9 Authentification de l'Utilisateur / Contr�le des Acc�s
7.10 su-exec
7.11 Imagemaps
7.12 SSI/XSSI
7.13 Syst�me modulaire
8. Ajouts au serveur web
9. FAQ (Foire Aux Questions)
10. Documents plus avanc�s
10.1 Livres de chez O'Reilly & Associates
10.2 Internet Request For Comments (RFC)
______________________________________________________________________
11.. IInnttrroodduuccttiioonn
La plupart des gens sont pass�s sous Linux car ils cherchaient une
plateforme v�ritablement _a_d_a_p_t_�_e _� _l_'_I_n_t_e_r_n_e_t. De plus, des
institutions, des universit�s, des organisations � but non lucratif,
et de petites entreprises d�sirent lancer des sites internets � peu de
frais. C'est ici que le WWW-HOWTO intervient. Ce document explique
comment configurer les clients et les serveurs pour la plus grande
audience du net - _L_e _W_o_r_l_d _W_i_d_e _W_e_b.
Tous les prix indiqu�s dans ce document sont en dollars US. Ce
document suppose que vous utilisez Linux sur une plateforme Intel. Les
instructions et les produits disponibles peuvent varier de plateforme
en platerforme. Il y a de nombreux liens pour charger les logiciels
dans ce document. Utilisez autant que possible un site miroir pour
charger plus rapidement et maintenir faible l'encombrement du serveur
principal.
Le gouvernement US interdit aux compagnies US d'exporter de
l'encryption de plus de 40 bits de long. Par la m�me, les compagnies
US cr�eront deux versions de leurs logiciels. La version destin�e au
march� int�rieur supportera 128 bits, et la version d'export ne
supportera que 40 bits. Ceci s'applique aux butineurs web et aux
serveurs supportant les transactions s�curis�es. L'autre nom des
transactions s�curis�es est le Secure Socket Layer (SSL). Nous nous
r�f�rerons � ces transactions comme SSL pour le reste du document.
11..11.. CCooppyyrriigghhtt
Ce document est Copyright (c) 1997 par Wayne Leister.
L'auteur original �tait Peter Dreuw (toute version avant 0.8).
Cette documentation est libre, vous pouvez la redistribuer et/ou la
modifier selon les termes de la Licence Publique G�n�rale GNU publi�e
par la Free Software Foundation (version 2 ou bien toute autre version
ult�rieure choisie par vous).
Cette documentation est distribu�e car potentiellement utile, mais
SSAANNSS AAUUCCUUNNEE GGAARRAANNTTIIEE, ni explicite ni implicite, y compris les
garanties de ccoommmmeerrcciiaalliissaattiioonn ou dd''aaddaappttaattiioonn ddaannss uunn bbuutt sspp��cciiffiiqquuee.
Reportez-vous � la Licence Publique G�n�rale GNU pour plus de d�tails.
Vous pouvez obtenir une copie de la Licence Publique G�n�rale GNU en
�crivant � la Free Software Foundation <
http://www.fsf.org>, Inc., 675
Mass Ave, Cambridge, MA 02139, �tats-Unis.
Les marques d�pos�es sont propri�t�s de leurs propri�taire respectif.
11..22.. EEcchhooss
Tout �cho est le bienvenu. Je ne clame pas �tre un expert. Une partie
des informations provient de sites web mal �crits; il est tr�s
probable qu'il y ait des erreurs et des omissions. Cependant, v�rifiez
que vous avez la derni�re version avant d'envoyer des corrections; ce
pourrait �tre fix� dans la version suivante (voyez la section qui suit
pour savoir o� trouver la derni�re version). Envoyez vos r�actions �
[email protected].
11..33.. NNoouuvveelllleess vveerrssiioonnss ddee ccee ddooccuummeenntt
Les nouvelles versions de ce document peuvent �tre r�cup�r�es au
format texte sur Sunsite �
<
http://sunsite.unc.edu/pub/Linux/docs/HOWTO/WWW-HOWTO> et sur la
plupart des sites mirroirs Linux. Vous pouvez voir la derni�re version
HTML sur le web � <
http://sunsite.unc.edu/LDP/HOWTO/WWW-HOWTO.html>.
Il y a aussi des versions HTML disponibles sur Sunsite sous forme
d'archive tar.
22.. CCoonnffiigguurreerr uunn cclliieenntt WWWWWW
Le chapitre qui suit est d�di� � la configuration des navigateurs.
Vous �tes libres de me contacter si votre navigateur favori n'est pas
pr�sent ici. Dans cette version du document seul un petit nombre de
navigateurs ont leur propre section, mais je vais essayer de tous les
inclure (tous ceux que je peux trouver) dans la section Survol. Dans
le futur ces navigateurs auront chacun leur propre section.
L'information de survol est destin� � vous aider � vous d�cider en
faveur d'un navigateur, et vous donne les informations principales sur
chaque navigateur. La section d�tails est destin� � vous aider �
installer, configurer, et maintenir chaque navigateur.
Personnellement, je pr�f�re Netscape; c'est le seul navigateur qui
offre les derni�res nouveaut�s en HTML. Par exemple, les Frames, Java,
Javascript, les feuilles de styles, les layers, et les transactions
s�curis�es. Rien n'est plus d�sagr�able que de tenter de visiter un
site web et de s'apercevoir que vous ne pouvez le voir parce que votre
navigateur ne supporte pas quelque chose de nouveau.
Cependant j'utilise Lynx lorsque je n'ai pas envie de lancer le
monstre X-Window/Netscape.
22..11.. SSuurrvvooll
````NNaavviiggaattoorr//CCoommmmuunniiccaattoorr''''
Netscape Navigator est le seul navigateur mentionn� ici qui peut
utiliser les derni�res nouveaut�s HTML. Quelques unes de ces
extensions sont le Java, le Javascript, les mises � jour
automatiques, et les layers. Il est aussi capable de lire les
news et le courrier. Mais c'est un gros mangeur de ressources;
il prend beaucoup de temps processeur et de m�moire. Il utilise
�galement un cache s�par� pour tous les utilisateurs, ce faisant
utilisant de l'espace disque. Netscape est un produit
commercial. Les compagnies ont une p�riode d'essai de 30 jours,
mais il n'y a pas de limite pour les individus. Je voudrais
cependant vous encourager � vous enregistrer pour supporter
Netscape dans leurs efforts contre Microsoft (et qu'est ce que
c'est que $40US). Mon sentiment est que, si Microsoft gagne,
nous serons oblig�s d'utiliser MS Internet Explorer sur une
plateforme Windows :(
````LLyynnxx''''
Lynx est le plus petit navigateur web. C'est le roi des
navigateurs en mode texte. Il est gratuit et son code source est
disponible sous les termes de la GNU public license. Il est en
mode texte, mais dispose de nombreuses options.
KKffmm
Kfm fait partie de K Desktop Environment (KDE). KDE est un
syst�me qui tourne au-dessus de X-Window. Il vous donne de
nombreuses sp�cificit�s comme le copier - coller, les sons, une
corbeille et une apparence unifi�e. Kfm est le K File Manager,
mais c'est aussi un navigateur web. Ne soyez pas �tonn� par son
nom, pour un produit jeune il est tr�s utilisable en tant que
navigateur. Il supporte d�j� les frames, les tableaux, les
chargements par ftp, la navigation dans les archives tar, et
beaucoup d'autres. La version actuelle de Kfm est la 1.39, et
elle est gratuite. Kfm peut-�tre utilis� sans KDE, mais vous
aurez besoin des librairies utilis�es par KDE. Pour plus
d'informations sur KDE et Kfm, visitez le site web de KDE �
<
http://www.kde.org>.
````EEmmaaccss''''
Emacs est un programme qui fait tout. C'est un traitement de
texte, un lecteur de news, un lecteur de courrier, et un
navigateur web. Son chemin pour apprendre est tr�s raide, car
vous devez apprendre ce que font toutes les touches. La version
X-Window est plus facile � utiliser, car la plupart des
fonctions sont sur des menus. Un autre inconv�nient est qu'il
est principalement bas� sur du texte. (il peut afficher des
images si vous l'utilisez depuis X-Window). Il est �galement
gratuit, et le code source est disponible sous la licence
publique GNU.
NNCCSSAA MMoossaaiicc
Mosaic est un navigateur X-Window d�velopp� par le National
Center for Supercomputing Applications (NCSA) de l'universit� de
l'Illinois. Le NCSA a pass� quatre ans sur ce projet et a
maintenant boug� vers d'autres choses. La derni�re version est
la 2.6 qui a �t� lanc� le 7 Juillet 1995. Le code source est
disponible pour toute utilisation non-commerciale. Spyglass Inc.
<
http://www.spyglass.com> poss�de les droits commerciaux sur
Mosaic. C'est un navigateur X-Window solide, mais il lui manque
les derni�res nouveaut�s du HTML. Pour plus d'informations
visitez la page NCSA Mosaic �
<
http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/>. Ce logiciel
peut-�tre charg� � partir de
<
ftp://ftp.ncsa.uiuc.edu/Mosaic/Unix/binaries/2.6/Mosaic-
linux-2.6.Z>.
AArreennaa
Arena �tait un navigateur X-Window conceptuel pour le W3C (World
Wide Web Consortium) lorsqu'ils testaient le HTML 3.0. C'est
pourquoi il supporte tous les standards HTML 3.0 comme les
feuilles de style et les tableaux. Le d�veloppement a �t�
effectu� par Yggdrasil Computing, dans l'id�e d'en faire un
navigateur X-Window totalement libre. Mais le d�veloppement a
�t� stopp� en f�vrier 1997 avec la version 0.3.11. Une partie
seulement du standard HTML 3.2 a �t� impl�ment�e. Le code source
est disponible sous la license publique GNU. Pour plus
d'informations voyez le site web �
<
http://www.yggdrasil.com/Products/Arena/>. Il peut �tre charg�
de <
ftp://ftp.yggdrasil.com/pub/dist/web/arena/>.
AAmmaayyaa
Amaya est le navigateur X-Window conceptuel pour le W3C pour le
HTML 3.2. Toutefois il supporte tous les standards HTML 3.2. Il
supporte �galement quelques unes des nouveaut�s du HTML 4.0. Il
supporte les tableaux, les formulaires, les cartes d'images du
client, la publication, les images gifs, jpegs et png. C'est �
la fois un navigateur et un outil d'apprentissage. La derni�re
version publique est la 1.0 beta. La version 1.1 beta est en
tests internes et doit sortir bient�t. Pour plus d'informations
voyez le site d'Amaya � <
http://www.w3.org/Amaya/>. Il peut
�tre charg� de <
ftp://ftp.w3.org/pub/Amaya-LINUX-
ELF-1.0b.tar.gz>.
RReedd BBaarroonn
Red Baron un navigateur X-Window con�u par Red Hat Software. Il
est distribu� avec la distribution officielle Red Hat Linux. Je
n'ai pas pu avoir beaucoup plus d'informations sur lui, mais je
sais qu'il supporte les frames, les formulaires et le SSL. Si
vous utilisez Red Baron, aidez moi � remplir cette section. Pour
plus d'informations visitez le site Red Hat �
<
http://www.redhat.com>.
CChhiimmeerraa
Chimera est un navigateur X-Window basique. Il supporte quelques
unes des sp�cificit�s du HTML 3.2. La derni�re version est la
2.0 alpha 6 du 27 ao�t 1997. Pour plus d'informations visitez le
site de Chimera � <
http://www.unlv.edu/chimera/>. Chimera peut
�tre charg� sur <
ftp://ftp.cs.unlv.edu/pub/chimera-
alpha/chimera-2.0a6.tar.gz>.
QQwweebb
Qweb est encore un autre navigateur X-Window basique. Il
supporte les tableaux, les formulaires, et les cartes des images
c�t� serveur. La derni�re version est la 1.3. Pour plus
d'informations visitez le site Qweb �
<
http://sunsite.auc.dk/qweb/>. Les sources sont disponibles sur
<
http://sunsite.auc.dk/qweb/qweb-1.3.tar.gz>. Les binaires sont
disponibles en format Red Hat RPM �
<
http://sunsite.auc.dk/qweb/qweb-1.3-1.i386.rpm>.
GGrraaiill
Grail est un navigateur X-Window d�velopp� par la Corporation
for National Research Initiatives (CNRI). Grail est enti�rement
�crit en Python, un langage interpr�t� orient� objet. La
derni�re version est la 0.3 du 7 Mai 1997. Il supporte les
formulaires, les marque-pages, l'historique, les frames, les
tableaux, et beaucoup de choses du HTML 3.2.
IInntteerrnneett EExxpplloorreerr
Il y a des rumeurs, comme quoi Microsoft porterait Internet
Explorer sur diverses plateformes Unix - peut-�tre Linux. Si
c'est exact ils prennent le temps de le faire. Si vous
connaissez quelque chose de plus s�r, envoyez moi un mail.
A mon humble avis, la plupart des logiciels ci-dessus sont
inutilisables pour appr�cier s�rieusement le web. Je n'essaye pas de
discr�diter les auteurs, je sais qu'ils ont travaill� tr�s dur sur ces
projets. Imaginez simplement, si toutes ces personnes avaient
travaill� en commun sur un seul projet, nous aurions peut-�tre un
navigateur gratuit qui pourrait rivaliser avec Netscape et Internet
Explorer.
A mon avis, sur tous ces navigateurs, Netscape et Lynx sont les
meilleurs. Les suivants pourraient �tre Kfm, Emacs-W3 et Mosaic.
33.. LLyynnxx
Lynx est des plus petits (environ 600 ko d'ex�cutable) et des plus
rapides des navigateurs disponibles. et probablement le browser web
le plus rapide actuellement disponible. Il n'utilise pas autant de
bande passante ni de ressources syst�me car il affiche uniquement en
mode texte. Il peut-�tre utilis� sur toute console, terminal ou xterm.
Vous n'aurez pas besoin d'un _s_y_s_t_�_m_e _X_-_W_i_n_d_o_w ni de m�moire
suppl�mentaire pour faire tourner ce petit browser.
33..11.. OO�� ll''oobbtteenniirr ??
Les deux distributions Red Hat et Slackware incluent Lynx. C'est
pourquoi je ne vous ennuierai pas avec les d�tails sur la compilation
et l'installation de Lynx.
La derni�re version est la 2.8rel.2, et peut �tre obtenue sur
<
http://www.slcc.edu/lynx/fote/> ou sur tout serveur ftp miroir comme
ftp://ftp.lip6.fr dans /pub/linux/sunsite/apps/www/browsers/.
Pour plus d'informations sur Lynx essayez l'une de ces url:
LLyynnxx LLiinnkkss
<
http://www.crl.com/~subir/lynx.html>
LLyynnxx PPaaggeess
<
http://lynx.browser.org>
LLyynnxx HHeellpp PPaaggeess
<
http://www.crl.com/~subir/lynx/lynx_help/lynx_help_main.html>
(les m�mes que celle donn�es par lynx --help et ? dans lynx).
Note: les pages d'aides de Lynx ont r�cemment d�m�nag�. Si vous avez
une version ancienne de Lynx, vous devrez changer votre lynx.cfg (dans
/usr/lib) pour pointer sur la nouvelle adresse (plus haut).
Je pense que la sp�cificit� la plus importante de Lynx par rapport �
tous les autres navigateurs web est sa capacit� de r�cup�ration
automatique des fichiers.N'importe qui peut �crire un script qui
r�cup�rera tout document, fichier ou n'importe quoi d'autre via des
url _h_t_t_p, _F_T_P, _g_o_p_h_e_r, _W_A_I_S, _N_N_T_P ou _f_i_l_e_:_/_/ - et les sauver sur le
disque. De plus, toute personne peut entrer des donn�es dans les
formulaires HTML en mode batch en redirigeant simplement l'entr�e
standard et en utilisant l'option _-_p_o_s_t___d_a_t_a.
Pour en savoir plus les sp�cificit�s exceptionnelles de Lynx regardez
juste les fichiers d'aide et les pages de man. Si vous utilisez une
option sp�ciale de Lynx que vous d�sireriez voir ajouter � ce
document, fa�tes le moi savoir.
44.. EEmmaaccss--WW33
Il y a diff�rentes versions d'Emacs. Les deux les plus populaires sont
GNU Emacs et XEmacs. GNU Emacs vient de la Free Software Foundation,
et est l'Emacs original. Il est principalement orient� vers les
terminaux en mode texte, mais il peut tourner sous X-Window. XEmacs
(au d�part par Lucid Emacs) est une version qui tourne uniquement sous
X-Window. Il dispose de nombreuses sp�cificit�s de type X-Window (de
meilleurs menus, ...).
44..11.. OO�� ll''oobbtteenniirr ??
Les deux distributions Red Hat et Slackware incluent GNU Emacs.
Le GNU emacs le plus r�cent est le 19.34. Il ne semble pas avoir de
site web. Le site FTP original est �
<
ftp://ftp.gnu.ai.mit.edu/pub/gnu/>; il y a un mirroir pour la France
sur <
ftp://ftp.lip6.fr/pug/gnu/>.
La derni�re version de XEmacs est la 20.2. Le site FTP de XEmacs est �
<
ftp://ftp.xemacs.org/pub/xemacs>. Pour plus d'informations sur XEmacs
allez voir leurs pages web � <
http://www.xemacs.org>.
Les deux sont disponibles sur tous mirroir des archives Linux, par
exemple �
ftp://ftp.lip6.fr/pub/linux/sunsite/apps/editors/emacs/
55.. NNeettssccaappee NNaavviiggaattoorr//CCoommmmuunniiccaattoorr
55..11.. DDeess vveerrssiioonnss eett ddeess ooppttiioonnss ddiiffff��rreenntteess..
Netscape Navigator est le roi des navigateurs WWW. Netscape Navigator
peut quasiment tout faire. Mais d'un autre c�t�, c'est un des
programmes les plus gourmand en m�moire et en ressources que j'ai pu
voir.
Il y a 3 versions diff�rentes de ce programme:
Netscape Navigator contient le navigateur web, netcaster (le client
push) et un programme basique de courrier.
Netscape Communicator contient le navigateur web, un �diteur web, un
programme avanc� de courrier, un lecteur de news, netcaster (le client
push), et un utilitaire pour les conf�rences de groupes.
Netscape Communicator Pro contient tout ce qu'a Communicator plus un
calendrier group�, l'�mulation des terminaux IBM, et des options pour
la gestion � distance (les administrateurs peuvent mettre � jour des
milliers de copies de Netscape � partir de leur si�ge).
En addition � ces trois versions il y a deux autres options que vous
pouvez choisir.
La premi�re est l'installation compl�te ou basique. L'installation
compl�te vous installe tout. L'installation de base vous en donne
suffisamment pour commencer. Vous pouvez charger les composants
suppl�mentaires lorsque vous en avez besoin (comme le support
multimedia et netscaster). Ces composants peuvent �tre install�s par
l'utilitaire 'smart update' de Netscape (apr�s l'installation allez
dans 'help->software updates'). Actuellement, l'installation compl�te
n'est pas disponible pour Linux.
La seconde option est l'import ou l'export. Si vous habitez les US ou
le Canada vous pouvez choisir la version d'import. Cel� vous donnera
l'encryption plus solide de 128 bits pour les transactions s�curis�es
(SSL). La version d'export dispose seulement d'une encryption 40
bits, et est la seule version autoris�e en dehors des US et du Canada.
La derni�re version de Netscape Navigator/Communicator/Communicator
Pro est la 4.03. Il y a deux versions diff�rentes pour Linux, une pour
l'ancienne s�rie des noyaux 1.2 et une pour les nouveaux 2.0. Si vous
n'avez pas de noyau 2.0 je vous sugg�re de le mettre � jour; il y a de
nombreuses nouveaut�s dans le nouveau noyau.
Des beta version sont �galement disponibles. Si vous essayez une
version beta, elles expireront g�n�ralement plus ou moins un mois
apr�s !
55..22.. OO�� ll''oobbtteenniirr ??
Le meilleur moyen pour obtenir des logiciels de Netscape est d'aller
le chercher par leur site web � <
http://www.netscape.com/download/>.
Ils ont des menus pour vous guider dans votre s�lection. Lorsqu'on
demande une version Linux, on r�f�rence par rapport au noyau (la
plupart des gens doivent maintenant utiliser le 2.0). Si vous n'�tes
pas s�r de la version du noyau que vous avez vous pouvez lancer 'cat
/proc/version'. Chercher sur le site web est le seul moyen d'obtenir
les versions d'import.
Si vous d�sirez une version export vous pouvez la charger directement
des serveurs FTP de Netscape. Leurs serveurs FTP sont �galement plus �
jour. Par exemple la premi�re fois que j'ai �crit ceci, l'interface
web n'avait pas encore la version non-beta 4.03 pour Linux, mais elle
�tait sur le site FTP. Voici les liens vers les versions d'export
pour Linux 2.0:
Netscape Navigator 4.03 est �
<
ftp://ftp.netscape.com/pub/communicator/4.03/shipping/english/unix/linux20/navigator_standalone/navigator-
v403-export.x86-unknown-linux2.0.tar.gz>
Netscape Communicator 4.03 pour Linux 2.0 (noyau) est �
<
ftp://ftp.netscape.com/pub/communicator/4.03/shipping/english/unix/linux20/base_install/communicator-
v403-export.x86-unknown-linux2.0.tar.gz>
Communicator Pro 4.03 pour Linux n'�tait pas disponible au moment o�
j'�cris ces lignes.
Ces url changeront lorsque de nouvelles versions sortiront. Si ces
liens ne fonctionnent pas vous pouvez les trouver en p�chant sur le
site FTP <
ftp://ftp.netscape.com/pub/communicator/>.
Ces serveurs sont souvent tr�s charg�s. Il vaut mieux attendre hors
des heures de bureau ou choisir un site mirroir. Soyez pr�par� �
attendre, ces archives sont grosses. Navigator p�se environ 8 megs, et
l'installation de base de Communicator est de 10 megs.
55..33.. IInnssttaallllaattiioonn
Cette section explique comment installer la version 4 de Netscape
Navigator, Communicator, et Communicator Pro.
Tout d'abord d�compactez l'archive dans un r�pertoire temporaire.
Lancez ensuite le script ns-install (tapez ./ns-install). Cr�ez
ensuite un lien symbolique du binaire /usr/local/netscape/netscape sur
/usr/local/bin/netscape (tapez ln -s /usr/local/netscape/netscape
/usr/local/bin/netscape). Enfin, attribuez � une variable
d'environnement $MOZILLA_HOME pour tout le syst�me la valeur
/usr/local/netscape, de fa�on � ce que Netscape puisse trouvez ses
fichiers. Si vous utilisez bash en tant que shell, �ditez votre
/etc/profile et ajoutez les lignes:
export MOZILLA_HOME="/usr/local/netscape"
Apr�s l'avoir install� le logiciel peut se mettre automatiquement �
jour avec smart update. Lancez juste Netscape en tant que super-
utilisateur et allezz � help->software updates. Si vous avez
simplement pris l'installation basique, vous pouvez �galement
installer les composants Netscape de l�.
Note: Ceci ne supprimera pas vos anciennes versions de Netscape, vous
devez les supprimer manuellement en supprimant le binaire Netscape et
le fichier des classes Java (pour la version 3).
66.. LLaanncceerr uunn sseerrvveerr WWWWWW
Cette section contient des informations sur les diff�rents serveurs
http et les outils additionnels comme les langages de scripts pour les
programmes CGI, etc. Il y a plusieurs douzaines de serveurs web, j'ai
seulement couvert ceux qui sont pleinement fonctionnels. Comme
certains sont des programmes commerciaux, je ne peux pas les tester.
La plupart des informations de la section de pr�sentation ont �t�
r�cup�r�es sur divers sites web. S'il y a des informations
incorrectes ou manquantes, veuillez me le faire savoir.
Pour une documentation plus technique des m�canismes du http, voyez
les RFCs mentionn�es dans le chapitre "Documents plus avanc�s" de ce
HOWTO.
Je pr�f�re utiliser le serveur Apache. Il a la plupart des options que
vous avez jamais d�sir� et il est gratuit ! J'admets que cette section
est fortement orient�e vers Apache. J'ai d�cid� de concentrer mes
efforts sur la section Apache plut�t que le n�gliger par rapport �
tous les autres serveurs web. Je pourrais couvrir d'autres serveurs
web dans le futur.
66..11.. SSuurrvvooll
CCeerrnn hhttttppdd
Ce fut le premier serveur web. Il a �t� d�velopp� par le
European Laboratory for Particle Physics (CERN). Le CERN httpd
n'est plus support�. Le serveur CERN httpd est connu pour avoir
quelques bugs �tranges, pour �tre lent et mangeur de ressources.
La derni�re version est la 3.0. Pour plus d'informations
visitez la page m�re du CERN httpd �
<
http://www.w3.org/Daemon/Status.html>. Il peut �tre charg� sur
<
ftp://sunsite.unc.edu/pub/Linux/apps/www/servers/httpd-3.0.term.tpz>
(non, ce n'est pas une erreur, l'extension est actuellement .tpz
sur le site; ce devrait probablement �tre .tgz).
NNCCSSAA HHTTTTPPdd
Le serveur NCSA HTTPd est le p�re d'Apache (le d�veloppement a
donn� naissance � deux serveurs diff�rents). Toutefois les
fichiers de configuration sont tr�s similaires. le NCSA HTTPd
est gratuit et le code source est disponible. Ce serveur n'est
pas couvert par ce document, cependant la lecture de la section
Apache peut vous donner quelques tuyaux. Le serveur NCSA f�t
populaire, mais la plupart des gens l'ont remplac� par Apache.
Apache est un essai de remplacement du serveur NCSA (m�me
fichiers de configuration), et il fixe plusieurs limites du
serveur NCSA. Le serveur NCSA HTTPd compte pour 4.9% (en chute
libre) de tous les serveurs web (source Septembre 1997, Netcraft
survey <
http://www.netcraft.com/survey/>). La derni�re version
est la 1.5.2a. Pour plus d'informations voyez le site du NCSA �
<
http://hoohoo.ncsa.uiuc.edu>.
````AAppaacchhee''''
Apache est le roi de tous les serveurs web. Apache et ses
sources sont gratuits. Apache est modulaire, aussi il est facile
d'y ajouter des caract�ristiques. Apache est tr�s flexible et
dispose de tr�s, tr�s nombreuses caract�ristiques. Apache et ses
d�riv�s r�alisent 44% de tous les domaines web (50% su vous
comptez tous les d�riv�s). Il y a plus de 695.000 serveurs
Apache actifs (source Septembre 1997, Netcraft survey
<
http://www.netcraft.com/survey/>).
La version officielle d'Apache ne contient pas le SSL, mais il y
a deux d�riv�s qui l'incluent. Stronghold est un produit
commercial qui est bas� sur Apache. Il est vendu $995; une
version plus �conomique est disponible pour $495 (bas�e sur une
vieille version d'Apache). Stronghold est le num�ro deux des
serveurs s�curis�s derri�re Netscape (source C2 net
<
http://www.c2.net/products/stronghold> et Netcraft survey
<
http://www.netcraft.com/survey/>). Pour plus d'informations
voyez le site de Stronghold �
<
http://www.c2.net/products/stronghold/>. Il a �t� d�velopp�
hors des US, il est donc disponible avec du SSL en 128 bits
partout.
Apache-SSL est une impl�mentation gratuite de SSL, mais pas pour
une utilisation commerciale dans les US (RSA a une license US
sur la technologie SSL). Il peut �tre utilis� pour une
utilisation non-commerciale aux US si vous le reliez avec la
librairie gratuite RSAREF. Pour plus d'informations voyez le
site � <
http://www.algroup.co.uk/Apache-SSL/>.
NNeettssccaappee FFaasstt TTrraacckk SSeerrvveerr
Fast Track a �t� d�velopp� par Netscape, mais la version Linux
est mise sur le march� par Caldera. Le site de Caldera le liste
en tant que "Fast Track for OpenLinux". Je ne suis pas s�r qu'il
tourne seulement sous Caldera OpenLinux ou si toute distribution
Linux peut le faire (�crivez moi si vous connaissez la r�ponse).
Les serveurs Netscape comptent pour 11.5% (en chute libre) de
tous les serveurs web (source Septembre 1997
<
http://www.netcraft.com/survey/>). Le serveur est vendu $295.
Il est �galement inclus avec la distribution Caldera OpenLinux
Standard qui est vendue $399 (version �ducation: $199.50). Les
pages web parlent d'une interface d'administration simple et
pratique et d'une configuration rapide en 10 minutes. Le serveur
supporte le SSL en 40 bits. Pour obtenir les 128 bits SSL vous
aurez besoin du Netscape Enterprise Server. Malheureusement il
n'est pas disponible pour Linux :( La derni�re version
disponible pour Linux est la 2.0 (la version 3 est en beta, mais
elle n'est pas encore disponible pour Linux). Pour l'acheter,
allez sur le site web de Caldera �
<
http://www.caldera.com/products/netscape/netscape.html>. Pour
plus d'informations voyez la page Fast Track �
<
http://www.netscape.com/comprod/server_central/product/fast_track/>
WWNN WN dispose de nombreuses caract�ristiques qui le rende
attractif. Tout d'abord il est plus petit que les serveurs
CERN, NCSA HTTPd, Apache. Il dispose �galement de nombreuses
options int�gr�es qui n�cessiteraient sinon des CGI. Par exemple
la recherche sur le site, des int�gr�s du c�t� du serveur. Il
peut �galement d�compresser/compresser des fichiers en
transparence avec son option de filtrage. Il peut �galement
r�cup�rer une partie seulement d'un fichier avec son option
d'�chelle. Il est distribu� sous licence publique GNU. La
version actuelle est la 1.18.3. Pour plus d'informations voyez
le site de WN � <
http://hopf.math.nwu.edu/>.
AAOOLLsseerrvveerr
AOLserver est d�velopp� par America Online. Je dois admettre que
j'ai �t� surptis par les options offertes par un serveur web
venant de chez AOL. En addition aux options standard, il
supporte la connectivit� des bases de donn�es. Les pages peuvent
interroger une base de donn�es par les commandes Structured
Query Language (SQL). La base de donn�es est accessible au
travers du Open Database Connectivity (ODBC). Il dispose
�galement d'un moteur de recherche et des scripts TCL. Si cel�
ne vous suffit pas, vous pouvez ajouter votre module par la
Application Programming Interface (API), en C. J'ai m�me oubli�
de mentionner le support pour 40 bits SSL. Et vous obtenez tout
ceci gratuitement ! Pour plus d'informations voyez le site du
AOLserver � <
http://www.aolserver.com/server/>.
ZZeeuuss SSeerrvveerr
Zeus Server a �t� d�velopp� par Zeus Technology. Ils se
r�clament comme ayant le serveur web le plus rapide (d'apr�s la
batterie de tests WebSpec96). Le serveur peut �tre configur� et
contr�l� par un navigateur web ! Cela limite l'encombrement du
processeur et de la m�moire pour les scripts CGI, et il
s'ex�cute dans un environnement s�curis� (quelle que soit la
signification de cette expression). Il supporte �galement les
serveurs virtuels sans limitation. Il est vendu $999 pour la
version standard. Si vous d�sirez le serveur s�curis� (SSL) le
prix grimpe � $1699. Ils sont bas� hors des US, la technologie
128 bits SSL est donc disponible partout. Pour plus
d'informations voyez le site de Zeus Technology �
<
http://www.zeus.co.uk>. Le site web US se trouve sur
<
http://www.zeus.com>. Je vous pr�viens qu'ils sont trop s�rs
d'eux � propos de leur serveur le plus rapide. Mais ils
n'apparaissent m�me pas dans le top des serveurs web de la
Netcraft Surveys.
CCLL--HHTTTTPP
CL-HTTP est l'abr�g� de Common Lisp Hypermedia Server. Si vous
�tes un programmeur Lisp ce serveur est pour vous. Vous pouvez
�crire vos scripts CGI en Lisp. Il a une fonction de
configuration bas�e sur le web. Il supporte �galement toutes les
options standards des serveurs. CL-HTTP est gratuit et le code
source est disponible. Pour plus d'informations voyez le site
web de CL-HTTP � <
http://www.ai.mit.edu/projects/iiip/doc/cl-
http/home-page.html> (ne pouvaient-ils rendre cette url plus
longue ?).
Si vous avez un dessein commercial (site web d'une compagnie, ou ISP),
je vous recommanderais fortement l'utilisation d'Apache. Si vous
regardez plus � une configuration simple qu'� des options avanc�s,
alors le Zeus Server est fait pour vous. J'ai �galement entendu dire
que le Netscape Server est facile � configurer. Si vous avez une
utilisation interne, vous pouvez �tre un peu plus flexible. Mais �
moins que l'un d'entre eux dispose d'une option que vous devez
utiliser, je vous recommanderai n�anmoins l'utilisation de l'un des
trois pr�-cit�s.
Il s'agit seulement d'une liste partielle de tous les serveurs
disponibles. Pour une liste plus compl�te visitez Netcraft �
<
http://www.netcraft.com/survey/servers.html> ou Web Compare �
<
http://webcompare.internet.com>.
77.. AAppaacchhee
La version actuelle d'Apache est la 1.2.4. La version 1.3 est en test.
Le site principal d'Apache est � <
http://www.apache.org/>. Une autre
bonne source d'information est Apacheweek �
<
http://www.apacheweek.com/>. La documentation d'Apache est bonne, je
ne rentrerai donc pas dans les d�tails de la configuration d'apache.
La documentaion est sur le site web et �galement incluse dans les
sources (au format HTML). Il y a �galement des fichiers textes inclus
dans les sources, mais la version HTML est meilleure. La documentation
doit devenir bien meilleure depuis que le Apache Documentation Project
a �t� lanc�. Pour l'instant la plupart des documents sont �crits par
les d�veloppeurs. Sans vouloir discr�diter les d�veloppeurs, ils sont
un peu difficiles � comprendre si vous ne connaissez pas la
terminologie.
77..11.. OO�� ll''oobbtteenniirr ??
Apache est inclus dans les distributions Red Hat, Slackware, et
OpenLinux. Cependant il se peut que ce ne soit pas la derni�re
version, ce sont des binaires tr�s fiables. La mauvaise nouvelle est
que vous aurez � vivre avec leurs choix de r�pertoires (qui sont
totalement diff�rents les uns des autres et de ceux par d�faut
d'Apache).
Le source est disponible sur le site web d'Apache �
<
http://www.apache.org/dist/>. Les binaires sont �galement
disponibles au m�me endroit. Vous pouvez aussi obtenir les binaires
de sunsite � <
ftp://sunsite.unc.edu/pub/Linux/apps/www/servers/> et
pour la France sur
<
ftp://ftp.lip6.fr/pub/linux/sunsite/apps/www/servers/>. Et pour ceux
d'entre vous qui utilisent une Red Hat le dernier fichier RPM se
trouve g�n�ralement dans le r�pertoire des contributions �
<
ftp://ftp.redhat.com/pub/contrib/i386/>.
Si votre serveur doit desservir un dessein commercial, il est
hautement recommand� que vous obteniez les sources � partir du site
web d'Apache et de le compiler vous m�me. L'autre option est
d'utiliser un binaire qui provient d'une distribution majeure, par
exemple Slackware, Red Hat, ou OpenLinux. La principale raison en est
la s�curit�. Un binaire inconnu peut avoir une "sortie cach�e" pour
les hackers, ou une correction instable peut crasher votre syst�me.
Ceci vous donnera �galement plus de contr�le sur les modules compil�s,
et vous autorisera � changer les r�pertoires par d�faut. Il n'est pas
difficile de compiler Apache, et vous ne serez pas un r�el utilisateur
de Linux tant que vous ne compilerez pas vos programmes ;)
77..22.. CCoommppiilleerr eett IInnssttaalllleerr
Tout d'abord d�compactez l'archive dans un r�pertoire temporaire.
Ensuite placez vous dans le r�pertoire src. Editez alors le fichier
Configuration si vous d�sirez ajouter des modules sp�ciaux. Les
modules les plus commun�ment utilis�s sont d�j� inclus. Il n'y a pas
besoin de changer les r�gles ou le makefile pour Linux. Lancez ensuite
le script shell Configure (./Configure). V�rifiez qu'il vous dit que
vous utilisez une plateforme Linux et gcc en tant que compilateur.
Ensuite vous pouvez �diter le fichier httpd.h pour changer les
r�pertoires par d�faut. L'emplacement du serveur (o� sont conserv�s
les fichiers de configuration) par d�faut est /usr/local/etc/httpd/,
mais vous pouvez le changer pour juste /etc/httpd/. Et le r�pertoire
principal du serveur (o� sont conserv�es les pages HTML) par d�faut
est /usr/local/etc/httpd/htdocs/, mais j'appr�cie le r�pertoire
/home/httpd/html (le d�faut de Red Hat pour Apache). Si vous devez
utiliser su-exec (voir les options sp�ciales plus bas) vous pouvez
�galement d�sirer changer le r�pertoire. Le r�pertoire principal peut
�galement �tre chang� � partir des fichiers de config. Mais il est
�galement bon de le compiler, juste au cas o� Apache ne puisse trouvez
ou lire les fichiers de configuration. Tout le reste doit �tre chang�
� partir des fichiers de configuration. Lancez enfin make pour
compiler Apache.
Si vous avez des probl�mes au sujet de fichiers include manquants,
v�rifiez les points suivants. V�rifiez que vous avez les ent�tes du
noyau (fichiers include) install�s pour votre version du noyau.
V�rifiez �galement que vous avez ces liens symboliques install�s:
/usr/include/linux doit �tre un lien sur /usr/src/linux/include/linux
/usr/include/asm doit �tre un lien sur /usr/src/linux/include/asm
/usr/src/linux doit �tre un lien sur les sources de Linux (ex.linux-2.0.30)
Les liens peuvent �tre cr��s avec ln -s, cel� fonctionnera comme la
commande cp � part qu'il fera un lien ((ln -s SOURCE DESTINATION).
Lorsque make a termin� il doit y avoir un ex�cutable nomm� httpd dans
le r�pertoire. Il est n�cessaire de le d�placer dans un r�pertoire
bin. /usr/sbin ou /usr/local/sbin seraient de bons choix.
Copiez les sous-r�pertoires conf, logs, et icons des sources vers
l'emplacement du serveur. Renommez ensuite trois des fichiers du sous-
r�pertoire conf pour vous d�barasser de l'extension -dist ((ex.
httpd.conf-dist devient httpd.conf).
Il y a aussi divers programmes de support qui sont inclus avec Apache.
Ils sont dans le r�pertoire support et doivent �tre compil�s et
install�s s�par�ment/ La plupart d'entre eux peuvent �tre cr��s en
utilisant le makefile de leur r�pertoire (ce qui est fait lorsque vous
lancez le script principal Configure). Vous n'avez besoin d'aucun
d'entre eux pour utiliser Apache, mais certains rendent le travail des
administrateurs plus simple.
77..33.. CCoonnffiigguurreerr
Maintenant vous devez avoir quatre fichiers dans votre sous-r�pertoire
conf de l'emplacement du serveur. Le fichier httpd.conf met en place
le daemon du serveur (num�ro de port, utilisateur, etc). Le srm.conf
donne l'arborescence pour les documents principaux, les actions
sp�ciales, etc. Le access.conf donne les cas basiques pour l'acc�s.
Finalement, le mime.types dit au serveur que type mime il doit envoyer
au navigateur pour quelle extension.
Les fichiers de configuration sont assez bien document�s (ils sont
pleins de commentaires), tant que vous comprenez le langage. Vous
devriez les lire attentivement avant de mettre votre serveur en
marche. Chaque option de configuration est couvert dans la
documentation Apache.
Le fichier mime.types n'est pas r�ellement un fichier de
configuration. Il est utilis� par le serveur pour traduire les
extensions des fichiers en types mime � envoyer au navigateur. La
plupart des types mime communs sont d�j� dans le fichier. La majorit�
des gens ne devrait pas �diter ce fichier. Au cours du temps, plus de
types mime seront ajout�s pour supporter de nouveaux programmes. La
meilleure chose � faire est de prendre un nouveau fichier mime.types
(et peut-�tre une nouvelle version du serveur) � ce moment l�.
Souvenez vous toujours que lorsque vous changez les fichiers de
configuration vous devrez relancer Apache ou lui envoyer le signal
SIGHUP avec kill pour que les changements prennent effet. V�rifiez que
vous envoyez le signal au process parent et non aux process enfants.
Le parent a g�n�ralement le chiffre id le plus faible. L'id du process
du parent est �galement dans le fichier httpd.pid du r�pertoire log.
Si vous envoyez accidentellement le signal � un des process enfants,
le process stoppera et le parent le relancera.
Je ne vous conduirai pas le long des chemins de la configuration
d'Apache. A la place je parlerai des probl�mes sp�cifiques, des choix
� faire, et des options sp�ciales.
Je recommande chaudement que tous les utilisateurs lisent les trucs
sur la s�curit� dans la documentation Apache. Elle est �galement
disponible sur le site web d'Apache �
<
http://www.apache.org/docs/mics/security_tips.html>.
77..44.. HH��bbeerrggeerr ddeess sseerrvveeuurrss wweebb vviirrttuueellss
L'h�bergement virtuel existe lorsqu'un seul ordinateur dispose de plus
d'un nom de domaine. L'ancienne m�thode �tait d'avoir une adresse IP
pour chaque site virtuel. La nouvelle m�thode utilise uniquement une
adresse IP, mais cel� ne fonctionne pas correctement avec les
navigateurs qui ne supportent pas le HTTP 1.1.
Ma recommandation pour le commerce est de conserver un h�bergement
virtuel bas� sur plusieurs IP jusqu'� ce que la majorit� des gens
disposent de navigateurs supportant HTTP 1.1 (donnez leur un an ou
deux). Ceci vous donne �galement une illusion plus compl�te de
l'h�bergement virtuel. Alors que les deux m�thodes peuvent vous donner
des possibilit�s de courrier virtuel (est ce que quelqu'un peut
confirmer?), seul l'h�bergement virtuel bas� IP peut �galement vous
donner un serveur FTP virtuel.
S'il s'agit d'un club ou d'une page personnelle, vous pouvez
consid�rer l'h�bergement virtuel par IP li�e. Ce devrait �tre moins
cher que l'h�bergement bas� IP et vous sauverez de pr�cieuses
addresses IP.
Vous pouvez �galement m�langer les h�bergements virtuels par IP fixes
et par IP partag�es sur le m�me serveur. Pour plus d'information sur
l'h�bergement virtuel voyez Apacheweek sur
<
http://www.apacheweek.com/features/vhost>.
77..44..11.. HH��bbeerrggeemmeenntt vviirrttuueell bbaass�� IIPP
Pour cette m�thode chaque site virtuel dispose de sa propre adresse
IP. En d�terminant l'adresse IP � laquelle la requ�te �tait envoy�e,
Apache et d'autres programmes peuvent dire quel domaine desservir.
C'est un incroyable gain d'adresses IP. Prenez par exemple les
serveurs o� est conserv� mon domaine virtuel. Ils ont plus de 35.000
comptes virtuels, ce qui signifie 35.000 adresses IP. Pourtant je
crois qu'aux derniers comptes ils avaient moins de 50 serveurs r�els.
La configuration se fait en deux parties. La premi�re consiste �
obtenir de Linux l'acceptation de plus d'une adresse IP. La seconde
est de configurer apache pour servir les sites virtuels.
La premi�re �tape dans la configuration pour l'acceptation par Linux
de multiples adresses IP est de cr�er un nouveau noyau. Ceci
fonctionne mieux avec la s�rie des noyaux 2.0 (ou sup�rieure). Vous
devrez inclure le support pour "IP networking" et "IP aliasing". Si
vous avez besoin d'aide pour la compilation du noyau voyez le kernel
howto <
http://sunsite.unc.edu/LDP/HOWTO/Kernel-HOWTO.html>, ou sa
version fran�aise sur
<
http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html>.
Vous devrez ensuite configurer chaque interface au lancement. Si vous
utilisez la distribution Red Hat akirs ceci peut �tre fait � partir du
panneau de contr�le. Lancez X-Window en tant que super-utilisateur,
vous devriez voir un panneau de contr�le. Double-cliquez sur "network
configuration" (configuration r�seau). Allez ensuite sur le panneau
des interfaces et choisissez votre carte r�seau. Ensuite cliquez sur
alias en bas de l'�cran. Rentrez les informations et cliquez sur
"done". Ceci devra �tre fait pour chaque site virtuel / adresse IP.
Si vous utilisez une autre distribution vous pouvez avoir � le faire
manuellement. Vous pouvez simplement mettre les commandes dans le
fichier rc.local de /etc/rc.d (en r�alit� vous devriez les mettre avec
toutes celles concernant le r�seau). Vous devrez avoir une commande
ifconfig et route pour chaque p�riph�rique. Les adresses en alias sont
divis�es sous le p�riph�rique principal. Par exemple eth0 aurait les
alias eth0:0, eth0:1, eth0:2, etc. Voici un exemple de configuration
d'un alias:
ifconfig eth0:0 192.168.1.57
route add -host 192.168.1.57 dev eth0:0
Vous pouvez �galement ajouter une adresse de broadcast et un netmask �
la commande ifconfig. Si vous avez beaucoup d'alias vous pouvez
vouloir faire une boucle pour le rendre plus simple. Pour plus
d'informations voyez le IP alias mini howto <
http://sun�
site.unc.edu/LDP/HOWTO/mini/IP-Alias.html> ou sa version fran�aise �
<
http://www.freenix.org/unix/linux/HOWTO/mini/IP-Alias.html>.
Vous devrez ensuite configurer votre domain name server (DNS) pour
desservir ces nouveaux domaines. Et si vous ne poss�dez pas d�j� les
noms de domaine, vous devrez contacter l'Internic
<
http://www.internic.net> pour enregistrer les noms de domaines. Voyez
le DNS-howto pour plus d'informations sur la configuration de votre
DNS.
Derni�rement vous devrez configurer Apache de mani�re � desservir
correctement le domaine virtuel. Ceci se fait dans le fichier de
configuration httpd.conf pr�s de la fin. Ils vous donnent un exemple
sur la fa�on de proc�der. Toutes les commandes sp�cifiques au site
virtuel sont plac�s entre les marqueurs virtualhost. Vous pouvez
mettre � peu pr�s n'importe quelle commande ici. G�n�ralement vous
devrez placer diff�rents r�pertoires pour le serveur, le r�pertoire
script, et les fichiers de log. Vous pouvez avoir un nombre quasi-
illimit� de sites virtuels en ajoutant plus de marqueurs virtualhost.
Dans de rares cas vous pouvez avoir � lancer des serveurs s�par�s si
une directive est n�cessaire pour un site virtuel, mais n'est pas
accept� dans les marqueurs du site virtuel. Ceci se fait en utilisant
la directive bindaddress. Chaque serveur aura un nom des fichiers de
configuration diff�rents. Chaque serveur r�pondra seulement � une
seule adresse IP, sp�cifi�e par la directive bindaddress. C'est un
gain incroyable de ressources syst�me.
77..44..22.. HH��bbeerrggeemmeenntt vviirrttuueell ppaarr IIPP ppaarrttaagg��ee
C'est une nouvelle m�thode pour l'h�bergement virtuel. Elle utilise
une adresse IP simple, tout en conservant les adresses IP pour les
vrais machines (et pas les virtuelles). Dans le m�me exemple utilis�
plus haut ces 30.000 sites virtuels utiliseraient seulement 50
adresses IP (une pour chaque machine). Ceci est fait en utilisant le
nouveau protocole HTTP 1.1. Le navigateur dit au serveur quel site il
d�sire lorsqu'il envoie la demande. Le probl�me est que les
navigateurs qui ne supportent pas HTTP 1.1 obtiendront la page
principale des serveurs, qui peut �tre configur�e pour donner la liste
des sites virtuels disponibles. Ceci ruine la totale illusion de
l'h�bergement virtuel. L'illusion que vous avez votre propre serveur.
La configuration est bien plus simple que pour l'h�bergement virtuel
bas� sur IP. Vous aurez toujours besoin d'obtenir votre domaine �
partir de l'Internic et de configurer votre DNS. Cette fois-ci le DNS
pointe sur la m�me adresse IP que le domaine original. Ensuite Apache
se configure comme pr�c�demment. Puisque vous utilisez la m�me adresse
IP dans les marqueurs virtualhost, Apache sait que vous d�sirez
l'h�bergement virtuel par IP partag�e.
Il y a diff�rentes choses � faire pour les anciens navigateurs. Je
vais vous expliquer la meilleure. Tout d'abord vous devrez cr�er vos
pages principales pour un serveur virtuel (soit bas� IP, soit par IP
partag�e). Ceci lib�re la page principale pour un lien listant tous
vos sites virtuels. Ensuite vous devrez cr�er une sortie cach�e pour
les anciens navigateurs. On le r�alise en utilisant la directive
ServerPath pour chaque site virtuel de la directive virtualhost. Par
exemple en ajoutant ServerPath /monsite/ � www.monsite.com, les
anciens navigateurs pourront acc�der au site par
www.monsite.com/monsite/. Ensuite mettez dans la page par d�faut du
serveur principal un message qui les incitera poliment � obtenir un
nouveau navigateur, et listera les liens sur toutes les sorties
cach�es des sites qye vous h�bergez sur cette machine. Lorsqu'un
ancien navigateur acc�dera au site ils seront renvoy�s � la page
principale, et auront un lien sur la page correcte. Les nouveaux
navigateurs ne verront jamais la page principale et iront directement
sur les sites virtuels. Vous devez vous rappeler de conservez tous vos
liens relatifs entre les sites web, car les pages seront demand�es �
partir de deux URL diff�rentes (www.monsite.com et
www.monsite.com/monsite/).
J'esp�re que je ne vous ai pas perdu ici, mais ce n'est pas d'une
compr�hension simple. Apr�s tout, vous devriez peut-�tre consid�rer
l'h�bergement bas� IP. Une explication tr�s similaire se trouve sur le
site web d'apache � <
http://www.apache.org/manual/host.html>.
Si quelqu'un dispose d'un pointeur sympathique pour l'h�bergement par
IP partag�e, j'aimerais le conna�tre. Il serait agr�able de conna�tre
le pourcentage de navigateurs qui supportent le HTTP 1.1, et d'avoir
une liste des navigateurs et des versions qui supportent HTTP 1.1.
77..55.. SSccrriippttss CCGGII
Il existe deux m�thodes diff�rentes pour donner � vos utilisateurs la
possibilit� d'utiliser des scripts CGI. La premi�re est de d�clarer
tout fichier se terminant par .cgi comme script CGI. La seconde est de
cr�er des r�pertoires de scripts (g�n�ralement nomm�s cgi-bin). Vous
pouvez �galement utiliser les deux m�thodes. Quelque soit la m�thode
utilis�e vos scripts doivent �tre ex�cutable par n'importe qui (chmod
711). En donnant � vos utilisateurs l'acc�s aux scripts vous cr�ez un
gros risque de s�curit�. Fa�tes proprement votre travail afin de
minimiser les risques concernant la s�curit�.
Je pr�f�re la premi�re m�thode, sp�cialement pour les scripts
complexes. Ceci vous autorisera � mettre les scripts dans n'importe
quel r�pertoire. J'aime mettre mes scripts au m�me endroit que les
pages web qui s'en servent. Pour les sites avec beaucoup de script,
ceci est beaucoup mieux que d'avoir un r�pertoire plein de scripts. La
configuration est simple. Tout d'abord supprimez le commentaire du
marqueur .cgi � la fin du fichier srm.conf. Ensuite v�rifiez que tous
vos r�pertoires ont les marqueurs option ExecCGI ou All dans le
fichier access.conf.
Cr�er un r�pertoire de scripts est consid�r� comme plus s�r. Pour
cr�er un r�pertoire de scripts vous utilisez la directive ScriptAlias
dans le fichier srm.conf. Le premier argument est l'Alias, et le
second le r�pertoire r�el. Par exemple ScriptAlias /cgi-bin/
/usr/httpd/cgi-bin/ rend le r�pertoire /usr/httpd/cgi-bin capable
d'ex�cuter les scripts. Ce r�pertoire sera utilis� m�me si quelqu'un
demande le r�pertoire /cgi-bin/. Pour des raisons de s�curit� vous
devez �galement changer les propri�t�s du r�pertoire pour Options
none, AllowOveride none dans le fichier access.conf (supprimer
simplement les commentaires de l'exemple donn�). Egalement ne placez
pas vos r�pertoires de scripts en tant que sous r�pertoire de vos
r�pertoires de pages web. Par exemple si vous servez les pages �
partir de /home/httpd/html/, ne cr�ez pas le r�pertoire de scripts en
tant que /home/httpd/html/cgi-bin; au lieu de �a mettez le dans
/home/httpd/cgi-bin.
Si vous d�sirez que vos utilisateurs disposent de leurs propres
r�pertoires de scripts vous pouvez utiliser de multiples commandes
ScriptAlias. Les sites virtuels doivent avoir cette commande
ScriptAlias dans leurs directives virtualhost. Est ce que quelqu'un
conna�t un moyen simple pour autoriser les utilisateurs � avoir leur
propre r�pertoire cgi-bin sans utiliser des commandes individuelles
ScriptAlias ?
77..66.. RR��ppeerrttooiirreess WWeebb ddeess UUttiilliissaatteeuurrss
Il y a deux diff�rentes m�thodes pour s'occuper des r�pertoires web
des utilisateurs. La premi�re est d'avoir un sous-r�pertoire dans les
r�pertoires des utilisateurs (g�n�ralement public_html). La seconde
est d'avoir une aborescence enti�rement diff�rente pour les
r�pertoires web. Pour ces deux m�thodes v�rifiez les options d'acc�s
aux r�pertoires dans le fichier access.conf.
La premi�re m�thode est configur�e par d�faut dans apache. Lorsqu'une
demande pour /~bob/ arrive, Apache regarde dans le r�pertoire
public_html du r�pertoire principal de bob. Vous pouvez changer le
r�pertoire avec la directive UserDir dans le fichier srm.conf. Ce
r�pertoire doit lisible et ex�cutable par tout le monde. Cette
m�thode cr�e un risque pour la s�curit� car Apache le r�pertoire
principal eds utilisateurs doit �tre ex�cutable par toute personne
afin qu'Apache puisse y acc�der.
La seconde m�thode est facile � configurer. Vous devez juste changer
la directive UserDir dans le fichier srm.conf. Il y a beaucoup de
formats diff�rents; vous pouvez voir la documentation d'Apache pour
clarification. Si vous que chaque utilisateur dispose de son propre
r�pertoire sous /home/httpd/, vous utiliserez UserDir /home/httpd.
Ensuite lorsqu'une demande arrivera pour /~bob/ Apache la traduira
pour /home/httpd/bob/. Ou si vous avez un sous-r�pertoire dans le
r�pertoire de bob vous pouvez utiliser UserDir /home/httpd/*/html.
Ceci traduira en /home/httpd/bob/html/ et vous autorisera �galement �
avoir un r�pertoire de script (par exemple /home/httpd/bob/cgi-bin/).
77..77.. MMooddee dd��mmoonn ccoonnttrree mmooddee IInneettdd
Il y a deux m�thodes par lesquelles apache peut tourner. L'une est un
d�mon qui tourne tout le temps (Apache appelle ceci standalone). La
seconde est celle du super-serveur inetd.
Le mode d�mon est de loin sup�rieur au mode inetd. Apache est
configur� pour le mode d�mon par d�faut. La seule raison d'utiliser le
mode d'inetd est pour les applications tr�s peu utilis�es, comme les
tests de scripts en interne, l'Intranet d'une petite compagnie, etc.
Le mode inetd �conomisera de la m�moire car apache ne sera charg� que
lorsqu'il sera demand�. Seul le d�mon inetd restera en m�moire.
Si vous n'utilisez pas tr�s souvent apache vous pouvez juste vouloir
le conserver en mode d�mon et le lancer lorsque vous en avez besoin.
Ensuite vous pouvez le supprimer lorsque vous avez termin� (soyez s�r
de bien supprimer le processus parent et non pas un des enfants).
Pour configurer le mode inetd vous devrez �diter quelques fichiers.
Tout d'abord /etc/services regardez si http est d�j� pr�sent. S'il n'y
est pas alors ajoutez ceci:
http 80/tcp
Le placer juste apr�s 79 (finger) serait un bon endroit. Ensuite vous
devez �diter le fichier /etc/inetd.conf et ajouter la ligne pour
Apache:
http stream tcp nowait root /usr/sbin/httpd httpd
Changez le chemin si vous avez Apache � un autre endroit. et le second
httpd n'est pas une erreur; le d�mon inetd en a besoin. Si vous
n'utilisez g�n�ralement pas le d�mon inetd, vous pouvez vouloir com�
menter toutes les autres lignes du fichier afin de ne pas activer les
autres services (FTP, finger, telnet, et beaucoup d'autres choses qui
sont g�n�ralement lanc�es par ce d�mon).
Si le d�mon inetd est d�j� lanc� (inetd), alors vous devez lui envoyer
le signal SIGHUP (par kill; voyez la page de manuel de kill pour plus
d'infos) ou relancer l'ordinateur pour que les changements soient
effectifs. Si vous n'avez pas lanc� inetd alors vous pouvez le lancer
manuellement. Vous devez �galement l'ajouter � vos fichiers
d'initialisation afin qu'il soit charg� au lancement (le fichier
rc.local serait un bon choix).
77..88.. AAuuttoorriisseerr lleess ccoommmmaannddeess ppuutt eett ddeelleettee
Les nouveaux outils de publication web supportent cette nouvelles
m�thodes d'envoi des pages web par http (� la place de FTP). Certains
de ces produits ne supportent m�me plus le FTP! Apache le supporte,
mais il manque d'un script pour se charger des requ�tes. Le script
peut �tre un gros trou de s�curit�, soyez certain de ce que vous
fa�tes avant de tenter d'en �crire ou d'en installer un.
Si quelqu'un conna�t un script qui fonctionne fa�tes le moi savoir et
j'incluerai l'adresse ici.
Pour plus d'informations voyez l'article d'Apacheweek �
<
http://www.apacheweek.com/features/put>.
77..99.. AAuutthheennttiiffiiccaattiioonn ddee ll''UUttiilliissaatteeuurr // CCoonnttrr��llee ddeess AAcccc��ss
Il s'agit de l'une de mes options pr�f�r�es. Elle vous autorise �
prot�ger un r�pertoire ou un fichier par un mot de passe sans utiliser
de scripts CGI. Il vous autorise �galement � interdire ou � autoriser
l'acc�s sur la base de l'adresse IP ou du nom de domainde du client.
C'est une sp�cificit� tr�s int�ressante pour laisser les cr�tins hors
de votre messagerie et des vos livres d'or (vous avez l'IP ou le nom
de domaine � partir de vos fichiers de log).
Pour autoriser l'authentification de l'utilisateur le r�pertoire doit
avoir AllowOverrides AuthConfig dans le fichier access.conf. Pour
autoriser le contr�le d'acc�s (par domaine ou adresse IP)
AllowOverrides Limit doit �tre mis pour ce r�pertoire.
La configuration du r�pertoire oblige le placement d'un fichier
.htaccess dans le r�pertoire. Pour l'authentification de l'utilisateur
il est �galement utilis� avec un .htpasswd et optionnellement un
fichier .htgroup. Ces fichiers peuvent �tre partag�es pour de
multiples fichiers .htaccess si vous le d�sirez.
Pour des raisons de s�curit� je recommande que chacun utilise ces
directives dans leur fichier access.conf:
<files ~ "/\.ht">
order deny,allow
deny from all
</files>
Si vous n'�tes pas l'administrateur du syst�me vous pouvez �galement
l'ajouter dans votre fichier .htaccess si AllowOverride Limit est
configur� pour votre r�pertoire. Cette directive interdira � quiconque
de regarder dans vos fichiers de contr�le d'acc�s (.htaccess,
.htpasswd, etc).
Il y a de nombreux types de fichiers et d'options qui peuvent �tre
utilis�s avec le contr�le d'acc�s. Toutefois il n'est pas de la
comp�tence de ce document de d�crire ces fichiers. Pour les
informations sur la configuration de l'authentification des
utilisateurs voyez l'article d'Apacheweek �
<
http://www.apacheweek.com/features/userauth> ou les pages de la NCSA
� <
http://hoohoo.ncsa.uiuc.edu/docs-1.5/tutorials/user.html>.
77..1100.. ssuu--eexxeecc
su-exec lance les scripts CGI en tant qu'utilisateur du propri�taire.
Normalement ils sont lanc�s en tant qu'utilisateur du serveur web
(g�n�ralement nobody). Ceci autorise les utilisateurs � acc�der �
leurs propres fichiers CGI sans les rendre autoris�s en �criture (un
trou de s�curit�). Mais si vous ne fa�tes pas attention vous pouvez un
trou encore plus gros en utilisant le code su-exec. Celui-ci effectue
des contr�les de s�curit� avant d'ex�cuter les scripts, mais si vous
le configurez de mani�re incorrecte vous aurez un trou de s�curit�.
Le code su-exec n'est pas pour les amateurs. Ne l'utilisez pas si vous
ne savez pas ce que vous fa�tes. Vous pouvez terminer par un gros
probl�me de s�curit� o� vos utilisateurs peuvent obtenir des acc�s
super-utilisateurs pour votre syst�me. Ne modifiez pas le code
quelqu'en soit la raison. Lisez attentivement toute la documentation.
Le code su-exec est intentionnellement difficile � configurer afin
d'�viter l'utilisation par des amateurs (tout doit �tre fait � la
main, il n'y a pas de script d'installation).
Le code su-exec se trouve dans le r�pertoire support des sources. Tout
d'abord vous devez �diter le fichier suexec.h pour votre syst�me.
Ensuite vous devez compiler le code su-exec avec cette commande:
gcc suexec.c -o suexec
Copiez ensuite l'ex�cutable suexec dans le r�pertoire appropri�.
Apache le place par d�faut dans /usr/local/etc/httpd/sbin/. Ceci peut
�tre chang� en �ditant le fichier httpd.h dans les sources d'Apache et
en recompilant Apache. Apache regardera seulement dans ce r�pertoire,
Il ne cherchera pas ailleurs. Ensuite le fichier doit �tre chang� pour
la possession par le super-utilisateur (chown root suexec) et les per�
missions doivent �tre chang�es (chmod 4711 suexec). Enfin relancez
Apache, il doit vous donner un message sur la console indiquant que
su-exec est utilis�.
Les scripts CGI doivent �tre mis en ex�cutable par tous comme
d'habitude. Ils seront automatiquement lanc�s par le possesseur du
script CGI. Si vous changez les permissions les scripts CGI ne
fonctionneront pas. Si le r�pertoire ou le fichier est en �criture par
tous ou par un groupe le script ne fonctionnera pas. Les scripts
poss�d�s par les utilisateurs syst�me ne doivent pas �tre lanc�s
(root, bin, etc.). Pour les autres conditions de s�curit� qui doivent
�tre remplies voyez la documentation de su-exec. Si vous avez des
probl�mes voyez le fichier de log de su-exec nomm� cgi.log.
Su-exec ne fonctionne pas si vous lancez Apache par inetd, il
fonctionne seulement en mode d�mon. Ceci sera fix� dans la prochaine
version car il n'y aura pas de mode inetd. Si vous aimez jouer avec le
code source, vous pouvez �diter le fichier http_main.c. Vous pouvez
rire de la ligne o� Apache annonce qu'il utilise le su-exec wrapper
(ceci est faussement marqu� sur l'avant de toute sortie).
Lisez attentivement la documentation d'Apache sur su-exec. Elle est
inclue dans les sources et est disponible sur le site web d'Apache �
<
http://www.apache.org/docs/suexec.html>.
77..1111.. IImmaaggeemmaappss
Apache peut g�rer des cartes d'images du c�t� du serveur. Ce que l'on
appelle "Imagemaps" sont les images des pages web qui envoient les
utilisateurs � divers emplacements, d�pendant de l'endroit o� ils
cliquent. Pour utiliser les imagemaps v�rifiez que le module imagemap
est install� (c'est un des modules par d�faut). Ensuite vous devez
supprimer le commentaire de la ligne .map � la fin du fichier
srm.conf. Maintenant tous les fichiers se terminant en .map seront
des fichiers d'imagemap. Les fichiers imagemap d�limitent diff�rentes
aires sur l'image renvoyant vers des liens s�par�s. Apache utilise des
fichiers d'aires au format standard NCSA. Voici un exemple utilisant
un fichier d'aire dns une page web:
<a href="/map/mapfile.map">
<img src="picture.gif" ISMAP>
</a>
Dans cette exemple mapfile.map est le fichier d'aires, et picture.gif
est l'image cliquable.
Il y a de nombreux programmes qui peuvent g�n�rer des fichiers d'aires
compatibles NCSA ou vous pouvez les cr�er vous-m�me. Pour une
discussion plus d�taill�e sur les imagemaps et les fichiers d'aires
voyez l'article d'Apacheweek �
<
http://www.apacheweek.com/features/imagemaps>.
77..1122.. SSSSII//XXSSSSII
Les Server Side Includes (SSI) ajoutent un contenu dynamique � des
pages web qui sinon seraient statiques. Les en-t�tes sont ajout�s dans
les pages web en tant que commentaires. Le serveur web les ex�cute
ensuite et passe les r�sultats au serveur web. SSI peut ajouter des
en-t�tes et des notes de pieds aux documents, ajouter la date �
laquelle le document a �t� modifi� pour la derni�re fois, ex�cuter une
commande syst�me ou un script CGI. avec le tout nouveau eXtended
Server Side Includes (XSSI) vous pouvez faire bien plus. XSSI ajoute
les variables et les instructions de contr�le du flux (if, else, etc).
C'est quasiment comme avoir un langage de programmation avec lequel on
peut travailler.
L'analyse syntaxique de tous les fichiers pour les commandes SSI
utiliserait beaucoup de ressources syst�me. Cependant vous devez
distinguer les fichiers HTML normaux de ceux qui contiennent les
commandes SSI. Ceci se fait g�n�ralement en changeant l'extension des
fichiers HTML utilisant SSI. G�n�ralement on utilise l'extension
.shtml.
Pour faire fonctionner SSI/XSSI v�rifiez tout d'abord que le module
des en-t�tes est install�. Editez ensuite srm.conf et supprimez les
commentaires des directives AddType et AddHandler pour les fichiers
.shtml. Finalement vous devez configurer Options Includes pout tous
les r�pertoires o� vous d�sirez lancer des fichiers SSI/XSSI. Ceci se
fait dans le fichier access.conf. Maintenant tous les fichiers avec
l'extension .shtml seront analys�s pour les commandes SSI/XSSI.
Un autre moyen de faire fonctionner les en-t�tes est d'utiliser la
directive XBitHack. Si vous la mettez en marche il regardera si le
fichier est ex�cutable par l'utilisateur. Si il l'est et que Options
Includes est autoris� pour le r�pertoire, alors le fichier sera trait�
comme un fichier SSI. Ceci fonctionne seulement pour les fichiers dont
le type mime est text/html (fichiers .html .htm). Ceci n'est pas la
m�thode pr�f�r�e.
Il y a un risque pour la s�curit� en autorisant SSI � ex�cuter des
commandes syst�mes et des scripts CGI. Toutefois il est possible de
bloquer cette possibilit� avec la directire Option IncludesNOEXEC au
lieu de Option Includes dans le fichier access.conf. Toutes les autres
commandes SSI fonctionneront encore.
Pour plus d'informations voyez la documentation d'Apache mod_includes
qui se trouve dans les sources. Il est �galement disponible sur le
site web � <
http://www.apache.org/docs/mod/mod_include.html>.
Pour une discussion plus d�taill�e de l'impl�mentation SSI/XSSI voyez
l'article d'Apacheweek � <
http://www.apacheweek.com/features/ssi>.
Pour plus d'informations sur les commandes SSI voyez la documentation
de la NCSA �
<
http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html>.
Pour plus d'informations sur les commandes XSSI allez sur
<
ftp://pageplus.com/pub/hsf/xssi/xssi-1.1.html>.
77..1133.. SSyysstt��mmee mmoodduullaaiirree
Apache peut �tre �tendu pour supporter quasiment tout avec les
modules. Il y a beaucoup de modules qui existent d�j�. Seul les
modules d'int�r�t g�n�ral sont inclus avec Apache. Pour les liens vers
les modules existants allez voir le
Apache Module Registry � <
http://www.zyzzyva.com/module_registry/>.
Pour les informations sur la programmation des modules voyez
<
http://www.zyzzyva.com/module_registry/reference/>
88.. AAjjoouuttss aauu sseerrvveeuurr wweebb
D�sol�, cette section n'a pas encore �t� �crite.
A venir bient�t: mSQL, PHP/FI, cgiwrap, Fast-cgi, MS frontpage
extentions, et beaucoup d'autres.
99.. FFAAQQ ((FFooiirree AAuuxx QQuueessttiioonnss))
Il n'y a pas de question fr�quemment pos�es - pour l'instant...
1100.. DDooccuummeennttss pplluuss aavvaanncc��ss
1100..11.. LLiivvrreess ddee cchheezz OO''RReeiillllyy && AAssssoocciiaatteess
A mon avis O'Reilly & Associates �ditent les meilleures r�f�rences
techniques de la plan�te. Ils concentrent leurs efforts sur des sujets
comme l'Internet, Unix et la programmation. Ils commencent tout
doucement avec beaucoup d'exemples et lorsque vous terminez le livre
vous �tes un expert. Je pense que vous pouvez arr�ter m�me si vous
avez seulement lu la moiti� du livre. Ils ajoutent �galement un peu
d'humour � des sujets qui sinon seraient lassants.
Ils disposent d'excellents livres sur HTML, PERL, la programmation
CGI, Java, JavaScript, C/C++, Sendmail, Linux et beaucoup d'autres. De
plus les sujets changeant rapidement (comme le HTML) sont mis � jour
et r�vis�s tout les six mois environ. Visitez donc le site web
d'O'Reilly & Associates <
http://www.ora.com/> ou arr�tez vous chez
votre libraire local pour plus d'informations.
Et rappellez vous que s'il n'est pas marqu� O'Reilly & Associates sur
la couverture, c'est probablement quelqu'un d'autre qui l'a �crit.
1100..22.. IInntteerrnneett RReeqquueesstt FFoorr CCoommmmeennttss ((RRFFCC))
� RFC1866 written by T. Berners-Lee and D. Connolly, "Hypertext
Markup Language - 2.0", 11/03/1995
� RFC1867 writtenm by E. Nebel and L. Masinter, "Form-based File
Upload in HTML", 11/07/1995
� RFC1942 written by D. Raggett, "HTML Tables", 05/15/1996
� RFC1945 by T. Berners-Lee, R. Fielding, H. Nielsen, "Hypertext
Transfer Protocol -- HTTP/1.0", 05/17/1996.
� RFC1630 by T. Berners-Lee, "Universal Resource Identifiers in WWW:
A Unifying Syntax for the Expression of Names and Addresses of
Objects on the Network as used in the World-Wide Web", 06/09/1994
� RFC1959 by T. Howes, M. Smith, "An LDAP URL Format", 06/19/1996