Le but de ce TP est de mettre en place un site Web sécurisé sur le

publicité
BTS SIO 1ère année
Module SI5
Yan Markovitch
TP n°2: Mise en place d’un site Web dynamique sur un
serveur Linux
Le but de ce TP est de mettre en place un site Web sécurisé sur le serveur Linux avec une
architecture Apache-MySQL-PHP.
I. Configuration du service Web sous Linux
Le serveur Apache représente près de 70% des serveurs Web. Le serveur Apache est une
évolution du serveur HTTP du NCSA (National Center for Supercomputing Applications).
Officiellement, le nom Apache a été choisi en hommage à la célèbre tribu indienne, réputée
pour son habileté guerrière et son endurance. D’autres sources, plus officieuses, font référence
au terme A PAtCH dans la mesure où le projet a consisté, au départ, à corriger de nombreuses
erreurs sur le serveur historique du NCSA.
Apache consiste en un exécutable de base qui sera complété, à volonté, par un ensemble
de modules. Un module peut-être considéré comme un programme que l’on ajoute à
l’exécutable de base pour bénéficier de fonctionnalités supplémentaires.
Les versions Apache 2 sont apparues en Avril 2002 et concrétisent une nouvelle
orientation du produit dont l’objectif majeur est de ne plus se cantonner aux seules
plateformes Unix/Linux. Dans tous les cas, les versions Apache 2 apportent bon nombre
d’améliorations internes, notamment en terme de performances.
1. Sur la machine virtuelle Linux-Debian, démarrer le service Web à l’aide de la
commande /etc/init.d/apache2 start.
2. A l’aide de la commande apt-get install, installer le navigateur Web en ligne de
commande Lynx, puis vérifier que le service Web fonctionne bien en local.
3. A quoi sert le répertoire init.d ?
Il faut désormais créer un répertoire partagé entre la machine hôte Ubuntu et la machine
virtuelle Debian pour pouvoir échanger des fichier entre les deux machines.
4. Dans VirtualBox -> Configuration ->Dossiers partagés, ajouter un dossier qui
correspondra au répertoire d’échange. Sous la machine virtuelle Debian, créer un
répertoire /media/partage, puis monter le dossier partagé à l’aide de la commande
suivante : mount –t vboxsf NomDuRépertoireSousUbuntu /media/partage.
5. Sur la machine Linux Debian virtuelle, créer un répertoire pour votre site Web dans
/var/www, à l’aide la commande mkdir.
6. Copier les fichiers de votre site web dans ce répertoire à l’aide de la commande cp.
7. Comment vérifier que l’accès aux pages Web du serveur fonctionne.
8. Tester le serveur depuis une machine virtuelle différente.
9. Faire en sorte que l’on arrive directement sur la page d’accueil du site web.
10. Essayer d’accéder au site depuis une machine (non virtuelle) distante.
1
II. Configuration du SGBDR MySQL
MySQL est un serveur de bases de données développé, distribué et supporté par la société
MySQL AB (AB=AktieBolag en suédois : compagnie par actions).
Il s’agit d’un logiciel de type client/serveur, constitué d’un serveur SQL multithreads qui
supporte différents systèmes de stockage, plusieurs programmes clients et outils
d’administration, ainsi que de nombreuses interfaces de programmation.
MySQL est réputé pour sa fiabilité, ses performances et sa facilité d’utilisation.
MySQL AB est une société commerciale, fondée par les développeurs de MySQL ; pour
fournir des services autour du produit (support, formation, conseil). MySQL est disponible en
tant que logiciel Open Source sous les termes de la licence GPL.
MySQL est un produit historiquement très utilisé dans un contexte de serveurs Web où
toutes les fonctionnalités d’un SGBD complet ne sont pas nécessairement utiles.
MySQL est écrit en C et C++ et peut-être installé sur de nombreux systèmes
d’exploitation (Unix, Linux, Windows, NetWare, …). MySQL est multithread et peut
notamment exploiter efficacement des architectures multi-processeurs.
Des interfaces de programmation existent pour beaucoup de langages (C,C++, Java, Perl,
PHP, Python …).
Après installation, la base de données MySQL comporte la définition d’un utilisateur
dont le login et le mot de passe se trouvent dans le fichier /etc/mysql/debian.cnf.
1. Afficher le contenu de ce fichier.
2. En utilisant le manuel relatif à la commande mysql, se connecter au serveur, à la base
de données mysql avec l’utilisateur du fichier debian.cnf.
Attention : MySQL est sensible à la casse (nom des tables, valeurs...)
3. Quelle est la version de MySQL installée ?
Remarque : Le terme mysql désigne, à la fois, le logiciel, le nom de la base de données qui
stocke les définitions d’utilisateurs et l’outil client principal, en ligne de commandes,
permettant d’effectuer des tâches d’administration et des requêtes SQL.
4. Sous l’invite de commande mysql, exécuter la requête suivante :
select user() ;
5. Que fait cette requête ?
6. Exécuter la commande suivante :
show databases ;
7. Que fait cette commande ? La noter.
Remarque : Penser à utiliser la commande help pour obtenir des informations sur une
commande ou une requête.
8. Exécuter la requête suivante :
2
GRANT ALL
ON *.*
TO ‘admin’@’localhost ‘
IDENTIFIED BY ‘sio’
WITH GRANT OPTION ;
9. Que fait-elle ? La noter.
10. Vérifier que la requête a fonctionné.
11. Afficher l’utilisateur en cours.
12. Taper la commande help.
III. Connexion à la base de données :
1. Sous l’utilisateur admin, en ligne de commande, créer une base de données essai avec
une table essai et un seul champ « nom ».
2. Vérifier que la base ainsi que la table sont bien créées.
3. En SQL, écrire une requête pour insérer un enregistrement dans cette table et
l’exécuter.
4. Ecrire ensuite une requête, en SQL, qui affiche le contenu de la table.
5. Dans le répertoire /var/www, créer un répertoire essaiphp puis écrire un programme en
php qui affiche « bonjour » pour vérifier que l’interpréteur PHP fonctionne.
6. Télécharger sur le serveur FTP les fichiers inscription.html et exo7.php et les copier
dans le répertoire essaiphp.
7. Vérifier que le programme exo7.php fonctionne en insérant un enregistrement à partir
du formulaire.
8. Dans la table essai, créer un deuxième champ code (clé primaire) en mode
autoincrement, puis insérer des valeurs à l’aide du programme en PHP. Vérifier le
contenu de la table.
9. Rajouter un troisième champ à la table. Vérifier que cela fonctionne.
10. Appliquer cet exercice au formulaire d’inscription de votre site.
3
Téléchargement