Apache Tutoriel

Embed Size (px)

Citation preview

  • 8/22/2019 Apache Tutoriel

    1/56

    Les dossiers Open Source de la

    Patrick Cardona

    Configurer Apache

    mars 2007

  • 8/22/2019 Apache Tutoriel

    2/56

    i

    Ce dossier est public et libre au sens de la licence GNU-FDL :

    Permission vous est donnee de copier, distribuer et/ou modifier

    ce document selon les termes de la Licence GNU Free Documenta-

    tion License, Version 1.1 ou ulterieure publiee par la Free Software

    Foundation.

    2007 Patrick CARDONA & Mission Academique TICE de

    Montpellier

    Une copie de cette Licence GNU Free Documentation License est

    consultable sur le site de la Fondation GNU [1].

  • 8/22/2019 Apache Tutoriel

    3/56

    Sommaire

    Introduction iv

    1 Principe de fonctionnement 1

    2 Installation et configuration de base 2

    2.1 Sur un systeme Windows . . . . . . . . . . . . . . . . . . . . . . . . 2

    2.1.1 Execution du programme dinstallation . . . . . . . . . . . . 2

    2.1.2 Arret / Demarrage du serveur . . . . . . . . . . . . . . . . . 6

    2.2 Sur un systeme GNU/Linux . . . . . . . . . . . . . . . . . . . . . . 10

    2.2.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.2.2 Arret / Demarrage du serveur . . . . . . . . . . . . . . . . . 11

    2.3 Test de linstallation . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    3 Configuration initiale 13

    3.1 Les fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . 13

    3.2 Les directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    3.3 Configuration initiale . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    4 Repertoire virtuel 15

    4.1 Sur Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    4.2 Sur GNU/Linux ou BSD . . . . . . . . . . . . . . . . . . . . . . . . 15

    5 Authentification 17

    5.1 Restriction dacces au repertoire ESSAI . . . . . . . . . . . . . . . . 17

    ii

  • 8/22/2019 Apache Tutoriel

    4/56

    SOMMAIRE iii

    5.1.1 Mise en uvre dans un environnement Windows . . . . . . 17

    5.1.2 Mise en uvre dans un environnement GNU/Linux . . . . 19

    6 Indexation 21

    6.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    6.2 Combinaison de directives et doptions . . . . . . . . . . . . . . . . 22

    6.2.1 Avec loption Options None dans la directive . . . . . . . . 22

    6.2.2 Avec loption Options Indexes dans la directive Directory 24

    6.2.3 Pour masquer le repertoire parent dans la liste du contenu

    de repertoire (variante du 6.2.2 ci-dessus) : . . . . . . . . . 25

    6.2.4 Pour ameliorer laffichage (variante du 6.2.3) . . . . . . . . 26

    7 Journalisation 27

    7.1 Directives et formats de journalisation . . . . . . . . . . . . . . . . 27

    7.2 Rotation quotidienne des journaux . . . . . . . . . . . . . . . . . . 28

    7.3 Outils de statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    8 Gestion des pages dynamiques 29

    8.1 Interpreteur Perl et scripts CGI . . . . . . . . . . . . . . . . . . . . 29

    8.1.1 Installation de Perl sous Windows . . . . . . . . . . . . . . . 298.1.2 CGI Perl sur un serveur GNU/Linux . . . . . . . . . . . . . 34

    8.2 Interpreteur PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    8.2.1 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    8.2.2 Installation de PHP sur un systeme Microsoft Windows . . 3 7

    8.2.3 Installation de PHP sur un systeme GNU/Linux. . . . . . . 45

    A Les messages derreur 46

    B Sources des scripts 47

    B.1 CGI Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    C Colophon 49

  • 8/22/2019 Apache Tutoriel

    5/56

    Introduction

    Ce petit manuel se propose de rappelera travers quelques exemples simples

    les principaux aspects de la configuration dun serveur Web Apache [10] : ins-

    tallation et configuration de base, notion de Directive, creation dun r epertoire

    virtuel, authentification, indexation et journalisation, ainsi que pages dyna-

    miques au moyen de scripts Perl [9] ou PHP [17].

    Le serveur Web Apache est un logiciel Open source [6] et multiplate-forme :

    on peut linstaller aussi bien sur un hote GNU/Linux [21], FreeBSD [16]

    ou un serveur Microsoft Windows [8] 2003. La configuration sera identique,

    a lexception de certains fichiers parfois repartis en deux ou trois fichiers

    complementaires ou la notation des chemins de repertoires, qui seront specifiques

    a chaque systeme (Type MS-DOS ou UNIX).

    iv

  • 8/22/2019 Apache Tutoriel

    6/56

    Chapitre1

    Principe de fonctionnement

    Un serveur Web communique avec un client (navigateur tel que Microsoft

    Internet Explorer [18], Firefox [12] ou Camino [20]) au moyen du protocole

    HTTP [5]. On peut resumer ainsi le dialogue :

    1. Le client demande un fichier (ou une liste de repertoire, voir indexation,

    chapitre 6.2.4 page 27) au moyen dune URL. Cest une (( requete )) de la

    forme :

    http://serveur:port/dossier/fichier

    Par exemple :

    http://pedagogie.ac-montpellier.fr:8080/technologie/modele.zip

    2. Le serveur examine les points suivants :

    (a) le fichier demande existe, sinon il renvoie un message derreurA.

    (b) il existe une restriction dacces : dans ce cas le serveur demande

    prealablement un identifiant (login) et un mot de passe, et gere les

    eventuelles erreurs A; sinon le fichier demande est envoye au navi-

    gateur qui le traite en fonction de son type (affichage, ouverture au

    moyen dun programme incorpore (plugin) ou exterieur, enregistre-

    ment sur le disque, etc.)

    (c) le navigateur met fin a la requete. Parfois, la connexion est rompue

    par le serveur si le delai de connexion prevu a ete depasse.Certains noms de fichiers sont des scripts (extension .php ou .pl, par

    exemple) et sont prealablement interpretes sur le serveur par un interpreteur

    PHP [17] ou Perl [9] avant de renvoyer un flux de texte qui resulte de ce

    traitement. Cest la notion de page dynamique, chapitre 8 page 29. Ces scripts

    peuvent servir dinterface a des bases de donnees comme MySQL [19].

    1

  • 8/22/2019 Apache Tutoriel

    7/56

    Chapitre2

    Installation et configuration debase

    Lors de linstallation dApache, veillez a respecter les caracteristiques sui-

    vantes :

    Le serveur Apache doitetre installe en tant que (( service )) ;

    Si vous faites cohabiter ce serveur avec un autre serveur Web qui ecoute

    par defaut sur le port80, le serveur Apache doit alors ecouter les requetes

    HTTP [5] sur un autre port, conventionnellement le port 8080.

    2.1 Sur un systeme Windows

    Dans ce qui suit, on choisit comme emplacement du dossier dinstallation :

    C:\Apache. Sinon, tenez-en compte dans les parametres a adapter le cas

    echeant.

    2.1.1 Execution du programme dinstallation

    On installe la version 2.2.4 sur un serveur Windows [8] 2003 a partir du

    fichier MSI suivant :apache_2.2.4-win32-x86-no_ssl.msi

    1. Clic-droit surapache_2.2.4-win32-x86-no_ssl.msi

    Dans le menu contextuel, choisissez (( Installer)).

    2. Le dialogue de certificat (figure 2.1) saffiche : ne tenez pas compte du

    message alarmant. Apache nest pas un produit Microsoft, voila tout. . .

    Cliquez sur Executer .

    3. Le dialogue de lAssistant (angl. wizard) dinstallation s affiche (figure 2.2) :

    bouton Next

    2

  • 8/22/2019 Apache Tutoriel

    8/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 3

    FIG. 2.1 Certificat dinstallation

    FIG . 2.2 Assistant dinstallation

  • 8/22/2019 Apache Tutoriel

    9/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 4

    FIG . 2.3 Licence

    4. Le dialogue relatifa la Licence saffiche (figure 2.3) : selectionnez loption

    (( I accept the terms. . . )), puis cliquez sur Next .

    5. Le dialogue (( Read this first)) saffiche (figure 2.4) : cliquez sur Next .

    6. Le dialogue (( Server Information )) saffiche (figure 2.5) :

    Renseignez les champs demandes :

    Network Domain : nom de domaine, par exemple :

    ac-montpellier.fr

    Server Name : nom qualifie du serveur, par exemple :monserveur.ac-montpellier.fr

    Administrators Email address : courriel du webmestre, par exemple :

    [email protected]

    Choisissez loption (( For all users, on Port 80, as a ser-

    vice. . . ))

    Autrement dit : le serveur Apache fonctionnera en tant que service,

    independamment des sessions locales des utilisateurs connectes au ser-veur.

    N.B. : Ne vous inquietez pas du port80 qui sera effectivement modifie a

    posteriori.

    Cliquez sur Next .

    7. Le dialogue (( Setup Type )) saffiche (figure 2.6). Conservez loption (( Ty-

    pical )) puis cliquez sur Next .

    8. Le dialogue (( Destination Folder))saffiche (figure 2.7) : cliquez sur Change ,

    puis sur licone (( Create new folder)) : creez un dossier Apache a la ra-

  • 8/22/2019 Apache Tutoriel

    10/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 5

    FIG . 2.4 `A lire (en anglais. . .)

    FIG . 2.5 Configuration de base

  • 8/22/2019 Apache Tutoriel

    11/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 6

    FIG. 2.6 Type dinstallation

    cine du lecteur C:

    C:\Apache

    9. Le dialogue (( Ready to Install. . . )) saffiche (figure 2.8) : cliquez sur Install .

    10. Enfin le dialogue (( Installation Wizard completed )) (figure ) succede a une

    bote de progression (qui sest affichee quelques secondes seulement) :

    cliquez sur (( Finish ))

    2.1.2 Arret / Demarrage du serveur

    2.1.2.1 Methode graphique

    Vous remarquerez dans la zone de notification, a cote de lhorloge, une

    icone dont lapparence indique letat du serveur : demarre ou arr ete :

    .

    En cliquant sur cette icone, il est possible dafficher un menu permettant

    larret ou le (re)demarrage du serveur (figure 2.10)

  • 8/22/2019 Apache Tutoriel

    12/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 7

    FIG . 2.7 Repertoire de destination

    FIG. 2.8 Pret pour linstallation

  • 8/22/2019 Apache Tutoriel

    13/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 8

    FIG. 2.9 Fin de linstallation

    FIG . 2.10 Menu arret / (re)demarrage du serveur

  • 8/22/2019 Apache Tutoriel

    14/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 9

    FIG . 2.11 Arret / (re)demarrage du serveur dans une invite de commande

    CMD

    2.1.2.2 Dans une invite de commande

    Ouvrez une invite de commande CMD (figure 2.11).

    Recherche du service : net start |find "Apache"

    renvoie le nom du service :

    Apache2

    Arret du service : net stop Apache2

    Demarrage du service : net start Apache2

    N.B. : Il nexiste pas de commande restart en ligne de commande : on est

    oblige de proceder en deux temps : net stop puis net start.

  • 8/22/2019 Apache Tutoriel

    15/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 10

    2.2 Sur un systeme GNU/Linux

    Nous prenons lexemple dun systeme fonde surDebian : Ubuntu [11].

    2.2.1 Installation

    1. Ouvrez une console ou une emulation de terminal (Xterm).

    2. Installez Apache2 au moyen de loutil apt-get :

    sudo apt-get install apache2

    Lecture des listes de paquets... Fait

    Construction de larbre des dependances

    Lecture de linformation detat... Fait

    Les paquets supplementaires suivants seront installes :

    apache2-common apache2-mpm-worker apache2-utilslibapr0

    Paquets suggeres :

    apache2-doc

    Les NOUVEAUX paquets suivants seront installes :

    apache2 apache2-common apache2-mpm-worker

    apache2-utils libapr0

    0 mis a jour, 5 nouvellement installes, 0 a enlever

    et 4 non mis a jour.

    Il est necessaire de prendre 1282ko dans les archives.

    Apres depaquetage, 4325ko despace disque supple-

    mentaires seront utilises.Souhaitez-vous continuer [O/n] ?

    3. Aceptez en saisisant puis Entree

    (...)

    Depaquetage de apache2 (a partir de

    .../apache2_2.0.55-4ubuntu4_i386.deb) ...

    Parametrage de libapr0 (2.0.55-4ubuntu4) ...

    Parametrage de apache2-utils (2.0.55-4ubuntu4) ...

    Parametrage de apache2-common (2.0.55-4ubuntu4) ...

    Setting Apache2 to Listen on port 80. If this is not

    desired, please edit /etc/apache2/ports.conf as desired.

    Note that the Port directive no longer works.

    Module userdir installed; run /etc/init.d/apache2

    force-reload to enable.

    Parametrage de apache2-mpm-worker

    (2.0.55-4ubuntu4)

    ...

    * Starting apache 2.0 web server...

    apache2: Could not determine the servers fully

  • 8/22/2019 Apache Tutoriel

    16/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 11

    qualified domain name, using 127.0.0.1 for

    ServerName [ ok ]

    Et hop ! cest deja fini. . .Le serveur est demarre. Qui a dit que GNU/Linux [21]

    etait complique ?

    2.2.2 Arret / Demarrage du serveur

    Dans une console ou un terminal emule :

    Arret du serveur sudo /etc/init.d/apache2 stop

    Password:

    * Stopping apache 2.0 web server...

    Demarrage du serveur sudo /etc/init.d/apache2 start

    Password:

    * Starting apache 2.0 web server... [ ok ]

    Redemarrage du serveur sudo /etc/init.d/apache2 restart

    Password:

    * Forcing reload of apache 2.0 web server... [ ok ]

    2.3 Test de linstallation

    Une fois le service demarre, ouvrez dans votre navigateur lURL :

    http://localhost:80/

    ou

    http://localhost:8080/

    en fonction du port choisi.

    Selon les environnements, vous obtiendrez une page laconique (( It works ! ))

    sur Windows [8] ou un listage de la racine sur Ubuntu [11], par exemple

    (figure 2.12).

  • 8/22/2019 Apache Tutoriel

    17/56

    CHAPITRE 2. INSTALLATION ET CONFIGURATION DE BASE 12

    FIG . 2.12 Test de linstallation

  • 8/22/2019 Apache Tutoriel

    18/56

    Chapitre3

    Configuration initiale

    3.1 Les fichiers de configuration

    Apache utilise essentiellement deux sortes de fichiers de configuration :

    Le fichier de configuration generale, httpd.conf, place dans C:\Apache\conf

    (Windows [8]) ou apache2.conf place dans /etc/apache2 et associe

    a dautres fichiers (ports.conf et sites-available/default) sur les

    systemes GNU/Linux [21] ou BSD [16].

    Un fichier secondaire et facultatif, appele .htaccess , que lon copie

    dans certains repertoires. Nous en verrons un exemple dans le cha-

    pitre 5.1.2, page 21.

    3.2 Les directives

    Le fichier principal httpd.conf ou apache2.conf se compose de lignes

    simples sous la forme Clef Valeur, comme celles-ci :

    ServerRoot "C:/Apache"

    Listen 8080

    Ou bien de sections appelees Directives, constituees dune balise ouvrante

    , dune serie de paires Option Valeur regroupees, et pour clore le

    tout, dune balise fermante , ce qui ressemble a ceci :

    Option Valeur

    Option Valeur

    (...)

    13

  • 8/22/2019 Apache Tutoriel

    19/56

    CHAPITRE 3. CONFIGURATION INITIALE 14

    Par exemple, voici la directive du repertoire des scripts CGI :

    AllowOverride NoneOptions None

    Order allow,deny

    Allow from all

    Un commentaire est precede du signe diese #

    3.3 Configuration initiale

    Voici les Options a adapter ou a verifier :

    1. Racine du serveur (dossier dinstallation)

    # Sur Windows :

    ServerRoot "C:/Apache"

    # ou bien sur GNU/Linux ou BSD :

    ServerRoot "/usr/var/Apache2"

    2. Le port sur lequel ecoute le serveurApache: optionListen

    . Pour ecoutersur le port 8080, on ecrit dans httpd.conf (sur Windows) ou bien dans

    /etc/apache2/ports.conf sur GNU/Linux ou BSD :

    Listen 8080

    3. La racine des documents servis par le serveur Web se trouve indiquee

    soit dans httpd.conf (sur Windows), soit dans /etc/apache2/sites-available/d

    sur GNU/Linux ou BSD

    # Sur Windows

    DocumentRoot "C:/Apache/htdocs"

    # Sur GNU/Linux ou BSD

    DocumentRoot /var/www

    Pour prendre en compte un changement doption, il

    faut redemarrer le serveur Apache.

  • 8/22/2019 Apache Tutoriel

    20/56

    Chapitre4

    Repertoire virtuel

    4.1 Sur Windows

    Pour creer un Alias ESSAI pointant vers le dossier D:\essai_Apache :

    1. Creez prealablement le repertoire D:\essai_Apache

    2. Editez le fichierhttpd.conf et ajoutez-y la directive suivante, a linterieur

    de la directive . . . 1 :

    Alias /ESSAI/ D:/essai_apache/

    AllowOverride AuthConfig

    Options Indexes

    IndexOptions FancyIndexing

    IndexIgnore ..

    Order allow,deny

    Allow from all

    3. On redemarre le serveur Apache...

    Les differentes options seront expliquees dans les chapitres suivants (au-

    thentification et indexation).

    4.2 Sur GNU/Linux ou BSD

    1. On cree le dossier /home/essai_Apache

    2. Dans /etc/apache2/sites-enabled/ on ajoute la directive :

    Alias /ESSAI/ "/home/essai_Apache/"

    1Cette directive remplace lancienne directive IfModule mod alias.c

    15

  • 8/22/2019 Apache Tutoriel

    21/56

    CHAPITRE 4. REPERTOIRE VIRTUEL 16

    FIG . 4.1 Requete sur lAlias ESSAI

    Options Indexes MultiViews FollowSymLinks

    #AllowOverride None

    AllowOverride AuthConfig

    Order deny,allow

    Deny from all

    Allow from 127.0.0.0/255.0.0.0 ::1/128

    3. On redemarre le serveur Apache...

    Et voila. . .(figure 4.1)

  • 8/22/2019 Apache Tutoriel

    22/56

    Chapitre5

    Authentification

    5.1 Restriction dacces au repertoire ESSAI

    Pour mettre en uvre ce controle dacces, nous utilisons un fichier.htaccess

    pour restreindre cet acces a un utilisateur autorise : matice.

    Avant de suivre les etapes suivantes, assurez-vous davoir cree u n r epertoire

    virtuel ESSAI comme indique dans le chapitre 4 et davoir remplace loption :

    AllowOverride None

    par

    AllowOverride AuthConfig

    5.1.1 Mise en uvre dans un environnement Windows

    1. Dabord, le fichier des mots de passe : creez un dossier C:\Apache\etc,

    2. Copiez-y lutilitaire C:\Apache\bin\htpasswd.exe,

    3. Ouvrez une invite de commande CMD,

    4. Deplacez-vous dans le dossierC:\Apache\etc :

    CD \

    CD Apache\etc

    5. Executez-y la commande suivante :htpasswd.exe -bc .htpasswd matice motdepasse

    En y remplacant motdepasse, bien evidemment. Notez precieusement ce

    mot de passe afin de le diffuser aux personnes autorisees.

    Il convient de garder le nom de fichier .htpasswd car le serveur Apache

    interdit par defaut laffichage de ce fichier par un utilisateur distant. Le

    contenu du fichier.htpasswd ressemble a ceci :

    matice:motdepassecrypte

    17

  • 8/22/2019 Apache Tutoriel

    23/56

    CHAPITRE 5. AUTHENTIFICATION 18

    FIG. 5.1 Authentification requise pour acceder a ESSAI

    6. Maintenant que le fichier de mots de passe est cree, nous pouvons appli-

    quer la restriction dacces au moyen dun fichier .htaccess : deplacez-

    vous dans D:\essai_Apache.

    D:

    CD \essai_Apache

    7. Creez-y un fichier htaccess.txt :

    Notepad htaccess.txt

    8. Et saisissez-y ceci :

    Authname "ESSAI"

    AuthUserFile C:/Apache/etc/.htpasswd

    AuthType Basic

    require valid-user

    9. Enregistrez le fichier et renommez le ainsi :

    MOVE htaccess.txt .htaccess

    10. Testez la connexion : dans un navigateur, saisissez lURL :

    http://localhost:8080/ESSAI/

    Vous devez voir apparatre linvite dauthentification comme sur la fi-

    gure 5.1.

  • 8/22/2019 Apache Tutoriel

    24/56

    CHAPITRE 5. AUTHENTIFICATION 19

    5.1.2 Mise en uvre dans un environnement GNU/Linux

    Pour mettre en uvre cette authentification, il faut dabord creer un fichier

    de mots de passe. Par defaut, loutil de creation du fichier de mots de passefourni par apache, htpasswd, utilise lalgorithme MD5.

    1. Creation du fichier des mots de passe. Dans une console ou un terminal

    emule, deplacez-vous dans le repertoire :

    /etc/apache2

    cd /etc/apache2

    2. Puis saisissez la commande :

    sudo htpasswd -bc .htpasswd matice motdepasse

    Ce qui cree le fichier concerne et y ajoute lutilisateur matice avec le mot

    motdepasse.

    Adding password for user maticeN.B. : Si vous omettez le mot de passe dans la commande precedente

    (option -c au lieu de -bc), une invite vous demande de saisir ce mot de

    passe sans echo a lecran, securite oblige !

    Notez precieusement ce mot de passe afin de le diffuser aux personnes

    autorisees.

    Il convient de garder le nom de fichier .htpasswd car le serveur Apache

    interdit par defaut laffichage de ce fichier par un utilisateur distant. Le

    contenu du fichier.htpasswd ressemble a ceci :

    matice:motdepassecrypte

    3. Maintenant que le fichier de mots de passe est cree, nous pouvons appli-quer la restriction dacces au moyen dun fichier .htaccess : deplacez-

    vous dans /home/essai Apache.

    cd /home/essai_Apache

    4. Creez-y un fichier .htaccess :

    touch .htaccess

    5. Editez-le dans votre editeur prefere1 :

    sudo vi .htaccess

    et saisissez-y ceci :

    Authname "ESSAI"

    AuthUserFile /etc/apache2/.htpasswdAuthType Basic

    require valid-user

    6. Enregistrez le fichier.

    7. Testez la connexion : dans un navigateur, saisissez lURL :

    http://localhost/ESSAI/

    Vous devez voir apparatre linvite dauthentification comme sur la fi-

    gure 5.2.

    1vi, nano. . .

  • 8/22/2019 Apache Tutoriel

    25/56

    CHAPITRE 5. AUTHENTIFICATION 20

    FIG . 5.2 Authentification requise pour acceder a ESSAI : serveur

    GNU/Linux, client Firefox

  • 8/22/2019 Apache Tutoriel

    26/56

    Chapitre6

    Indexation

    6.1 Principe

    Voici en quelques mots comment personnaliser la gestion de lindexation

    avec un serveur Web Apache. On travaille avec un alias de reference : ESSAI,

    ce qui correspond aux directives suivantes dans httpd.conf :

    Alias /ESSAI/ D:/essai_apache/

    AllowOverride None

    Options NoneOrder allow,deny

    Allow from all

    Et la directive commune :

    DirectoryIndex index.html

    qui designe le fichier index.html comme index par defaut si lURL est un

    repertoire. On peut aussi ajouter dautres fichiers dans cette liste, par ordre

    de priorite, separe par un espace ; par exemple :

    DirectoryIndex index.html index.htm index.php index.pl

    21

  • 8/22/2019 Apache Tutoriel

    27/56

    CHAPITRE 6. INDEXATION 22

    FIG . 6.1 Par defaut, erreur dacces 403

    6.2 Combinaison de directives et doptions

    6.2.1 Avec loption Options None dans la directive

    (...)

    Options None

    (...)

    La demande de lURL :

    http://localhost:8080/ESSAI/

    provoque un refus dacces si aucun fichier index.html nest present : erreur

    403 (figure 6.1).

    On peut aussi, dans loption DirectoryIndex, indiquer un chemin absolu

    vers un fichier derreur plus explicite si aucun des fichiers envisages nest

    dabord trouve :

    DirectoryIndex index.html /ESSAI/erreur.txt

    Ce qui donne alors le message de la figure 6.2.

  • 8/22/2019 Apache Tutoriel

    28/56

    CHAPITRE 6. INDEXATION 23

    FIG . 6.2 Message derreur personnalise

  • 8/22/2019 Apache Tutoriel

    29/56

    CHAPITRE 6. INDEXATION 24

    FIG. 6.3 Indexation avec loption Option Indexes

    6.2.2 Avec loption Options Indexes dans la directive Directory

    (...)

    Options Indexes

    (...)

    et labsence de fichier derreur personnalise :

    DirectoryIndex index.html index.htm index.php

    la demande de lURL :

    http://localhost:8080/ESSAI/

    provoque laffichage du contenu du repertoire si aucun fichier index.html

    nest present (figure 6.3) :

  • 8/22/2019 Apache Tutoriel

    30/56

    CHAPITRE 6. INDEXATION 25

    FIG. 6.4 Indexation avec loption IndexIgnore ..

    6.2.3 Pour masquer le repertoire parent dans la liste du contenude repertoire (variante du 6.2.2 ci-dessus) :

    On ajoute loption IndexIgnore suivie du nom du repertoire parent .. :

    (...)

    Options Indexes

    IndexIgnore ..

    Ce qui donne la figure 6.4.

  • 8/22/2019 Apache Tutoriel

    31/56

    CHAPITRE 6. INDEXATION 26

    FIG. 6.5 Indexation avec loption FancyIndexing

    6.2.4 Pour ameliorer laffichage (variante du 6.2.3)

    On ajoute loption IndexOptions FancyIndexing

    (...)

    Options Indexes

    IndexOptions FancyIndexing

    IndexIgnore ..

    (...)

    Ce qui donne la figure 6.5.

  • 8/22/2019 Apache Tutoriel

    32/56

    Chapitre7

    Journalisation

    7.1 Directives et formats de journalisation

    Sous Linux, lemplacement du journal des erreurs est indique dans /etc/apache2/apa

    par la directive ErrorLog :

    ErrorLog /var/log/apache2/error.log

    Les autres parametres de journalisation sont indiques dans chaque fichier

    de configuration lie a un site dans le r epertoire /etc/apache2/sites-available :

    Le niveau dalerte est defini par la directive LogLevel dans le fichier de confi-guration default. Par exemple :

    LogLevel warn

    Les valeurs possibles sont, du plus benin au plus grave : debug, info, notice,

    warn, error, crit.

    Lemplacement du journal de connexion est indique par la directive CustomLog :

    CustomLog /var/log/apache2/access.log combined

    Par defaut, Apache propose quatre formats de journaux, decrits dans la

    directive LogFormat du fichierapache2.conf. Les voici du plus complexe au

    plus simple : combined, common, referer, agent.

    Voici, par exemple, la definition de common :

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

    27

  • 8/22/2019 Apache Tutoriel

    33/56

    CHAPITRE 7. JOURNALISATION 28

    7.2 Rotation quotidienne des journaux

    Par defaut, Apache cree un journal acces.log dont la taille peut atteindre

    5 Go ! Il convient de decouper automatiquement ce journal. Loutil fourniavec Apache, logrotate.exe dans le cas de Windows, ou logrotate sous

    GNU/Linux, ne convient pas car il produit des journaux incrementes de la

    forme accessi.log ou i prend a chaque rotation la valeur i + 1.

    Cette convention de nommage ne permet pas une recherche par date. Nous

    conseillons dutiliser un outil tiers appele cronolog [13]. Prenons le cas dun

    dun journal Apache sous Windows :

    1. Telechargez larchive : win32 version (ZIP file), [14],

    2. Decompressez-la,

    3. Copiez lexecutable cronolog.exe

    4. Creez un dossier C:\cronolog,

    5. Collez-y lexecutable,

    6. Editez le fichier de configuration dApache ainsi :

    Notepad C:\Apache\conf\httpd.conf

    7. Reperez la section :

    8. Puis modifiez ainsi la directive CustomLog :

    CustomLog "| C:/cronolog/cronolog.exe logs/access-%Y%m%d.log" common

    9. Redemarrez le serveur apache.

    10. Verifiez dans C:\Apache\logs la prise en compte du nouveau format.

    7.3 Outils de statistiques

    Il existe des outils de statistiques dedies a lanalyse des serveurs Web.

    Voyez notre dossier consacre a awstats [23].

  • 8/22/2019 Apache Tutoriel

    34/56

    Chapitre8

    Gestion des pages dynamiques

    8.1 Interpreteur Perl et scripts CGI

    8.1.1 Installation de Perl sous Windows

    1. On se procure la distribution Perl de lediteur Activestate, ActivePerl.

    Dans notre cas, la version est : ActivePerl 5.8.8 Build 819.

    (a) Execution de lAssistant dinstallation (figure 8.1).

    (b) Dans le dialogue suivant, selectionnez loption((

    I accept the terms. . .))

    ,puis cliquez sur Next (figure 8.2).

    (c) Dans le dialogue suivant, selectionnez les elements indiques, sans

    installer la documentation ni les exemples, puis cliquez sur Next

    (figure 8.3).

    (d) Dans le dialogue suivant, decochez la derniere option (( Create virtual

    IIS directory. . . )), puis cliquez sur Next (figure 8.4).

    Dans le dialogue suivant, lancez linstallation en cliquant sur Install

    (figure 8.5).

    (e) Refermez lassistant en cliquant sur Finish dans le dialogue sui-

    vant (figure 8.6).

    29

  • 8/22/2019 Apache Tutoriel

    35/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 30

    FIG . 8.1 Installation de Perl (1)

    FIG . 8.2 Installation de Perl (2)

  • 8/22/2019 Apache Tutoriel

    36/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 31

    FIG . 8.3 Installation de Perl (3)

    FIG . 8.4 Installation de Perl (4)

  • 8/22/2019 Apache Tutoriel

    37/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 32

    FIG . 8.5 Installation de Perl (5)

    FIG . 8.6 Installation de Perl (6)

  • 8/22/2019 Apache Tutoriel

    38/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 33

    FIG . 8.7 Installation de Perl (7)

    2. Maintenant que Perl est installe, il faut configurerApachepour les scripts

    Perl-CGI. Dans notre exemple, linterpreteur perl est dans C:\Perl\bin\

    (a) Si on essaie tout de suite dinvoquer une URL avec un fichier .pl ,

    celui-ci ne sera pas correctement interprete (figure 8.7).

    Pour eviter ce type derreur, il faut respecter trois principes :

    Tout script Perl doit commencer par une (( incantation )), cette

    premiere ligne, non indentee debutant par#! et contenant le che-

    min de lexecutable perl.exe ; dans notre cas :

    #!c:/perl/bin/perl.exe -w

    Il faut aussi placer les scripts dans un repertoire declare par la

    directive ScriptAlias, par exemple :

    ScriptAlias /cgi-bin/ "D:/cgi-bin/"

    Il faut indiquer enfin la directive Directory correspondante, placee

    en dehors de la section

    Par exemple :

    AllowOverride None

    Options None

    Order allow,denyAllow from all

    (b) Une fois ces modifications effectuees, un redemarrage du serveur

    Apache sera necessaire.

    (c) LURL appelee sera :

    http://localhost:8080/cgi-bin/monscript.pl?clef=essai

    On voit sur la capture decran (figure ) que le parametre Toutes a

    ete recupere par la script au moment de son interpretation.

    http://localhost:8080/cgi-bin/monscript.pl?clef=essaihttp://localhost:8080/cgi-bin/monscript.pl?clef=essai
  • 8/22/2019 Apache Tutoriel

    39/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 34

    FIG. 8.8 Execution correcte du script CGI-Perl

    Il ne faut pas placer le dossier cgi-bin sous un dos-

    sier deja associe a un alias existant.

    Par exemple, D:\essai_apache\cgi-bin\ avec lURLhttp://localhost:

    8080/ESSAI/cgi-bin/monscript.pl ne fonctionnera pas, car ESSAI est un

    alias, et provoquera une erreur.

    8.1.2 CGI Perl sur un serveur GNU/Linux

    Par defaut, toutes les distributions GNU/Linux ont une version de Perl ins-

    tallee. Nous donnons ici lexemple dune distribution de type Debian : Ubuntu.

    Pour connatre la version installee sur un systeme de type Debian/Ubuntu,

    executez la commande :

    dpkg -l perl

    Ce qui renvoie dans mon cas :

    ii perl 5.8.8-6 ...

    Pour determiner le chemin de lexecutable perl, on execute la commande

    suivante :

    whereis perl

    Ce qui dans mon cas renvoie :

    http://localhost:8080/ESSAI/cgi-bin/%20monscript.plhttp://localhost:8080/ESSAI/cgi-bin/%20monscript.plhttp://localhost:8080/ESSAI/cgi-bin/%20monscript.plhttp://localhost:8080/ESSAI/cgi-bin/%20monscript.pl
  • 8/22/2019 Apache Tutoriel

    40/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 35

    perl: /usr/bin/perl /etc/perl /usr/lib/perl /usr/X11R6/bin/perl

    Lincantation a placer au debut des scripts Perl sera donc :

    #!/usr/bin/perl -w

    Il faut aussi installer le module mod perl [22] dApache :

    sudo apt-get install libapache2-mod-perl2

    Pour verifier que ce module est bien active :

    sudo a2enmod perl

    This module is already enabled!

    Pour tester le script monscript.pl, dont lincantation a ete adaptee anotre environnement GNU/Linux (voir ci-dessus, chemin de linterpreteur

    perl) nous le copions dans :

    /usr/lib/cgi-bin/ :

    sudo cp monscript.pl /usr/lib/cgi-bin/

    Password:

    Ce chemin des CGI est conforme a la directive ScriptAlias dans :

    /etc/apache2/available_sites/default

    Celle-ci a ete adaptee ainsi afin de prendre mod perl comme interpreteur

    de scripts Perl dans Apache2 :

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

    SetHandler perl-script

    PerlResponseHandler ModPerl::Registry

    PerlOptions +ParseHeaders

    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

    Order allow,deny

    Allow from all

    Le serveur Apache2 ayant ete redemarre :

    sudo /etc/init.d/apache2 reload

    Ainsi lURL http://localhost/cgi-bin/monscript.pl

    affiche la page dynamique. . .(figure 8.9).

    Le source de la version GNU/Linux de monscript.pl est disponible dans

    lannexe.

    http://localhost/cgi-bin/monscript.plhttp://localhost/cgi-bin/monscript.pl
  • 8/22/2019 Apache Tutoriel

    41/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 36

    FIG. 8.9 Cgi Perl sous GNU/Linux

  • 8/22/2019 Apache Tutoriel

    42/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 37

    FIG. 8.10 Installation de PHP pour Apache (1)

    8.2 Interpreteur PHP

    8.2.1 PHP

    PHP [17] est un langage de script qui permet lecriture de pages dyna-

    miques.

    Une section de script PHP se caracterise par les balises :

    8.2.2 Installation de PHP sur un systeme Microsoft Windows

    1. Procurez-vous le programme dinstallation de PHP pour Windows. Dans

    notre exemple, nous avons utilise le site de telechargement de PHP :

    http://fr2.php.net/downloads.php

    Version : 5.2.1 Installateur : php-5.2.1-win32-installer.msi

    2. Executez php-5.2.1-win32-installer.msi

    En voici les etapes :(a) Certificat de lediteur : passez outre la mise en garde. . . en cliquant

    sur Executer (figure 8.10).

    (b) Lassistant dinstallation de PHP saffiche. Cliquez sur Next (fi-

    gure 8.11).

    (c) Saffiche le dialogue relatifa la licence : cochez loption (( I accept the

    terms. . . )). Puis cliquez sur Next (figure 8.12).

    (d) Dans le dialogue suivant, indiquez le dossier de destination. Dans

    notre exemple, C:\php\ (figure 8.13).

    http://fr2.php.net/downloads.phphttp://fr2.php.net/downloads.php
  • 8/22/2019 Apache Tutoriel

    43/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 38

    FIG. 8.11 Installation de PHP pour Apache (2)

    FIG. 8.12 Installation de PHP pour Apache (3)

  • 8/22/2019 Apache Tutoriel

    44/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 39

    FIG. 8.13 Installation de PHP pour Apache (4)

    (e) Dans le dialogue suivant, indiquez le serveur Web a configurer pour

    interpreter les scripts PHP : dans notre cas, il sagit dune version

    2.2.4 dApache, donc nous cochons loption ((Apache 2.2.x Module )).

    Puis cliquez sur Next (figure 8.14).

    (f) Dans le dialogue suivant, indiquez le chemin du dossier de configu-

    ration dApache (ou se trouve notamment, httpd.conf) : dans notre

    exemple, C:\Apache\conf\. Puis cliquez sur Next (figure 8.15).

    (g) Dans le dialogue suivant, developpez larborescence des extensionset selectionnez lextension MySQL afin de supporter des applications

    PHP-MySQL1. Puis cliquez sur Next (figure 8.16).

    (h) LAssistant est pret pour linstallation. Cliquez sur install (figure 8.17).

    (i) Lassistant vous propose de modifier la configuration dApache. Ac-

    ceptez (figure 8.18). En fait, les lignes suivantes seront ajoutees

    dans httpd.conf :

    #BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

    PHPIniDir "C:\\PHP\\"

    LoadModule php5_module "C:\\PHP\\php5apache2_2.dll"#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

    Puis celles-ci dans mime.types :

    application/x-httpd-php php

    application/x-httpd-php-source phps

    (j) Cliquez sur Finish pour mettre fin a lassistant (8.19).

    1MySQL est un serveur de bases de donnees SQL. Nous naborderons pas son installationici qui depasserait notre propos.

  • 8/22/2019 Apache Tutoriel

    45/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 40

    FIG. 8.14 Installation de PHP pour Apache (5)

    FIG. 8.15 Installation de PHP pour Apache (6)

  • 8/22/2019 Apache Tutoriel

    46/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 41

    FIG . 8.16 Installation de PHP pour Apache (7-8)

  • 8/22/2019 Apache Tutoriel

    47/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 42

    FIG. 8.17 Installation de PHP pour Apache (9)

    (k) Redemarrez le serveur Apache. Si vous oubliez de le redemarrer,

    vous obtiendrez lerreur de la figure 8.20 : le script est affiche sans

    etre interprete prealablement sur le serveur. En revanche, apres

    redemarrage du serveurApache, linstruction suivante dans le script

    info.php affichera la page dinformation sur PHP dans votre navi-

    gateur (figure 8.21) a lURL :

    http://localhost:8080/ESSAI/info.php

    http://localhost:8080/ESSAI/info.phphttp://localhost:8080/ESSAI/info.php
  • 8/22/2019 Apache Tutoriel

    48/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 43

    FIG . 8.18 Installation de PHP pour Apache (10-12)

  • 8/22/2019 Apache Tutoriel

    49/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 44

    FIG . 8.19 Installation de PHP pour Apache (13)

    FIG . 8.20 Installation de PHP pour Apache (14)

    FIG . 8.21 Installation de PHP pour Apache (15)

  • 8/22/2019 Apache Tutoriel

    50/56

    CHAPITRE 8. GESTION DES PAGES DYNAMIQUES 45

    FIG . 8.22 Configuration de PHP sous GNU/Linux affichee par info.php

    8.2.3 Installation de PHP sur un systeme GNU/Linux

    Exemple sur une distribution de type Debian : Ubuntu.

    Dans une console ou un terminal emule, procedez ainsi :

    1. Installez le paquet generique php5 :

    sudo apt-get install php5

    2. Pour tester linstallation, copiez le fichierinfo.php suivant dans /var/www :

    3. Ouvrez lURL suivante dans votre navigateur :

    http://localhost/info.php

    Vous obtiendrez laffichage de la configuration (figure 8.22).

    http://localhost/info.phphttp://localhost/info.php
  • 8/22/2019 Apache Tutoriel

    51/56

    AnnexeA

    Les messages derreur

    Voici les erreurs les plus frequemment retournees au client par le serveur

    Apache. Une bonne comprehension de ces erreurs constitue un bon outil de

    diagnostic.

    Code retourne Mots cles Explication

    401 UNAUTHORIZED Droits dex ecution insuffisant (1)403 FORBIDDEN Acces interdit (2)404 NOT FOUND Fichier introuvable405 METHOD NOT ALLOWED Methode non autorisee

    408 REQUEST TIME OUT Delai de connexion depasse.500 INTERNAL SERVER ERROR Erreur serveur interne (3)

    (1) Il sagit le plus souvent dun droit insuffisant sur un script : ajouter un droit dexecution(chmod a+x) resout generalement le probleme.

    (2) Il sagit dun echec de lauthentification Apache lors de la saisie du login ou du motde passe.

    (3) Une erreur interne est souvent due a une erreur de syntaxe dans un script.

    46

  • 8/22/2019 Apache Tutoriel

    52/56

    AnnexeB

    Sources des scripts

    B.1 CGI Perl

    Voici la version de monscript.pl adaptee a GNU/Linux. Il a ete notam-

    ment necessaire de gerer le probleme des en-tetes renvoyes par Apache2 en

    ajoutant la section :

    use Apache2::RequestRec ();

    my $r = shift;

    $r->content_type(text/html);

    afin de gerer lecriture differee des sections du type :

    print

  • 8/22/2019 Apache Tutoriel

    53/56

    ANNEXE B. SOURCES DES SCRIPTS 48

    print param(clef);

    print

  • 8/22/2019 Apache Tutoriel

    54/56

    AnnexeC

    Colophon

    Ce manuel a ete realise au moyen du langage de mise en page LATEX [24],

    dans sa distribution TEXLive [25] sur un systeme GNU/Linux, a savoirUbuntu.

    Les textes ont ete edites dans lediteur TeXmaker [26] et compiles au moyen

    de la commande pdflatex.

    Illustrations : les captures decran ontete realisees sur le systeme Microsoft

    Windows 2003 dun ordinateur portable prete par la MATICE de Montpellier,

    enregistrees au format PNG et retouchees au moyen de ImageMagick [27] ou

    Gthumb [28].

    Les logos GNU-FDL et Open Source sont les logos respectifs de ces fonda-

    tions.

    Le dessin de la couverture provient de la collection de LUS National Ocea-

    nic and Atmospheric Administration. Cest une image libre de droits, referencee

    ici : http://gimp-savvy.com/.

    49

    http://gimp-savvy.com/http://gimp-savvy.com/http://gimp-savvy.com/
  • 8/22/2019 Apache Tutoriel

    55/56

    Bibliographie

    [1] Licence GNU-FDL http://www.gnu.org/copyleft/fdl.html angl.

    [2] Licence G en erale Publique GNU http://fsffrance.org/gpl/gpl-fr.fr.html

    [3] Apache France, http://www.apachefrance.com/

    [4] BEN LAU RI E ET PETER LAU RI E, Apache, installation et mise en uvre, ed.OReilly, 2nde edition, mars 2000.

    [5] RFC 1945, HTTP 1.0 http://abcdrfc.free.fr/rfc-vf/rfc1945.html

    [6] Patrick Cardona, Introduction aux logiciels libreshttp://pedagogie.ac-montpellier.fr/tice/ll_matice/introduction.

    html

    [7] MATICE de Montpellier http://pedagogie.ac-montpellier.fr/tice/

    [8] Site officiel de Microsoft, Windowshttp://www.microsoft.com/france/windows/

    [9] Le langage Perl http://fr.wikipedia.org/wiki/Perl_%28langage%29

    [10] Wikipedia, Article Apache HTTP Serverhttp://fr.wikipedia.org/wiki/Apache_HTTP_Server

    [11] Ubuntu http://www.ubuntu-fr.org/

    [12] Fondation Mozilla, Firefox http://firefox.fr/

    [13] Cronolog http://cronolog.org/

    [14] Archive win-32 de cronolog

    [15] Apache-split http://patrick.cardona.free.fr/matice/apache-split.exe

    [16] FreeBSD, http://www.freebsd-fr.org/fr/

    [17] PHP France http://www.phpfrance.com/

    [18] Miscrosoft Internet Explorerhttp://www.microsoft.com/france/windows/downloads/ie/getitnow.

    mspx

    [19] MySQL http://www.mysql.fr/

    [20] Camino, ttp://www.caminobrowser.org/

    [21] GNU/Linux http://www.linux.org/

    50

    http://www.gnu.org/copyleft/fdl.htmlhttp://fsffrance.org/gpl/gpl-fr.fr.htmlhttp://fsffrance.org/gpl/gpl-fr.fr.htmlhttp://www.apachefrance.com/http://abcdrfc.free.fr/rfc-vf/rfc1945.htmlhttp://pedagogie.ac-montpellier.fr/tice/ll_matice/introduction.htmlhttp://pedagogie.ac-montpellier.fr/tice/ll_matice/introduction.htmlhttp://pedagogie.ac-montpellier.fr/tice/http://www.microsoft.com/france/windows/http://fr.wikipedia.org/wiki/Perl_%28langage%29http://fr.wikipedia.org/wiki/Apache_HTTP_Serverhttp://www.ubuntu-fr.org/http://firefox.fr/http://cronolog.org/http://patrick.cardona.free.fr/matice/apache-split.exehttp://patrick.cardona.free.fr/matice/apache-split.exehttp://www.freebsd-fr.org/fr/http://www.phpfrance.com/http://www.microsoft.com/france/windows/downloads/ie/getitnow.mspxhttp://www.microsoft.com/france/windows/downloads/ie/getitnow.mspxhttp://www.mysql.fr/http://ttp//www.caminobrowser.org/http://www.linux.org/http://www.linux.org/http://ttp//www.caminobrowser.org/http://www.mysql.fr/http://www.microsoft.com/france/windows/downloads/ie/getitnow.mspxhttp://www.microsoft.com/france/windows/downloads/ie/getitnow.mspxhttp://www.phpfrance.com/http://www.freebsd-fr.org/fr/http://patrick.cardona.free.fr/matice/apache-split.exehttp://patrick.cardona.free.fr/matice/apache-split.exehttp://cronolog.org/http://firefox.fr/http://www.ubuntu-fr.org/http://fr.wikipedia.org/wiki/Apache_HTTP_Serverhttp://fr.wikipedia.org/wiki/Perl_%28langage%29http://www.microsoft.com/france/windows/http://pedagogie.ac-montpellier.fr/tice/http://pedagogie.ac-montpellier.fr/tice/ll_matice/introduction.htmlhttp://pedagogie.ac-montpellier.fr/tice/ll_matice/introduction.htmlhttp://abcdrfc.free.fr/rfc-vf/rfc1945.htmlhttp://www.apachefrance.com/http://fsffrance.org/gpl/gpl-fr.fr.htmlhttp://fsffrance.org/gpl/gpl-fr.fr.htmlhttp://www.gnu.org/copyleft/fdl.html
  • 8/22/2019 Apache Tutoriel

    56/56

    BIBLIOGRAPHIE 51

    [22] mod perl http://perl.apache.org/

    [23] Dossier Open Source no 2http://pedagogie.ac-montpellier.fr/tice/assets/ll_matice/res/

    ASSISAW.pdf

    [24] LATEX http://www.latex-project.org/

    [25] TEXLive http://www.tug.org/texlive/

    [26] TeXmaker http://www.xm1math.net/texmaker/index_fr.html

    [27] ImageMagick http://www.imagemagick.org/script/index.php

    [28] Gthumb gthumb

    [29] Le Gimp http://www.gimp-fr.org/news.php

    http://perl.apache.org/http://pedagogie.ac-montpellier.fr/tice/assets/ll_matice/res/ASSISAW.pdfhttp://pedagogie.ac-montpellier.fr/tice/assets/ll_matice/res/ASSISAW.pdfhttp://www.latex-project.org/http://www.tug.org/texlive/http://www.xm1math.net/texmaker/index_fr.htmlhttp://www.imagemagick.org/script/index.phphttp://localhost/var/www/apps/conversion/tmp/scratch_2/gthumbhttp://www.gimp-fr.org/news.phphttp://www.gimp-fr.org/news.phphttp://localhost/var/www/apps/conversion/tmp/scratch_2/gthumbhttp://www.imagemagick.org/script/index.phphttp://www.xm1math.net/texmaker/index_fr.htmlhttp://www.tug.org/texlive/http://www.latex-project.org/http://pedagogie.ac-montpellier.fr/tice/assets/ll_matice/res/ASSISAW.pdfhttp://pedagogie.ac-montpellier.fr/tice/assets/ll_matice/res/ASSISAW.pdfhttp://perl.apache.org/