LP_web_TP1_IDSE.pdf

Embed Size (px)

Citation preview

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    1 Prsentation Gnrale Les cours Web de cette anne auront pour objectifs principaux de vous faire dcouvrir ou redcouvrir un large ventail de technologies utilises dans les diffrentes tapes de la conception dun site web. Pour ce faire, nous nous placerons dans le cadre dun particulier (ou dune PME) qui souhaite hberger lui-mme son site web ainsi que diffrents outils largement utilis de nos jours. Pour cela, le cours sera organis selon 3 parties. Les 3 parties seront les suivantes :

    Installation et Configuration dun serveur web et dautres outils,

    Prsentation des technologies dites cot client ,

    Prsentation des technologies dites cot serveur ,

    Mais commenons immdiatement avec notre premier TP.

    2 Introduction Les objectifs de ce TP sont de vous montrer comment installer et configurer un serveur web. Nous verrons dans un premier temps la configuration dun serveur Apache sur un systme Debian 7 server puis la configuration de divers outils pour terminer par la configuration du serveur IIS de Microsoft sur un systme Windows 7.

    2.1 Le rendu Vous devrez en fin de sance rendre un compte rendu de votre TP. Ce compte rendu devra OBLIGATOIREMENT respecter les contraintes suivantes :

    Etre envoyez par email votre enseignant.

    Avoir le sujet suivant : [2014][LPSIL][IDSE][TP1]nom1_Prenom1 nom2_Prenom2 o nom1_Prenom1 et nom2_Prenom2 les noms et prnoms du binme.

    Etre reu par votre enseignant le jour du cours/TP.

    Contenir dans le corps de lemail les questions que vous pourriez avoir (si vous souhaitez avoir une rponse rapide car les comptes rendu ne sont pas valus immdiatement).

    Contenir en attachement 1 seul fichier .zip, .7z ou .tar.gz contenant lui-mme 1 fichier de compte rendu (au format pdf, rtf, doc, docx ou txt) ainsi que les divers fichiers (fichiers de configuration, pages (x)html, CSS, php) crits dans le TP. Ne pas joindre de fichiers excutables.

    2.2 Serveur HTTP Un ordinateur sur lequel fonctionne un serveur HTTP est appel serveur web. Dans la suite du cours nous utiliserons indiffremment le terme serveur web pour dsigner le serveur HTTP (le logiciel) lui-mme. Mme si nous nous limiterons deux exemples de serveurs pour nos TPs, il est bon de savoir quil existe dautres serveurs http que ceux que nous utiliserons. Voici une petite liste des principaux serveurs HTTP du march :

    Apache HTTP Server de la Apache Software Foundation,

    Internet Information Services (IIS) de Microsoft,

    Oracle Java System Web Server de Oracle (anciennement Sun Microsystems),

    Zeus Web Server de Zeus Technology ;

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Lighttpd de Jan Kneschke ;

    Nginx d'Igor Sysoev ;

    Cherokee de Alvaro Lpez Ortega.

    2.3 Machine virtuelle Pour raliser ce cours/TP nous allons vous fournir par groupes de 2 tudiants un serveur (si vous le souhaitez, vous pouvez faire les cours/TP seul, dans la limite des machines virtuelles disponibles). Vous naurez pas accs physique cette machine mais vous allez pouvoir vous y connecter par ssh et via les protocoles http et https. Pour cela vous aurez besoin de diffrents outils (libre vous de choisir les vtres, mais dans ce cas vous devez savoir les utiliser):

    Un client ssh pour une connexion scuris vers le serveur, nous vous conseillons Putty ; Un logiciel pour faire des transferts de fichiers vers le serveur, nous vous conseillons WinSCP ; Un navigateur web rcent, nous vous conseillons Opera 23 ; Un diteur de textes orient pour le dveloppement web (WebExpert pour ceux qui ont une licence) ou

    Notepad++ Commencez par installer vos outils et allez demander un serveur au responsable du cours. Attention, vous ne devez utiliser ce serveur que pour le cours web. Toutes personnes utilisant ce serveur dautres fins, sen verra supprim laccs et aura donc zro sa note de projet.

    2.4 Informations sur les systmes Lensemble des serveurs virtuels que nous vous proposons disposent dun utilisateur dj cr. Ce compte peut excuter des commandes avec les droits dadministration sur le systme via la commande sudo. Login : vagrant Pass : vagrant Pensez immdiatement changer le mot de passe de ce compte. Attention ne pas perdre votre nouveau mot de passe sans quoi vous ne pourrez pas accder votre serveur par la suite. Rappels de quelques commandes linux:

    sudo : permet dexcuter une commande avec le privilge dadministration.

    passwd : permet de changer son mot de passe.

    loadkeys fr : passe le clavier en franais (fr) (ncessite les droits dadministration du systme).

    nano : un diteur de texte en ligne de commande.

    vi : un autre diteur de texte en ligne de commande.

    Attention, ne pas arrter le serveur virtuel, car vous ne pourrez pas le redmarrer.

    3 Installation et configuration dun serveur Apache sous Linux (Obligatoire) Connectez-vous via ssh sur votre serveur en utilisant ladresse IP et le compte que vous a fourni le responsable du TP. Si vous avez un clavier azerty et que le systme nest pas configur pour, excutez la commande suivante pour que le systme passe sur un clavier franais. > loadkeys fr

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    3.1 Installation du serveur Pour simplifier linstallation et ne pas perdre de temps, nous allons utiliser le systme de package de Debian. Si vous souhaitez (en dehors du TP) installer compltement le serveur Apache de manire manuelle, vous trouverez ce dont vous avez besoin ladresse suivante : www.apache.org/dist/httpd/ ainsi que la documentation. La dernire version au moment de la rdaction de ce TPs est Apache HTTP Server 2.4.6. Commencez par mettre jour votre systme. Debian utilise le systme de paquets dpkg / apt. > apt-get update > apt-get upgrade ou > aptitude update > aptitude safe-upgrade

    Pour faire simple dans un premier temps, nous allons installer notre serveur apache http en utilisant les paquets Debian. Nous verrons plus tard, comment faire cette installation la main. Nous pouvons commencer installer le serveur http Apache. Nous utiliserons ici la version 2.2 du serveur. Il est possible que la version dploye par le systme de paquets soit plus ancienne que celle disponible sur le site de la fondation apache. Nous verrons dans la suite de ce cours/TP comment installer directement la version de notre choix. > apt-get install apache2 ou > aptitude install apache2

    Regardez la liste des packages installs ou mis jour. Certains packages dj installs seront galement mis jour. Il est important de bien comprendre que cela peut avoir un impact sur votre systme. Si aucune nerreur nest signale, linstallation dApache est termine. Avant toute chose, notez la liste des modules activs par linstallation par dfaut.

    Quelle est la version de HTTP apache 2 qui a t install sur votre systme ?

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Maintenant vrifiez si votre serveur http fonctionne. Vous devriez pourvoir faire afficher la premier page web en allant ladresse http://xxx.xxx.xxx.xxx/ (IP de votre serveur). Pour connaitre ladresse de votre serveur (si vous lavez dj oubli), tapez la commande suivante : > ifconfig

    Bravo, vous venez de finir linstallation de votre serveur http apache sous linux. Maintenant nous allons voir comment configurer celui-ci pour quil rponde correctement nos besoins.

    3.1.1 Arrt et redmarrage Tout au long de ce cours/TP nous aurons besoin darrter et de redmarrer notre serveur http apache pour tester ces diffrentes fonctionnalits. Voici donc rapidement les diffrentes commandes permettant de faire cela. Attention, il est possible que vous ayez besoin des droits dadministrateur pour ces commandes. Dans ce cas, pensez vous connecter sur le compte root. Dmarrage normal Dmarre normalement le processus daemon httpd (apache2 dans notre cas). > apache2ctl -k start

    Arrter immdiatement L'envoi du signal stop au processus parent induit chez celui-ci une tentative immdiate de tuer tous ses processus enfants. Cela peut durer plusieurs secondes. Aprs cela, le processus parent lui-mme se termine. Toutes les requtes en cours sont termines, et plus aucune autre n'est traite. > apache2ctl -k stop

    Arrt en douceur L'envoi du signal graceful-stop au processus parent lui fait aviser les processus enfants de s'arrter aprs le traitement de leur requte en cours (ou de s'arrter immdiatement s'ils n'ont plus de requte traiter). Le processus parent va alors supprimer son fichier PidFile et cesser l'coute de tous ses ports. Le processus parent va continuer s'excuter, et va surveiller les processus enfants qui ont encore des requtes traiter. Lorsque tous les processus enfants ont termin leurs traitements et se sont arrts ou lorsque le dlai spcifi par la directive GracefulShutdownTimeout a t atteint, le processus parent s'arrtera son tour. Si ce dlai est atteint, tout processus enfant encore en cours d'excution se verra envoyer le signal stop afin de le forcer s'arrter.

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    > apache2ctl -k graceful-stop

    Redmarrer immdiatement L'envoi du signal restart au processus parent lui fait tuer ses processus enfants comme pour le signal stop, mais le processus parent ne se termine pas. Il relit ses fichiers de configuration, et rouvre ses fichiers de log. Puis il donne naissance un nouveau jeu de processus enfants et continue de traiter les requtes. > apache2ctl -k restart

    Redmarrage en douceur L'envoi du signal graceful au processus parent lui fait envoyer aux processus enfants l'ordre de se terminer une fois leur requte courante traite (ou de se terminer immdiatement s'ils n'ont plus rien traiter). Le processus parent relit ses fichiers de configuration et rouvre ses fichiers de log. Chaque fois qu'un enfant s'teint, le processus parent le remplace par un processus enfant de la nouvelle gnration de la configuration, et celui-ci commence immdiatement traiter les nouvelles requtes. > apache2ctl -k graceful

    Cas particulier sur Debian Sur un systme Debian, il est conseill dutiliser les scripts mise en place sur ce systme pour grer les diffrentes applications. Nous nutiliserons donc pas les commandes prsents ci-dessus mais la commande suivante : > /etc/init.d/apache2 [start|restart|stop|reload|force-reload|status] ou > service apache2 [start|restart|stop|reload|force-reload|status]

    Lutilisation de ce script garanti le bon fonctionnement du systme et des commandes (vrifications des variables denvironnements, ). Vrifier ce que fait ce script et regardez sil sappuie sur les commandes prsentes plus haut :

    1. En comparant leffet des commandes standards et celles du script. Vous pourrez par exemple utiliser la combinaison des commandes ps et grep pour vrifier larrt et le redmarrage du serveur.

    2. En regardant le code du script directement.

    3.2 Configuration du serveur Par dfaut, les versions dApache nutilisaient quun seul fichier de configuration nomm httpd.conf et situ dans le rpertoire /etc/apache2/. Dans la version que nous installerons (et toutes celles bases sur un systme Debian), les informations du fichier httpd.conf sont rparties dans plusieurs fichiers. Il est possible que ce fichier nexiste mme plus sur votre systme (en fonction de la version installe). Si le fichier httpd.conf est prsent, vrifiez quil est bien vide laide de la commande suivante : > ls /etc/apache2/ > cat /etc/apache2/httpd.conf

    De manire gnrale, il est conseill de faire une copie de sauvegarde des fichiers avant toutes modifications. Par la suite, dans ce cours/TP, nous ne vous rappellerons pas chaque fois de faire une sauvegarde des fichiers que nous modifierons. Pensez-y ou vous risquez de devoir reprendre le TP depuis le dbut.

    3.2.1 Syntaxe des fichiers de configuration Les fichiers de configurations (httpd.conf, apache2.conf, ) contiennent deux types d'informations : des commentaires et des directives pour le serveur. Les lignes commenant par le caractre # sont traites comme des lignes de commentaires; ces commentaires n'ont aucune utilit pour le logiciel du serveur, mais ils servent de documentation pour l'administrateur du serveur. Vous pouvez ajouter autant de commentaires que vous voulez; le

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    serveur ignore simplement tous les commentaires quand il fait l'analyse syntaxique du fichier. Les commentaires ne doivent pas tre inclus dans une ligne aprs une directive de configuration. Les lignes vides et les espaces prcdant une directive sont ignors; vous pouvez par consquent indenter les directives afin d'amliorer la lisibilit. Vrifiez si vos fichiers de configuration contiennent des erreurs de syntaxe avec la commande suivante : > apache2ctl -t

    3.2.2 Modules Apache est un serveur modulaire. Ceci implique que seules les fonctionnalits les plus courantes sont incluses dans le serveur de base. Les fonctionnalits tendues sont fournies l'aide de modules qui peuvent tre chargs dans Apache. Par dfaut, un jeu de modules de base est inclus dans le serveur la compilation. Si le serveur est compil de faon utiliser les modules chargs dynamiquement, alors les modules peuvent tre compils sparment et chargs n'importe quel moment l'aide de la directive LoadModule. Dans le cas contraire, Apache doit tre recompil pour ajouter ou supprimer des modules. Les directives de configuration peuvent tre incluses de manire conditionnelle selon la prsence ou l'absence d'un module particulier en les plaant dans un bloc . Vrifiez les modules qui ont t compils avec le serveur avec la commande suivante : > apache2ctl -l

    Rendez-vous dans le rpertoire /etc/apache2/.

    3.2.3 Configuration d'apache2.conf Ouvrez le fichier avec votre diteur de texte prfr et parcourrez le fichier. Par exemple, utiliser la commande suivante pour louvrir avec vi. > vi apache2.conf

    Voici un exemple de fichier apache.conf auquel nous avons retir, en grande partie, les commentaires pour des questions de lisibilit. # Global configuration # # ServerRoot: The top of the directory tree under which the server's # configuration, error, and log files are kept. # Do NOT add a slash at the end of the directory path. #ServerRoot "/etc/apache2" # The accept serialization lock file MUST BE STORED ON A LOCAL DISK. LockFile ${APACHE_LOCK_DIR}/accept.lock # PidFile: The file in which the server should record its process # identification number when it starts. # This needs to be set in /etc/apache2/envvars PidFile ${APACHE_PID_FILE} # Timeout: The number of seconds before receives and sends time out. Timeout 300 # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. KeepAlive On

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. MaxKeepAliveRequests 100 # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. KeepAliveTimeout 5 ## Server-Pool Size Regulation (MPM specific) # prefork MPM StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 # worker MPM StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0 # event MPM StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0 # These need to be set in /etc/apache2/envvars User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} # AccessFileName: The name of the file to look for in each directory # for additional configuration directives. See also the AllowOverride # directive. AccessFileName .htaccess

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    # The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. Order allow,deny Deny from all Satisfy all # DefaultType is the default MIME type the server will use for a document # if it cannot otherwise determine one, such as from filename extensions. DefaultType None # HostnameLookups: Log the names of clients or just their IP addresses # e.g., www.apache.org (on) or 204.62.129.132 (off). HostnameLookups Off # ErrorLog: The location of the error log file. ErrorLog ${APACHE_LOG_DIR}/error.log # LogLevel: Control the number of messages logged to the error_log. LogLevel warn # Include module configuration: Include mods-enabled/*.load Include mods-enabled/*.conf # Include list of ports to listen on and which to use for name based vhosts Include ports.conf # The following directives define some format nicknames for use with # a CustomLog directive (see below). LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent # Include of directories ignores editors' and dpkg's backup files, # see the comments above for details. # Include generic snippets of statements Include conf.d/ # Include the virtual host configurations: Include sites-enabled/

    Examinez votre propre fichier de configuration et essayez de comprendre par vous-mme (sans lire la suite de ce cours ni chercher des informations sur le net) lensemble des directives prsentes. Quand vous pensez avoir compris, essayez de rpondre aux questions ci-dessous.

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Vrifiez si le numro du processus linux du dmon httpd (apache2 dans notre cas) contenu dans le fichier apache.pid correspond bien au premier processus apache2.

    Combien y a-t-il de processus apache2 actuellement fonctionnel ? Que se passe-t-il sur les numros des processus apache2 aprs lexcution dune commande de

    redmarrage ? Vous vrifiez notamment si les commandes apache2ctl k restart et /etc/init.d/apache2 restart ont le mme effet sur le serveur apache httpd.

    Vrifiez dans le fichier le nom dutilisateur et du groupe d'apache. Que contiennent les rpertoires /etc/apache/mods-available, /etc/apache/mods-enabled, /etc/apache/ sites

    - available et /etc/apache/sites-enabled ? Nous allons maintenant utiliser la directive DirectoryIndex pour spcifier quel fichier doit tre lu si aucun nest dfini par la requte http. Si le module dir na pas t install au dbut, activez le module dir laide dune des mthodes suivantes (classes de la moins bonne la plus correcte)

    copiez les fichiers dir.conf et dir.load situs dans /etc/apache2/mods-available/dans /etc/apache2/mods-enabled/.

    Faire un lien symbolique des fichiers dir.conf et dir.load situs dans /etc/apache2/mods-available/vers /etc/apache2/mods-enabled/.

    Utiliser la commande apache2 a2enmod pour activer le module (la commande a2dismod permet de dsactiver un module):

    > a2enmod dir

    Modifier la ligne suivante dans votre fichier dir.conf puis redmarrer le serveur http. DirectoryIndex index.htm index.html index.php

    De manire gnrale, si on veut quune modification effectue dans un des fichiers de /etc/apache2 soit prise en compte, il faut redmarrer le serveur web. Consulter ladresse suivante http://xxx.xxx.xxx.xxx/ (IP de votre serveur) depuis votre navigateur prfr. Puisque aucune page index.htm nexiste de /var/www/ (rpertoire actuellement dfini pas dfaut), cest le fichier index.html qui est lu. Crez le fichier index.htm suivant dans /var/www/ : Ma page index.htm Ma page index.htm

    Sans redmarrer le serveur, rechargez votre page web (reconsulter ladresse suivante http://xxx.xxx.xxx.xxx/ (IP de votre serveur) depuis votre navigateur prfr). Normalement cest votre page index.htm qui devrait tre affiche. Attention, des fois la page est en cache dans votre navigateur, donc il faut forcer le rechargement.

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    De manire gnrale, si on fait une modification dans lespace web (/var/www), on na pas besoin de redmarrer le serveur web pour quelle soit prise en compte. Maintenant nous allons voir comment crer des rpertoires spcifiques pour chaque utilisateur du systme. Si vous navez pas dutilisateur autre que root, vous pouvez en crer un avec les commandes suivantes > useradd -m -d /home/student/ -s /bin/bash student > passwd student Par exemple, notre utilisateur student aura un espace priv (public_html par exemple) sur son homedir (/home/student/) qui sera accessible via lurl http://xxx.xxx.xxx.xxx/~student / (avec lIP de votre serveur). Commencez par crer un rpertoire public_html dans le homedir de student (attention, de bien faire cela depuis le compte student et non le compte root). Pour passer facilement sous le compte student, utilisez la commande suivante : > su student

    Pour aller dans le homedir de student : > cd

    Pour revenir au compte root : > exit

    Revenez sous le compte root. Il vous reste installer le module userdir (de la mme manire que pour le module dir) et enfin de redmarrer le serveur http. Le paramtrage se fait dans le fichier userdir.conf. UserDir public_html

    Affichez la page suivante pour vrifier si a marche : http://xxx.xxx.xxx.xxx/~student/. Vrifiez la prsence de ces lignes la fin du fichier apache2.conf car nous en aurons besoins dans la suite de ce cours/TPs. # Include the virtual host configurations: Include sites-enabled/

    4 Le protocole http (Obligatoire) Ce cours/TP a pour but de vous faire tester simplement les requtes et rponses du protocole http. Excutez depuis Windows ou linux la commande suivante pour vous connecter votre serveur http. telnet xxx.xxx.xxx.xxx 80

    4.1 Premire requte Maintenant nous allons envoyer notre premire requte http. Envoyez la commande suivante et vrifiez si vous obtenez bien la page web correspondante. GET

    Comme la requte nest pas valide nous devrions avoir une erreur. Mais le serveur nous retourne normalement la page web sans rien dautre. Ecrivons maintenant une requte http valide la plus simple possible. Pour rappel, une requte doit avoir la forme suivante (les informations en [] sont facultatives) :

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    HTTP/ [: ] [1024>] Ligne_vide (CRLF)

    La requte la plus simple est donc la suivante (noubliez pas la ligne vide): GET / HTTP/1.0

    Vrifiez que vous obtenez bien quelque chose comme cela pour un fichier xhtml: HTTP/1.1 200 OK Date: Tue, 20 Aug 2013 13:18:06 GMT Server: Apache/2.2.22 (Debian) Vary: Accept-Encoding Content-Length: 51 Connection: close Content-Type: application/xhtml+xml It works! xhtml

    Ou comme cela pour un fichier html HTTP/1.1 200 OK Date: Tue, 20 Aug 2013 13:18:06 GMT Server: Apache/2.2.22 (Debian) Vary: Accept-Encoding Content-Length: 51 Connection: close Content-Type: text/html It works!

    4.2 Test des codes derreurs Le but est de tester les diffrents codes derreurs utiliss dans le protocole HTTP.

    4.2.1 Erreur 404 Commenons par le code 404 : page no found. Ce code est retourn quand la page demande nexiste pas. Pour vrifier cela, envoyez la requte suivante en vrifiant que vous navez pas le fichier tyuio la racine de votre serveur GET /tyuio http/1.0

    Normalement vous deviez avoir le rsultat suivant : HTTP/1.1 404 Not Found Date: Tue, 09 Sep 2008 15:41:22 GMT Server: Apache/2.2.9 (Debian) mod_ssl/2.2.9 OpenSSL/0.9.8g Vary: Accept-Encoding Content-Length: 318 Connection: close Content-Type: text/html; charset=iso-8859-1

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    404 Not Found Not Found The requested URL /tyuio was not found on this server. Apache/2.2.9 (Debian) mod_ssl/2.2.9 OpenSSL/0.9.8g Server at debian40server..local Port 80

    Faites la mme requte avec votre navigateur web, observez-vous une diffrence ? http://xxx.xxx.xxx.xxx/tyuio

    4.2.2 A vous de jouer ! Ecrivez les requtes ncessaires pour observer les codes derreurs suivants. Pour gagner du temps, vous ne chercherez que pour les codes derreurs de la colonne de gauche, puis si vous avez encore du temps en fin de projet, vous viendrez faire ceux de droite. Attention, il ne suffit pas toujours de trouver une requte spcifique mais il faut que vous trouviez une requte pour une configuration serveur donne. Vous indiquerez donc la configuration apache mise en place si celle-ci joue un rle particulier.

    200: OK, 403: Forbidden, 404: Not Found 400: Bad Request,

    201: Created, 301: Redirection, 304: Not Modified, 401: Unauthorized.

    5 Configuration avance dApache http server (Obligatoire)

    5.1 Virtual Host Le principe des Serveurs Virtuels consiste faire fonctionner un ou plusieurs serveurs Web (comme www.iut-nide1.com et www.iut-nice2.com) sur une mme machine. Les serveurs virtuels peuvent tre soit "par-IP" o une adresse IP est attribue pour chaque serveur Web, soit "par-nom" o plusieurs noms de domaine se ctoient sur des mmes adresses IP. L'utilisateur final ne peroit pas qu'en fait il s'agit d'un mme serveur physique. Apache a t le prcurseur des serveurs proposant cette mthode de serveurs virtuels bass sur les adresses IP. Ses versions 1.1 et suivantes ont toujours proposes ces deux mthodes de serveurs virtuels par-IP et par-nom. Cette deuxime mthode est parfois galement appele host-based ou serveur virtuel non-IP.

    5.1.1 Serveurs virtuels par nom versus par IP Les hbergements virtuels par IP utilisent l'adresse IP de la connexion afin de dterminer quel serveur virtuel doit rpondre. Par consquent, vous devez disposer d'adresses IP diffrentes pour chaque nom de domaine complet que vous hbergez. Avec un hbergement virtuel par nom, le serveur s'appuie sur les informations transmises par le client dans les en-ttes HTTP de ses requtes. La technique prsente ici vous permet de disposer de serveurs virtuels diffrents partags sur une mme adresse IP. L'hbergement virtuel par nom est habituellement plus simple, car il vous suffit de configurer votre serveur DNS pour que chaque domaine pointe sur l'adresse IP dont vous disposez, et de configurer votre serveur Apache HTTP afin qu'il reconnaisse ces domaines. Il rduit aussi la pnurie en adresses IP. Par consquent, vous devriez utiliser l'hbergement virtuel par nom moins d'avoir une raison spcifique de prfrer l'hbergement virtuel par IP. Certaines de ces raisons vous sont exposes ci-aprs :

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Certains anciens navigateurs ne sont pas compatibles avec les serveurs virtuels par nom, car pour fonctionner, un client doit transmettre un champ d'en-tte HTTP Host. Cet en-tte est exig pour HTTP/1.1, et peut tre implment sur des navigateurs modernes HTTP/1.0 grce une extension.

    L'hbergement virtuel par nom ne peut pas tre utilis avec des serveurs scuriss SSL cause de la nature mme du protocole SSL.

    Certains systmes d'exploitation et quipements rseaux emploient des techniques de gestion de la bande passante qui ne peuvent pas diffrencier des domaines autrement que par des adresses IP spares.

    Dans notre cas, nous nous intresserons, dans ce cours/TPs, uniquement aux serveurs virtuels par nom. Nous avons deux solutions pour mettre ceux-ci en place : Solution 1 : modification du fichier hosts (ncessite les droits administrateurs) Puisque nous navons pas de nom de domaine affecter notre serveur, nous allons devoir lgrement tricher pour mettre en uvre plusieurs serveurs virtuels par nom et pouvoir observer le rsultat. Ajoutez les lignes suivantes dans le fichier c:\windows\system32\drivers\etc\hosts de Windows : xxx.xxx.xxx.xxx www.iut-nice1.fr xxx.xxx.xxx.xxx www.iut-nice2.fr

    Bien sr vous remplacerez les xxx.xxx.xxx.xxx par ladresse ip de votre serveur http. Maintenant ouvrez la page http://www.iut-nice1.fr/ vous devriez tomber sur votre serveur http (de mme avec http://www.iut-nice2.fr/). Le fichier host que nous venons de configurer sert Windows de DNS . Sil y trouve le nom de domaine recherch, il utilise ladresse IP spcifie en face, sinon il fait une requte DNS. Donc maintenant nous avons bien 2 noms de domaines utilisables. Pensez bien supprimer ces lignes dans le fichier host avant de quitter la salle, sans quoi ces noms de domaines seront bloqus. Solution 2 : utiliser un service de DNS gratuit Le but de cette manipulation est de crer deux noms de domaines (en fait on ne pourra crer que des noms de sous-domaines). Pour cela on utilisera le service DynDns (analogie de DNS Dynamique), qui permet aux particuliers et aux entreprises d'hberger leurs applications internet (web, ftp, mail, ldap, bases de donnes, ) chez eux sans faire appel aux services des hbergeurs internet. Rendez-vous sur http://www.dnsdynamic.org/ pour y crer deux Free Domain Name : iut-nice1-prenom-nom.dnsd.me iut-nice2-prenom-nom.dnsd.me

    Il vous faudra vous crer un compte, puis modifier ladresse IP associ au hostname en remplaant celle existante par ladresse IP de votre machine virtuelle. Une fois lopration faite, patientez quelques minutes que le dns soit mis jour puis ouvrez la page http://iut-nice1-prenom-nom.dnsd.me/ vous devriez tomber sur votre serveur http (de mme avec http://iut-nice2-prenom-nom.dnsd.me/). Donc maintenant nous avons bien 2 noms de domaines utilisables. Pensez bien supprimer ces deux hostnames la fin de ce cours, sans quoi ces noms de domaines seront bloqus. Attention, dans la suite de ce cours/TP, on fait lhypothse que vous avez utilisez la solution 1. Si ce nest pas le cas, adaptez lnoncer avec les noms des domaines que vous avez cr.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    13

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    5.1.2 Dtail dun fichier de configuration Avant de poursuivre plus en avant la cration de nos htes virtuels, regardons un peu ce que contient le fichier de configuration dun hte virtuel. Ouvrez le fichier /etc/apache2/sites- available/default et examinez lensemble des paramtres de ce fichier. Voici un exemple de fichier de configuration dun hte virtuel que vous pouvez obtenir. Pour les mme raisons que prcdemment, nous avons retir lensemble des commentaires de ce fichier : ServerAdmin webmaster@localhost DocumentRoot /var/www Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined

    La directive VirtualHost et sont utiliss pour encapsuler un groupe de directives qui ne seront appliqus qu lhte virtuel quelles dfinissent. On spcifie ladresse IP ou le nom de domaine auquel correspond lhte virtuel ainsi que le numro de port. Dans lexemple ci-dessus, (ainsi que par dfaut), lhte virtuel est dfini pour toutes les IPs (que le serveur http peut lire) et sur le port 80. La directive ServerAdmin ServerAdmin dfinie ladresse de contact que le serveur inclut dans les messages derreurs qui seront retourns au client. La directive DocumentRoot Cette directive dfini le rpertoire dorigine partir duquel httpd distribue les fichiers. moins que lurl ne corresponde un Alias (voir la directive Alias), le serveur ajoute le chemin de l'URL demande la racine du document pour faire le chemin au document. La racine (DocumentRoot) devrait tre spcifie sans un slash en fin de nom.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    14

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    La directive Directory et sont utiliss pour encapsuler un groupe de directives qui ne seront appliqus quau rpertoire (et ces sous-rpertoires) spcifi dans . Combien y a-t-il de rpertoires configurs dans le fichier donn en exemple ? Quels sont-ils ? La directive AllowOverride Quand le serveur trouve un fichier .htaccess (comme spcifi par AccessFileName) il doit connatre quelles directives dclares dans ce fichier peuvent ignorer des directives de configuration prcdentes. AllowOverride est valable seulement dans des sections dfinies sans expressions rgulires. Quand cette directive est mise :

    None, alors les fichiers .htaccess sont compltement ignors. Dans ce cas, le serveur n'essayera pas mme de lire des fichiers de .htaccess dans le systme de fichiers.

    All, le serveur prendra en compte toutes les directives dans le fichier .htaccess

    La directive Order La directive Order, associe avec les directives Allow et Deny, pilote un systme de contrle d'accs trois passages.

    Le premier passage traite toutes les directives Allow ou Deny, comme spcifi selon la directive Order. Le deuxime passage fait l'analyse syntaxique du reste des directives (Allow ou Deny). Le troisime passage s'applique toutes les demandes qui ne correspondent aucun des premiers deux.

    Notez que toutes les directives Allow et Deny sont traites, la diffrence d'un pare-feu classique, o seulement la premire directive correspondante est utilise. De plus, l'ordre dans lequel les lignes apparaissent dans les fichiers de configuration n'est pas significatif - toutes les lignes Allow sont traites comme un groupe et toutes les lignes Deny sont considres comme un autre groupe. L'ordre de traitement est un des deux suivants :

    Allow,Deny : En premier, toutes les directives Allow sont values. Au moins une doit correspondre, ou la demande est rejete. Ensuite, toutes les directives Deny sont values. Si une delles correspond, la demande est rejete. En fin, n'importe quelles demandes qui ne correspondent pas un Allow ou une directive Deny sont refuses par dfaut.

    Deny,Allow : En premier, toutes les directives Deny sont values. Si une delles correspond, la demande est rejete moins qu'elle ne corresponde aussi une directive Allow.

    La directive Allow La directive Allow dfini quels htes peuvent avoir accs un secteur du serveur. L'accs peut tre contrl par hostname, l'adresse IP, la gamme d'adresse IP, ou selon d'autres caractristiques de la requte du client. Le premier argument cette directive est toujours from. Les arguments suivants peuvent prendre trois formes diffrentes.

    Allow from all : Pour permettre tous les htes l'accs, soumis la configuration des directives Order et Deny.

    Allow from host : Pour permettre seulement aux htes particuliers ou les groupes d'htes d'avoir accs au serveur, l'hte peut tre spcifi dans n'importe lequel des formats suivants :

    o Un nom de domaine partiel ou non : Allow from apache.org o Une adresse IP partielle ou non : Allow from 10.1.2.3 ou Allow from 10.1 o Un couple rseaux/netmask : Allow from 10.1.0.0/255.255.0.0 o Un couple rseaux/nnn CIDR (nnn= nombre de bit 1) : Allow from 10.1.0.0/16

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    15

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Allow from env=env-variable : Pour permettre laccs en fonction de lexistence ou de non de variable denvironnement.

    La directive Deny Cette directive permet de limiter l'accs au serveur d'tre en fonction du hostname, de l'adresse IP, ou des variables d'environnement. Les arguments pour la directive Deny sont identiques ceux de la directive Allow. La directive Alias La directive Alias permet aux documents d'tre stocks dans le systme de fichiers local ailleurs qu la racine dfinie par la directive DocumentRoot. Imaginons que nous souhaitions donner accs au rpertoire /home/student/public_html/secret en utilisant lurl http://www.iut-nice1.fr/secret/. Il suffirait pour cela dajouter les lignes suivantes dans le fichier 000-default (qui contiendrait la configuration dun virtual host). Alias /secret/ "/home/student/public_html/secret/" Options Indexes MultiViews FollowSymLinks AllowOverride None

    Order allow,deny Allow from all

    Crez le rpertoire /home/student/public_html/secret et ajoutez les lignes ci-dessus dans votre fichier 000-default. Pensez redmarrer votre serveur pour que votre nouvelle configuration soit prise en compte. La directive ScriptAlias La directive ScriptAlias a le mme comportement que la directive Alias, sauf quen plus elle indique la liste des rpertoires contenant les scripts CGI qui seront excuts par le module mod_cgi. Il est plus sr d'viter de placer des scripts CGI sous la racine DocumentRoot. Cela vitera de rvler accidentellement leur code source si jamais la configuration du serveur est change. La directive Options La directive Options contrle que les fonctions du serveur sont disponibles dans un rpertoire particulier. Options peut tre mise une des valeurs suivantes :

    None : dans ce cas on ne permet aucune fonction supplmentaire, All : toutes les options part Multivues. C'est la valeur par dfaut. ExecCGI : On permet l'excution de scripts CGI utilisant mod_cgi. FollowSymLinks : le serveur suivra des l symboliques dans ce rpertoire. Includes : autorise les inclusions du ct du serveur laide du module mod_include. IncludesNOEXEC : les inclusions du ct du serveur, mais les #exec cmd et #exec cgi sont dsactivs. Indexes : si une URL correspondant un rpertoire est demande et quil ni pas de DirectoryIndex (e.g.,

    index.html) dans le rpertoire, alors le module mod_autoindex pourra renvoyer une liste de rpertoire.

    Normalement, si plusieurs directives Options sont appliques un rpertoire, alors la plus spcifique est utilise et les autres sont ignors. Cependant si toutes les options de la directive Options sont prcdes par le symbole + ou - les options sont fusionnes. N'importe quelle option prcde par un + est ajoute aux options actuellement actives et n'importe quelle option prcde par un - est enleve des options actuellement actives.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    16

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Attention, le mlange d'options avec un + ou - avec des sans symbole n'est pas une syntaxe valable. Il est probable que vous obteniez des rsultats inattendus.

    Par exemple, sans aucun + et - symboles o seul loption Includes sera active pour le rpertoire /web/docs/spec. Options Indexes FollowSymLinks Options Includes

    Cependant si la deuxime directive Options utilise des symboles + et - alors les options FollowSymLinks et Includes seront actives pour le rpertoire /web/docs/spec. Options Indexes FollowSymLinks Options +Includes -Indexes

    Revenons maintenant notre problme premier, comment crer des serveurs virtuels avec une mme IP.

    5.1.3 Utilisation de serveurs virtuels par nom Pour utiliser des serveurs virtuels par nom, vous devez dsigner l'adresse IP (et si possible le port) sur le serveur devant accepter les requtes pour des domaines. Cette configuration utilise la directive NameVirtualHost. Dans un cas normal, o n'importe quelle adresse IP peut tre utilise, vous pouvez ajouter * comme argument de la directive NameVirtualHost. Si vous prvoyez d'utiliser de multiples ports (comme l'emploi de SSL), vous devriez ajouter le port cet argument tel que *:80. Si la directive suivante nest pas dans votre fichier ports.conf ajoutez l. NameVirtualHost *:80

    L'tape suivante est la cration d'une section pour chacun des serveurs crer. L'argument de la directive doit tre le mme que celui de la directive NameVirtualHost (c'est--dire l'adresse IP ou * pour toutes les adresses). Dans chaque section , vous devez dfinir au minimum une directive ServerName pour dsigner le serveur concern et une directive DocumentRoot pour prciser l'emplacement sur le systme de fichiers du contenu de ce serveur. Crez deux copies du fichier default dans le rpertoire /etc/apache2/sites-available/ que vous nommerez nice1 et nice2. Ajoutez la ligne suivante dans le fichier nice1 entre la balise et la directive DocumentRoot ServerName www.iut-nice1.fr

    Modifiez la directive DocumentRoot comme indiqu par la ligne ci-dessous : DocumentRoot /var/www/nice1

    Pensez crer le rpertoire /var/www/nice1 et ajoutez-y un fichier index.html qui affiche Nice 1 . On recommence pour nice2. Ajoutez la ligne suivante dans le fichier nice2entre la balise et la directive DocumentRoot ServerName www.iut-nice2.fr

    Modifiez la directive DocumentRoot comme indiqu par la ligne ci-dessous : DocumentRoot /var/www/nice2

    Pensez crer le rpertoire /var/www/nice2 et ajoutez-y un fichier index.html qui affiche Nice 2 Le serveur principal disparat Dans les configurations actuelles, on nutilise plus le serveur principal , mais uniquement des VirtualHost. Mais cela pourrait tre le cas sur une plus ancienne version dapache httpd.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    17

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Originellement, on nutilisait pas de VirtualHost ; on ne dfinissait quun seul serveur, directement dans le fichier httpd.conf (ou son quivalent). Donc quand vous ajoutiez des serveurs virtuels un serveur Web existant, vous deviez galement crer une section redfinissant ce serveur existant (car celui-ci tait dsactiv). Les directives ServerName et DocumentRoot incluses dans ce serveur virtuel devaient tre les mmes que pour les directives globales ServerName et DocumentRoot. Et ce serveur virtuel tait positionn en premier dans le fichier de configuration pour en faire le serveur par dfaut. Serveurs virtuels par IP Vous pouvez galement spcifier une adresse IP explicite la place de * dans les deux directives NameVirtualHost et . Par exemple, cette mthode est utile si vous souhaitez faire tourner quelques serveurs virtuels par nom sur une mme adresse IP, et d'autres, soit par IP, soit bass sur un autre jeu de serveurs virtuels par nom sur une autre adresse IP. Plusieurs noms pour un mme serveur virtuel Plusieurs serveurs sont accessibles par plus d'un nom. Il suffit de placer la directive ServerAlias dans une section . Par exemple, dans la section de votre fichier nice1, ajoutez la directive ServerAlias comme ci-dessous. Cela indique aux utilisateurs les autres noms permis pour accder au mme site Web : ServerAlias iut-nice1.fr *.iut-nice1.fr

    Ainsi, toutes les requtes portant sur un domaine iut-nice1.fr seront servies par le serveur virtuel www. iut-nice1.fr. Les caractres joker * et ? peuvent tre utiliss pour les correspondances. Bien entendu, vous ne pouvez pas inventer des noms et les placer dans une directive ServerName ou ServerAlias. Tout d'abord, votre serveur DNS doit tre correctement configur pour lier ces noms une adresse IP associe avec votre serveur. Dans notre cas, pour pouvoir tester ces noms, il va falloir remodifier le fichier c:\windows\system32\drivers\etc\hosts. Maintenant, lorsqu'une requte arrive, le serveur va d'abord tester si elle utilise une adresse IP qui correspond NameVirtualHost. Si c'est le cas, il regardera chaque section avec l'adresse correspondante et essaiera d'en trouver une o le nom de domaine requis correspond ServerName ou ServerAlias. S'il en trouve une, il utilisera sa configuration pour le serveur. Si aucun serveur virtuel ne correspond, alors le premier serveur virtuel list dont l'adresse IP correspond sera employ. En consquence, le premier serveur virtuel list est le serveur virtuel default. La directive DocumentRoot du serveur principal ne sera jamais employe lorsqu'une adresse IP correspond dans une directive NameVirtualHost. Si vous ne voulez pas avoir de configuration spciale pour les requtes qui ne sont pas attaches un serveur virtuel en particulier, mettez cette configuration dans une section que vous placerez en premier dans le fichier de configuration. Activez vos 2 nouveaux sites laide de la commande a2ensite qui est similaire celle utilis pour les modules (a2dissite pour dsactiver un virtualhost). Testez les 3 adresses suivantes et vrifiez qu chaque fois vous tes bien sur un serveur virtuel diffrent :

    http://www.iut-nice1.fr/ http://www.iut-nice2.fr/ http://xxx.xxx.xxx.xxx/ (avec lIP de votre serveur)

    Sans testez laction sur votre serveur, dites ce qui arrive si on dsactive le site par default (cest--dire si on efface le fichier /etc/apache2/sites-enabled/000-default) et quon ouvre lurl suivante sur un navigateur. Pourquoi obtient-on ceci ?

    http://xxx.xxx.xxx.xxx/ (avec lIP de votre serveur)

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    18

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    On notera que pour dsactiver un site, il est prfrable dutiliser la commande a2dissite.

    5.2 Vrification des connaissances (Obligatoire) Si vous avez bien compris les TPs, vous devriez tre capable de rpondre facilement aux questions suivantes. Si ce nest pas le cas, il est conseill de retravailler la section du TP qui correspond aux questions dont vous ntes pas sres de rponse.

    1. Quelle directive spcifie le port TCP sur lequel couter ? Quel est le port par dfaut ? 2. Il y a-t-il dautres fichiers de configuration chargs depuis apache2.conf ? O sont-ils placs ? Donnez en la

    liste. 3. Sous quelle identit unix (utilisateur et groupe) le serveur va-t-il sexcuter ? Donner les UID et GID

    correspondants. 4. Quel est le rpertoire racine pour les documents (pages) servis ? 5. Quelle page Apache2 renvoie-t-il lorsque lURL demande correspond un rpertoire ? 6. Comment sont traites les URL de la forme http://serveur/cgi-bin/toto ? 7. Quels sont les fichiers de logs gnrs ? O sont-ils placs ? Quel est leur format et comment est-il

    contrl ?

    5.3 Les fichiers .htaccess : authentification et bien plus (Conseill) Les fichiers .htaccess sont des fichiers de configuration d'Apache, permettant de dfinir des rgles dans un rpertoire et dans tous ses sous-rpertoires (qui n'ont pas de tel fichier l'intrieur). On peut les utiliser pour protger un rpertoire par mot de passe, ou pour changer le nom ou l'extension de la page index, ou encore pour interdire l'accs au rpertoire.

    5.3.1 Intrt des fichiers .htaccess Les fichiers .htaccess peuvent tre utiliss dans n'importe quel rpertoire virtuel ou sous-rpertoire. Les principales raisons d'utilisation des fichiers .htaccess sont : Grer l'accs certains fichiers. Ajouter un mime-type. Protger l'accs un rpertoire par un mot de

    passe.

    Protger l'accs un fichier par un mot de passe. Dfinir des pages d'erreurs personnalises. Principe des fichiers .htaccess

    Le fichier .htaccess est plac dans le rpertoire dans lequel il doit agir. Il agit ainsi sur les permissions du rpertoire qui le contient et de tous ses sous-rpertoires. Vous pouvez placer un autre fichier .htaccess dans un sous-rpertoire d'un rpertoire dj contrl par un fichier .htaccess. Le fichier .htaccess du rpertoire parent reste en activit tant que les fonctionnalits n'ont pas t rcrites. Pensez bien positionner la directive AllowOverride pour que vos fichiers .htaccess soient pris en compte.

    5.3.2 Empcher l'accs des ressources Un fichier .htaccess est compos de deux sections :

    1. Une premire section contient les chemins vers les fichiers contenant les dfinitions de groupes et d'utilisateurs :

    AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse AuthGroupFile /repertoire/de/votre/fichier/.FichierDeGroupe AuthName "Accs protg" AuthType Basic

    AuthUserFile dfinit le chemin d'accs absolu vers le fichier de mot de passe.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    19

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    AuthGroupFile dfinit le chemin d'accs absolu vers le fichier de groupe. AuthName entrane l'affichage dans le navigateur Internet de : Tapez votre nom d'utilisateur et

    votre mot de passe. Domaine: "Accs protg" AuthType Basic prcise qu'il faut utiliser AuthUserFile pour l'authentification.

    2. Une seconde section contient la dfinition des conditions d'accs : Require valid-user {instruction d'accs satisfaire}

    La balise LIMIT possde en attribut la valeur GET (en majuscule) et/ou la valeur POST, afin de dfinir le type de mthode du protocole HTTP auxquelles la restriction s'applique

    Require valid-user prcise que l'on autorise uniquement les personnes identifies. Il est galement possible de prciser explicitement le nom des personnes autorises s'identifier : require user {username}

    Le chemin d'accs vers les fichiers de mots de passe et de groupes est de la forme suivante : /repertoire1/repertoire2/.../.FichierDeMotDePasse

    5.3.3 Protger un rpertoire par un mot de passe Il s'agit d'une des applications les plus utiles du fichier .htaccess car elle permet de dfinir de faon sre ( l'aide d'un login et d'un mot de passe) les droits d'accs des fichiers par certains utilisateurs. La syntaxe est la suivante : AuthUserFile {emplacement du fichier de mot de passe} AuthGroupFile {emplacement du fichier de groupe} AuthName "Accs protg" AuthType Basic Require valid-user

    La directive AuthUserFile permet de dfinir l'emplacement du fichier contenant les logins et les mots de passe des utilisateurs autoriss accder une ressource donne.

    La directive AuthGroupFile permet de dfinir l'emplacement du fichier contenant les groupes d'utilisateurs autoriss s'identifier. Il est possible d'outrepasser cette dclaration en dclarant le fichier suivant : /dev/null.

    Voici un exemple de fichier .htaccess : ErrorDocument 403 http://www.iut-nice1.fr/error403.html AuthUserFile /var/conf/www/.pass AuthGroupFile /dev/null AuthName "Accs scuris au site Nice 1" AuthType Basic Require valid-user

    Crez un fichier .htaccess qui demande de sidentifier pour accder au rpertoire secret que vous avez cr. Utilisez un fichier de mot de passes contenant au moins 4 noms et vrifiez que seulement ceux-ci fonctionnent.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    20

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Le fichier de mot de passe est un fichier texte devant contenir sur chacune de ses lignes le nom de chaque utilisateur suivi des deux points (:), puis du mot de passe crypt (solution recommande) ou en clair. Ce fichier de mot de passe ne devrait pas tre mis dans un rpertoire virtuel Internet. Voici un exemple de fichier de mots de passe non chiffrs (ici .pass). Ne pas utiliser ce fichier mais utiliser la version chiffre. Les versions non chiffres ne sont plus supportes par dfaut par les navigateurs actuels. utilisateur:user gaetan:passpass

    Voici le mme fichier contenant des mots de passe chiffrs : utilisateur:YYam8h/9OU2aQ gaetan:J2Jt7wQJ0piNA

    5.3.4 Crypter les mots de passe Apache fournit un outil permettant de gnrer facilement des mots de passe crypts (aussi bien sous Windows que sous Unix), il s'agit de l'utilitaire htpasswd accessible dans le sous-rpertoire bin d'Apache (pour nous /usr/bin htpasswd). La syntaxe de cet utilitaire est la suivante :

    Pour crer un nouveau fichier de mots de passe : htpasswd -c {chemin du fichier de mot de passe} utilisateur

    Pour ajouter un nouvel utilisateur/mot de passe un fichier existant : htpasswd {chemin du fichier de mot de passe} utilisateur

    5.3.5 Empcher l'accs un rpertoire par un domaine La syntaxe pour bloquer l'accs d'un rpertoire par un domaine est la suivante : Order (allow,deny ou deny,allow) Allow (all, [liste de domaine]) Deny (all, [liste de domaine])

    Exemple : Order deny,allow Deny from .domaine.com

    Toutes les requtes provenant du domaine .domaine.com ne pourront avoir accs aux ressources comprises dans le rpertoire et ses sous-rpertoires. La commande Order sert prciser explicitement que la commande Deny va bien annuler l'effet de Allow et non l'inverse. Voici un exemple de restriction d'accs plus complet: ErrorDocument 403 http://www.iut-nice1/accesrefuse.html AuthUserFile /var/conf/www/.pass AuthGroupFile /dev/null AuthName "Accs scuris au site Nice 1" AuthType Basic order deny,allow deny from all allow from 123.148.12.2 require user utilisateur gaetan

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    21

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Dans ce cas, l'accs ne sera possible que pour les utilisateurs utilisateur et gaetan partir de l'adresse IP 123.148.12.2 et avec le bon mot de passe. Crez un fichier .htaccess qui demande de sidentifier pour accder lurl http://www.iut-nice1.fr/ et qui limite cet accs lutilisateur thomas.

    5.3.6 Empcher l'accs fichier particulier Par dfaut, Apache applique les restrictions du fichier .htaccess l'ensemble des fichiers du rpertoire dans lequel il se trouve ainsi qu' tous les fichiers contenus dans ses sous-rpertoires. Il est galement possible de restreindre l'accs pour un ou plusieurs fichiers du rpertoire grce la balise . Voici un exemple de restriction aux fichiers secret.html et secret2.html : AuthUserFile /var/conf/www/.pass AuthGroupFile /dev/null AuthName "Accs scuris au site Nice 1" AuthType Basic require user gaetan

    AuthUserFile /var/conf/www/.pass AuthGroupFile /dev/null AuthName "Accs scuris au site Nice 1" AuthType Basic require valid-user

    Crez un fichier .htaccess qui demande de sidentifier pour accder lurl http://www.iut-nice1.fr/secret/info.htm et qui limite cet accs lutilisateur thomas. Il ne faut utiliser quune seule balise par fichier. Sinon, l'erreur suivante est reporte dans le fichier de log des erreurs : .htaccess: Multiple arguments not (yet) supported.

    Pour info, depuis Apache 1.3, il est conseill d'utiliser la balise la place de la balise . Cette nouvelle balise ne supporte aussi qu'un seul argument mais on peut traiter plusieurs fichiers grce une expression rgulire.

    5.3.7 Empcher l'accs un type de fichiers par un domaine Deny from .domaine.com

    Toutes les requtes provenant du domaine .domaine.com ne pourront avoir accs aux images, dont l'extension est .png, comprises dans le rpertoire et ses sous-rpertoires. Crez un fichier .htaccess qui bloque la lecture des fichiers *.gif et *.txt dans le rpertoire secret pour tous les utilisateurs. Vous pouvez copiez un fichier depuis internet sur votre machine virtuelle en utilisant la commande suivante : > wget http://portail.unice.fr/jahia/txt/inc/img/logo_unice.gif

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    22

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    5.3.8 Autoriser l'accs un groupe de fichiers par un domaine et un pays Order deny,allow Deny from all Allow from .iut-nice1.fr Allow from .org

    Toutes les requtes provenant du domaine .iut-nice1.fr ou des domaines ayant la terminaison .org pourront avoir accs aux fichiers commenant par php (par exemple, les fichiers phpindex.html, phplogo.gif) compris dans le rpertoire et ses sous-rpertoires.

    5.3.9 Protger un rpertoire par un login Cette mthode (beaucoup moins sre que la prcdente) permet une authentification de bas niveau uniquement par le nom de l'utilisateur. La syntaxe est la suivante : Require (user [liste des utilisateurs], group [liste des groupes], valid-user)

    Voici un exemple de ligne du fichier .htaccess : Require user gaetan student thomas paul

    Attention ici user est un mot clef et non le nom dun utilisateur !!! Tout utilisateur souhaitant rentrer dans le rpertoire ou un de ses sous-rpertoires sera refus sauf s'il s'identifie en donnant un nom figurant dans la liste.

    5.3.10 Obliger un utilisateur satisfaire au moins une des conditions Voici la syntaxe : Satisfy (any, all) Order Allow, Deny Deny from all Allow from .free.fr Require user gaetan student thomas paul Satisfy Any

    Ce qui signifie que l'accs au rpertoire sera bloqu pour tout le monde l'exception des personnes qui s'identifient et des requtes provenant du domaine .free.fr.

    5.3.11 Ajouter un Mime-Type un rpertoire Un type MIME (en anglais MIME type) est un ensemble de types de fichiers standard, permettant d'associer une extension de fichier donne une application, afin d'automatiser le lancement de l'application. La syntaxe est la suivante : AddType (mime/type [liste d'extension]) Voici un exemple de mise en oeuvre du fichier .htaccess : AddType image/x-photoshop PSD AddType application/x-httpd-php .php3 AddType application/x-httpd-php .htm

    Le serveur enverra au navigateur Internet le fichier en lui disant de lancer le programme Photoshop (s'il est install sur votre machine) et de lui donner le fichier. Habituellement, ceci est utilis pour des fichiers ncessitant un Plug-in particulier non reconnu par votre navigateur. Cette commande permet aussi d'annuler tout lment prdfini. Ainsi, vous pouvez enregistrer un fichier .wav avec une extension .gif et prciser au navigateur de considrer les fichiers .gif comme des fichiers audio ! En pratique, on pourra donc utiliser cette commande pour ordonner linterprteur PHP dvaluer d'autres extensions de fichier, .htm par exemple.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    23

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    5.3.12 Forcer tous les fichiers d'un rpertoire un Mime-Type Voici la syntaxe adopter : ForceType (mime/type)

    Par exemple avec la ligne suivante, tous les fichiers du rpertoire contenant le fichier .htaccess seront considrs comme tant des fichiers .jpg quelle que soit leur extension : ForceType image/jpg

    Ce type de commande ne peut tre utilis dans les bornes !

    5.3.13 Dfinir les extensions de fichiers par dfaut La syntaxe suivre est : DefaultType (mime/type)

    Par exemple DefaultType text/html

    Cette option vous permet de dfinir le comportement par dfaut du navigateur face des extensions lui tant inconnues. Ici, il prendra tout fichier inconnu en tant que document HTML.

    5.3.14 Personnalisation des messages d'erreurs Il s'agit d'une fonctionnalit pratique car elle permet de dfinir une page par dfaut pour un type d'erreur donn. Cela permet d'une part de guider l'utilisateur au lieu d'afficher la banale page d'erreur du navigateur, ainsi que d'gayer la navigation mme en cas d'erreur. ErrorDocument (code--3-chiffres [nom du fichier ou texte ou url])

    Les deux lignes suivantes permettent de dfinir des pages d'erreurs personnalises au cas o l'accs un document serait interdit ou bien que le document n'existe pas : ErrorDocument 403 /erreurs/403.php3 ErrorDocument 404 /erreurs/404.php3

    Ceci vous permet de donner un message d'erreur personnalis remplaant les fichiers fournis avec le navigateur. Voici quelques-unes des erreurs les plus courantes personnaliser : 401 Unauthorized : la personne n'a pas pass avec succs l'identification. 403 Forbidden : le serveur n'a pas le droit de rpondre votre requte. 404 Not Found : le serveur n'a pas trouv le document souhait.

    5.3.15 Changer le fichier index par dfaut Le fichier index.html est le fichier qui est affich lorsquaucun nom de fichier n'est dfini dans l'URL. Cela permet d'viter que le navigateur liste l'ensemble des fichiers contenus dans le rpertoire (pour des raisons de confidentialit). On a dj vu que la syntaxe pour effectuer ce type d'opration est la suivante : DirectoryIndex (fichiers)

    Voici un exemple de mise en application : DirectoryIndex index.php index.html index.phtml /erreurs/403.php

    Lorsque vous essayez d'accder au rpertoire sans prciser la page afficher, Apache va avoir recours la directive DirectoryIndex. En gnral, par dfaut, cette directive pointe vers index.html puis index.htm. Dans l'exemple ci-dessus, Apache va commencer par chercher index.php, puis index.html, et ensuite index.phtml. Si aucun de ces trois fichiers existent, la page 403.php (se trouvant dans la racine) sera affiche pour viter de lister le rpertoire.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    24

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    5.4 Scurit et SSL (conseill) Lobjectif de cette partie et dactiver le support des pages commenant par https://. Pour accepter les requtes SSL, Apache a besoin de deux fichiers : une cl pour le serveur cle_ssl.key et un certificat sign crt_ssl.crt. Les noms des fichiers n'ont pas d'importance. La signature de ce certificat est ralise par un organisme de certification tiers (tel que Verisign ou Thawte). Cependant vous pouvez signez-vous mme votre certificat, la seule diffrence sera un avertissement par le navigateur lors de l'accs une ressource SSL de votre serveur. La scurit est la mme, que le certificat soit sign par vous-mme ou pas un organisme.

    5.4.1 Installation du module ssl pour apache Nous allons, dans un premier temps, installer les modules ncessaire pour faire fonctionner Apache en scuris. Tout dabords nous avons besoin du module OpenSSL (cest une boite outils de chiffrement comportant deux bibliothques (une de cryptographie gnrale et une implmentant le protocole SSL), ainsi qu'une commande en ligne). Normalement le module doit dj tre prsent. Si ce nest pas le cas installez-le avec la commande :

    > apt-get install openssl ou > aptitude install openssl

    Maintenant nous allons devoir installer le module ssl pour Apache. Normalement le module ssl (c'est--dire les fichiers ssl.conf et ssl.load) se trouve dj dans /etc/apache2/mods-available/. Activez le module ssl. Notez que vous pouvez aussi activer ou dsactiver les modules Apaches laide des commandes suivantes : > a2enmod {nom_du_module} > a2dismod {nom_du_module}

    Nous supposerons dans la suite que le fichier openssl.cnf est dans /etc/ssl/ (ce qui devrait tre normalement le cas). Vrifiez que cest bien le cas pour vous.

    5.4.2 Rgler le serveur pour qu'il coute (aussi) sur le port 443 Par dfaut, Apache2 est configur pour couter sur le port 80. Vous pouvez vrifier les ports actifs sur votre machine laide de la commande : netstat -nlt

    Or le protocole SSL a besoin d'mettre sur un port spcifique pour pouvoir fonctionner, celui qui est adopt en gnral est le port 443. Pour cela ajoutez la directive suivante dans le fichier /etc/apache2/ports.conf (sauf si celle-ci est dj prsente) : Listen 443

    Redmarrez Apache et vrifiez si le serveur coute bien sur le port 443.

    5.4.3 Cration des cls et certificats avec openssl Pour crer votre cl et votre certificat, tapez commandes les suivantes dans un terminal : > mkdir /tmp/ssl_conf > cd /tmp/ssl_conf > openssl req -config /etc/ssl/openssl.cnf -new -out csr_ssl.csr

    L il vous demande un passphrase, entrez un mot de passe dont vous vous souviendrez. Finissez, en entrant des informations rgionales (exemple : FR/PACA/Nice/Unice/LP/Gaetan Rey/[email protected]/...). Ensuite, tapez : > openssl rsa -in privkey.pem -out cle_ssl.key > openssl x509 -in csr_ssl.csr -out crt_ssl.crt -req -signkey cle_ssl.key -days 3650 > openssl x509 -in crt_ssl.crt -out crt_ssl.der.crt -outform DER

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    25

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Notez que mon certificat est valable 3650 jours (presque 10 ans) Copiez la cl et le certificat dans les dossiers ssl d'Apache (vous devrez peut-tre les crer) : > cd /tmp/ssl_conf > cp crt_ssl.crt /etc/apache2/ssl.crt/ > cp cle_ssl.key /etc/apache2/ssl.key/

    5.4.4 Cration du fichier de configuration Crez un nouveau virtualhost :

    DocumentRoot /var/www/site_ssl ServerName www.iut-nice1.fr Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from all SSLEngine on SSLCertificateFile /etc/apache2/ssl.crt/crt_ssl.crt SSLCertificateKeyFile /etc/apache2/ssl.key/cle_ssl.key

    6 Installation et configuration dun forum phpbb (Conseill) Comme le montre le panorama des forums PHP gratuits du site http://www.journaldunet.com/ (fvrier 2004), phpBB est aujourd'hui le leader des forums PHP. C'est pourquoi nous avons dcid de vous prsenter en dtail les diffrentes tapes de la mise en route de phpBB. Vous pourrez trouver sur Wikipdia un comparatif plus pouss des diffrents logiciels de gestion de forum en php, asp ou autre.

    6.1 Les pr-requis il faut disposer d'un serveur http acceptant les scripts PHP et donnant accs l'une des bases reconnues par le script du forum phpBB, savoir MySQL, PostgreSQL, MS SQL Server ou MS Access... Nous installerons ce forum dans notre machine virtuelle linux-debian. Commenons par ajouter mysql notre installation : > apt-get install mysql-server ou > aptitude install mysql-server

    Nous devons galement installer les modules php pour apache. Pour cela, vous devez installer un interprteur php laide de la commande suivante : > apt-get install php5 ou > aptitude install php5

    Ajoutez la ligne suivante pour que les fichiers php soient bien interprts par apache. AddType application/x-httpd-php .php .php5

    Nous allons galement installer le package suivant pour faire le lien entre php5 et mysql > apt-get install php5-mysql ou > aptitude install php5-mysql

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    26

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Connectez-vous avec les droits root sous mysql. Crez une nouvelle base nomme forum puis crez un nouvel utilisateur ayant les droits sur cette base. > mysql mysql> CREATE DATABASE forum; mysql> USE forum; mysql> GRANT ALL PRIVILEGES ON forum.* TO 'phpuser'@'localhost' IDENTIFIED BY 'passforum' WITH GRANT OPTION; mysql> COMMIT; mysql> QUIT;

    6.2 Rcupration et mise en ligne Le script correspondant au forum phpBB se trouve sur le site officiel, vous pouvez le tlcharger avec la commande suivante : Directement depuis le serveur (attention problme de tlchargement possible avec wget) : > wget https://www.phpbb.com/files/release/phpBB-3.0.12.tar.bz2 ou Depuis votre machine, tlchargez le mme fichier puis dpos le sur le serveur en utilisant WinSCP (ou tout autre logiciel quivalent)

    Une fois le script tlcharg, il faut le dcompresser dans un rpertoire. Cependant larchive tant en bz2, nous devons dabord installer le logiciel bzip2 laide de la commande suivante. Installez bzip2 puis dcompresser votre fichier dans un rpertoire. > aptitude install bzip2 > tar xjvf phpBB-3.0.12.tar.bz2

    Un rpertoire du type phpBB3 est cr automatiquement. Nous allons maintenant rcuprer le pack de langue franais. Tlchargez-le puis dcompressez le fichier lang_french.tar.gz dans le dossier phpBB3/language qui existe dj. Vous devez aprs dcompression avoir deux dossiers dans ce rpertoire language : fr et en. Directement depuis le serveur : > wget https://www.phpbb.com/customise/db/download/id_91611 ou Depuis votre machine, tlchargez le mme fichier puis dpos le sur le serveur en utilisant WinSCP (ou tout autre logiciel quivalent) puis > tar xvf lang_fr.tar.gz

    Vous pouvez galement faire la mme chose pour les thmes subsilver2 et proSilver disponible aux adresses suivantes :

    http://www.phpbb.com/files/language_packs_30x/subsilver2_fr.tar.gz http://www.phpbb.com/files/language_packs_30x/prosilver_fr.tar.gz

    6.3 Configuration Avant toute autre chose, vous allez crer un alias dans un des hosts virtuels de manire ce quon puisse accder au forum (le rpertoire phpBB3) laide dune URL du type http://xxx.xxx.xxx.xxx/forum/

    Maintenant allez sur la page http://xxx.xxx.xxx.xxx/forum/install/ depuis votre navigateur. Allez sur longlet INSTALLER et suivez les instructions.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    27

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Entrez les donnes suivantes pour la configuration de votre base de donnes :

    Finissez tranquillement de remplir les diffrents champs (vous dsactiverez les fonctions SMTP pour ne pas avoir de problme). Une fois arriv la page suivante, vous avez termin linstallation. Bravo ;). Il faut maintenant supprimer, dplacer ou renommer le rpertoire dinstallation avant dutiliser votre forum. Tant que ce rpertoire est prsent, seul le panneau de contrle de ladministrateur sera accessible. Rendez-vous sur la page http://xxx.xxx.xxx.xxx/forum/ pour vrifier si votre forum est bien fonctionnel.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    28

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Modifier la configuration de votre serveur pour que votre forum soit accessible via ladresse http://forum.iut-nice1.fr.

    7 Installation et configuration dun wiki (Optionnel) Un wiki est un logiciel de la famille des systmes de gestion de contenu de site web rendant les pages web modifiables par tous les visiteurs y tant autoriss. Il facilite l'criture collaborative de documents avec un minimum de contraintes. Cr en 2001, Wikipdia est devenu peu peu le plus visit des sites web crits avec un wiki. Le mot wiki vient du redoublement hawaiien wiki wiki, qui signifie rapide . Les wikis ont t invents en 1995 par Ward Cunningham, pour raliser la section d'un site sur la programmation informatique, et qu'il a appel WikiWikiWeb. Au milieu des annes 2000, les wikis ont atteint un bon niveau de maturit. Ils sont depuis lors associs ce qui est dnomm Web 2.0. [Wikipdia]

    7.1 A vous de jouer Parmi les diffrents Wiki dcrit ci-dessous, choisissez celui que vous souhaitez et installez-le de manire ce quil soit accessible via ladresse suivante http://wiki.iut-nice1.fr/.

    DokuWiki est un Wiki, conforme aux standards, simple utiliser, dont le but est de crer des documentations de toute sorte. Il est destin aux quipes de dveloppement, aux travaux de groupe et aux petites entreprises. Il possde une syntaxe simple mais puissante qui assure la lisibilit des fichiers de donnes en dehors du Wiki, et facilite la cration de textes structurs. Toutes les donnes sont stockes dans des fichiers textes aucune base de donne n'est requise.

    MediaWiki est un logiciel libre dvelopp l'origine pour Wikipdia et utilis aujourd'hui par de nombreux autres projets de l'association but non lucratif Wikimedia Foundation ainsi que par d'autres sites reposant sur la technologie wiki, sous license GNU General Public License (GPL). Il est utilis par Wikipdia et d'autres projets de la fondation Wikimdia, ainsi que par bien d'autres sites et wikis.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    29

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    PmWiki est un systme de type wiki pour la cration et l'entretien collectif de sites Internet. Les pages PmWiki ont le mme aspect et fonctionnent comme des pages Internet ordinaires, sauf qu'elles possdent un lien pour "diter" ce qui permet de modifier ou d'ajouter facilement des pages un site, en utilisant les rgles d'dition de base. Vous n'avez pas besoin de connatre le langage HTML ou les CSS. L'dition des pages peut tre laisse ouverte tout public ou restreinte un petit groupe d'auteurs.

    WikiNi offre un moyen particulirement simple, efficace et rapide de crer et grer un site internet ou intranet. Il s'installe en une dizaine de minutes sur un serveur web supportant Php et une base de donnes MySQL. Cet outil permet, en ligne, avec n'importe quel navigateur Web :

    o de crer, supprimer, modifier, commenter les pages d'un site, quel que soit le nombre d'diteurs et de pages.

    o de grer les droits d'accs aux diffrentes pages (lire, crire, commenter). o d'laborer la mise en page des contenus de manire intuitive et trs visuelle, par des rgles de

    formatage ne ncessitant aucune connaissance informatique. o de publier instantanment toute cration ou modification de page. o d'analyser, de grer l'ensemble du site partir de fonctions simples : plan du site, liste des

    utilisateurs, suivi des dernires pages modifies ou commentes, etc.

    8 Installation et configuration dun serveur Apache sous Windows XP/Vista/7 (Optionnel)

    Commencez par tlcharger apache http server version 2.2.19 avec OpenSSL ou la version 2.2.19 sans le module ssl.

    Avant toute chose, le protocole TCP/IP doit tre install et fonctionnel. Si vous possdez Windows NT 4 il est fortement recommand que le Service Pack 6 soit install.

    8.1 Installation Cliquez deux fois sur le fichier msi et suivez les instructions (voir si dessous pour les choix faire en fonction des diffrents crans). Pensez bien remplacer les identifiants donns comme exemple par votre propre identifiant.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    30

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Bravo vous avez fini linstallation dapache http Server 2.2. Pour vrifier que tout va bien ouvrez la page suivante depuis un navigateur se trouvant sur la mme machine que le serveur apache : http://localhost/

    8.2 Configuration Concernant la configuration du serveur, tout fonctionne comme sous linux. Si vous avez install Apache http server dans le rpertoire C:\Program Files\Apache Software Foundation\Apache2.2

    Vous trouverez les fichiers de configurations dans le rpertoire C:\Program Files\Apache Software Foundation\Apache2.2\conf. Notez que tout est configur dans le fichier httpd.conf.

    Que la racine du serveur web (l o les pages sont stockes) est le rpertoire C:/Program Files/Apache Software Foundation/Apache2.2/htdocs.

    La commande pour dmarrer le serveur est "C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe" -w -n "Apache2.2" -k start

    La commande pour redmarrer le serveur est "C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe" -w -n "Apache2.2" -k restart

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    31

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    La commande pour arrter le serveur est "C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe" -w -n "Apache2.2" -k stop

    En plus de cela, vous bnficiez sous Windows de lApache Service Monitor. Une petite interface dadministration bien pratique.

    8.3 A vous de jouer De la mme faon que sous linux, configurez un serveur virtuel (virtual Host) et protgez en laccs (accs limit lutilisateur durant qui a le mot de passe tnarud).

    9 Installation et configuration dun serveur IIS sous Windows (Optionnel) Ne Pouvant pas vous distribuer chacun un CD de windows XP, nous ne pourrons pas vous faire installer IIS. Cependant voici la dmarche suivie (trs simple) que vous pourrez reproduire sur votre propre machine.

    9.1 Installation Allez dans le panneau de configuration de Windows puis choisissez ajouter ou supprimer des programmes puis allez dans Ajouter ou supprimer des composants Windows dans le menu de gauche. Vous arriverez alors sur lcran suivant :

    Slectionnez IIS dans la liste droulante (cochez la case) puis allez dans Dtails. L, vous pouvez ajouter ou supprimer des options (comme le service SMTP ou la fonction FTP ). Faites OK puis suivant. Linstallation se termine tranquillement. Ouvrez un navigateur dans la machine virtuel et allez ladresse suivante pour vrifier que votre serveur http fonctionne correctement : http://localhost/. Vrifiez galement les points suivants :

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    32

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Linstallation de votre serveur IIS, a automatiquement install la racine de votre disque local "C", un dossier nomm "Inetpub", lequel est le dossier racine de votre serveur "ISS".

    Ce dossier racine "Inetpub", contient bien plusieurs dossiers de fichiers, dont un dossier nomm "wwwroot (le chemin du dossier ou rpertoire nomm "wwwroot" est bien C :\Inetpub\wwwroot\)

    9.2 Les virtuals Hosts Allez dans le dossier Inetpub/wwwroot qui contient dj par dfaut, plusieurs fichiers, dont certains portent lextension ASP (de : Active Server Page). La page dynamique localstart.asp est une page de dmarrage, pour ce dossier wwwroot. Ouvrez le fichier "localstart.asp ", contenu dans le rpertoire racine, wwwroot. La page que vous afficherez, comporte des lments vous indiquant trs grossirement le fonctionnement du serveur IIS que vous venez dinstaller. Cependant, et avant de refermer cette page, notez bien la structure de son chemin complet dans la zone de liste droulante de votre navigateur Internet : C :\Inetpub\wwwroot\localstart.asp

    Cette structure de chemin, vous aidera comprendre la signification prcise de la syntaxe du rpertoire racine, lorsque vous crerez vos premires pages web dynamiques avec leurs extensions spcifiques ASP et/ou ASPX. Excutez la commande inetmgr pour ouvrir et accder votre serveur IIS.

    Droulez, dans la fentre de votre serveur IIS, le nud du dossier Sites web, pour faire apparatre la dpendance Site Web par dfaut, sur laquelle vous appliquerez un clic droit, puis vous slectionnerez la commande "Nouveau->Rpertoire virtuel..."

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    33

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Donnez un nom (alias) votre rpertoire virtuel, lequel va reprsenter le nom de votre dossier de site racine, qui sera en vrit, le mme que celui que portera le nom de votre rpertoire de site web virtuel. Par la suite, nous ferons lhypothse davoir choisi Nice1 comme nom. Faites suivant puis cliquez sur le bouton "Parcourir" afin de crer votre rpertoire de site web virtuel et le placer comme sur limage ci-dessous.

    Cliquez sur "Suivant", aprs avoir vrifi que ladresse du rpertoire de contenu de votre site web est bien C :\Inetpub\wwwroot\Nice1. Laissez les autorisations et paramtres daccs par dfaut tels quels ; ils conviendront pour la plupart des cas, puis cliquez sur "Suivant" pour continuer. Quittez cet assistant afin dafficher la structure de votre nouveau rpertoire virtuel.

    Copier un fichier index.html dans votre nouveau rpertoire. Si vous vous rendez lurl http://xxx.xxx.xxx.xxx/nice1/ vous ne verrez quun message derreur safficher. Les fichiers par default tant diffrents sous IIS. Faites un clic droit->proprit sur Nice1 dans votre interface de contrle puis allez dans longlet Document. Ajoutez index.html la liste.

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    34

  • Licence Professionnelle Nice Sophia G. Rey

    2014-2015

    Cours/TP n 1 Installation et configuration

    dun serveur web

    Nous devons redmarrer le serveur pour que les modifications soient prises en compte. Faites-le laide de linterface de contrle comme indiqu sur la figure suivante.

    9.3 A vous de jouez Explorez les diffrentes options de linterface de contrle pour grer les droits daccs (comme les .htacces). De la mme faon que sous apache, configurez un serveur virtuel (virtual Host) et protgez en laccs (accs limit lutilisateur durant qui a le mot de passe tnarud).

    10 Quelques lments complmentaires (optionnel)

    10.1 Google analytics http://www.webrankinfo.com/dossiers/google-analytics/trucs-et-astuces

    http://www.webrankinfo.com/dossiers/google-analytics/management-api

    http://www.webrankinfo.com/dossiers/google-analytics/api-nouveautes-sept-09

    10.2 Google adresses http://www.google.com/local/add/analyticsSplashPage?message=qbwelcome&hl=fr&gl=FR

    10.3 Position dun mot de passe sur google http://www.positeo.com/check-position/

    Licence Professionnelle Nice Sophia Universit de Nice Sophia Antipolis

    930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55

    http://www.polytech.unice.fr/

    35

    1 Prsentation Gnrale2 Introduction2.1 Le rendu2.2 Serveur HTTP2.3 Machine virtuelle2.4 Informations sur les systmes

    3 Installation et configuration dun serveur Apache sous Linux (Obligatoire)3.1 Installation du serveur3.1.1 Arrt et redmarrage

    3.2 Configuration du serveur3.2.1 Syntaxe des fichiers de configuration3.2.2 Modules3.2.3 Configuration d'apache2.conf

    4 Le protocole http (Obligatoire)4.1 Premire requte4.2 Test des codes derreurs4.2.1 Erreur 4044.2.2 A vous de jouer !

    5 Configuration avance dApache http server (Obligatoire)5.1 Virtual Host5.1.1 Serveurs virtuels par nom versus par IP5.1.2 Dtail dun fichier de configuration5.1.3 Utilisation de serveurs virtuels par nom

    5.2 Vrification des connaissances (Obligatoire)5.3 Les fichiers .htaccess : authentification et bien plus (Conseill)5.3.1 Intrt des fichiers .htaccess5.3.2 Empcher l'accs des ressources5.3.3 Protger un rpertoire par un mot de passe5.3.4 Crypter les mots de passe5.3.5 Empcher l'accs un rpertoire par un domaine5.3.6 Empcher l'accs fichier particulier5.3.7 Empcher l'accs un type de fichiers par un domaine5.3.8 Autoriser l'accs un groupe de fichiers par un domaine et un pays5.3.9 Protger un rpertoire par un login5.3.10 Obliger un utilisateur satisfaire au moins une des conditions5.3.11 Ajouter un Mime-Type un rpertoire5.3.12 Forcer tous les fichiers d'un rpertoire un Mime-Type5.3.13 Dfinir les extensions de fichiers par d