« SPARQL Protocol and RDF Query Language/Travail pratique/Faire un serveur Web » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Changement de type cosmétique
Ligne 12 :
}}
 
== Introduction ==
=== Pourquoi faire un serveur Web ? ===
Dans ce TP, nous allons installé un serveur Web fonctionnel classique qui nous servira de base dans les prochains TP pour utiliser SPARQL.
 
=== Durée du TP ===
 
'''2 heures'''
 
=== Matériel du TP ===
Il faut que votre ordinateur soit sous Linux.
Nous donnerons les commandes à faire pour Ubuntu ou pour Fedora (type Redhat).
 
== A comprendre avant de faire le TP ==
Pour mettre en place un serveur, on peut le faire de deux manières : comme une recette de cuisine ou comme un chimiste.
 
Ligne 31 :
Si vous voulez passer à la recette vous pouvez passer à la partie suivante sinon je vous conseille de relire quelques articles de Wikipedia.
 
=== C'est quoi un serveur ? et un client ? ===
[http://fr.wikipedia.org/wiki/Client-serveur Lire l'article Client Serveur de Wikipédia]
 
=== C'est quoi une architecture trois tiers ? ===
 
[http://fr.wikipedia.org/wiki/Architecture_trois_tiers Lire l'article Architecture trois tiers de Wikipédia]
 
=== C'est quoi un serveur HTTP et un serveur Web ? ===
 
[http://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol Lire l'article sur le protocole HTTP de Wikipédia]
Ligne 49 :
 
De manière générale, la configuration d'un service HTTP pose souvent problème :
* Mauvaise configuration DNS
* Problème de Firewall
* Etc...
 
=== Questions qu'on doit se poser avant de faire un site Web ===
* Ce site Web est-il visible uniquement sur mon PC de développement ?
** Mon PC de développement a une IP fixe ou dynamique aura mon serveur ?
* Ce site Web est-il visible de l’extérieur ou uniquement dans mon intranet ?
** Si l'ordinateur a une IP dynamique, s’assurer que le nom de l'ordinateur est bien résolu par le serveur DNS de votre réseau
** Si l'ordinateur a une IP fixe, vous pouvez faire un serveur Web sans vous soucier immédiatement du DNS
* Ce site Web est-il visible de l’extérieur ?
** Quelle IP fixe aura mon serveur ?
** Quel nom de domaine aura mon serveur ?
** Mon entreprise a déjà un nom de domaine ?
*** Demander un sous-domaine ?
 
=== Question à se poser avant de faire deS sites Web ===
Un serveur n’a qu’un seul port 80. En pratique pour héberger plusieurs sites Web sur un serveur, il faut :
* Attribuer au site Web un autre port
** Redirection à faire par un autre composant réseau
** Modifier le Firewall pour ouvrir des ports exotiques
* '''Faire du Virtual hosting'''
 
Le virtual hosting permet de n'utiliser que le port 80 et d’afficher le site Web en fonction du nom de domaine demandé. Ce qui est très pratique quant on doit développer et tester plusieurs sites Web sur son poste de développement.
 
== TP : Configurer un postes de développement Web avec un Virtual Hosting ==
Le virtual hosting :
* Permet de travailler sur plusieurs sites web en même temps
* Simuler le nom de domaine comme si le service était en production et éviter d’utiliser l’utilisation des adresses IP (changeante en production et en développement)
 
=== Installation : Résoudre votre nom de domaine ===
On suppose que nous sommes dans un environnement de développement :
* Vous ne pouvez pas modifier le DNS de votre réseau
* Votre site n’est visible que de votre PC
 
Il faut résoudre localement votre nom de domaine. Rajouter dans le fichier '''/etc/hosts''' à la fin de la ligne où se trouve la définition de votre localhost, ici on rajoute le site web moncv :
Ligne 92 :
</source>
 
=== Installation : Apache2 ===
==== Installation du package ====
Nous installons ce qu’il manque sur le serveur : (souvent apache est déjà installé)
 
Ligne 106 :
</source>
 
==== Activer le mod_rewrite ====
De nombreuses applications, comme Mediawiki, ne peuvent fonctionner qu'avec ce mode pour réécrire les URL. ([http://en.wikipedia.org/wiki/Rewrite_engine Pour aller plus loin])
 
Ligne 126 :
...</pre>
 
==== Activer le Virtual Hosting ====
On vérifie la configuration de Apache pour faire du Virtual Hosting en vérifiant que la ligne suivante n'est pas précédée d'un commentaire (cad qu'elle ne doit pas être précédé d'un #):
<pre>
Ligne 132 :
</pre>
 
* '''Sous ubuntu''' cette ligne se trouve dans le fichier '''/etc/apache2/ports.conf'''
* '''Sous Fedora''' et les autres distributions linux c’est dans le fichier '''/etc/httpd/conf/httpd.conf'''
 
==== Tester votre configuration ====
On vérifie la configuration de Apache pour voir les sites Web déjà fonctionnels :
 
'''Sous Ubuntu'''
<source lang="bash">
apache2ctl -S
</source>
 
Ligne 153 :
L'adresse monCV pointe vers l'adresse 127.0.0.1 comme nous l'avons configuré précédemment et puisque un site Web par défaut existe, il est logique que le site monCV pointe vers ce site Web.
 
=== Configuration du site Web monCV ===
Nous allons configurer le site monCV pour qu'il pointe dans un répertoire précis de mon ordinateur.
 
==== Sous Ubuntu ====
On duplique le fichier de configuration du site Web par défaut pour servir de modèle à notre nouveau site Web "moncv".
 
Ligne 226 :
</source>
 
==== Sous Fedora ====
<source lang="bash">
A faire
</source>
 
=== Ma première page HTML ===
Pour tester que tout cela fonctionne, nous allons créer le répertoire /var/www/moncv que nous avons indiqué dans le fichier de configuration.
On n'oublie pas de devenir propriétaire du répertoire pour éviter de devenir root à chaque insertion de fichier.
Ligne 260 :
</source>
 
=== Prise en compte des modifications ===
Pour prendre en compte la création de ce site Web, il faut redémarrer apache :
 
Ligne 278 :
'''Sous Ubuntu'''
<source lang="bash">
apache2ctl -S
</source>
 
Ligne 288 :
Maintenant que votre première page HTML est en ligne, vous pourriez maintenant essayer de la rendre dynamique en y insérant du PHP pour afficher le contenu d'une base de données MySQL ou SPARQL par exemple. Pour le faire, il faudra installer PHP, MySQL... et un triplestore ! Ce sera pour un autre TP.
 
== Pour aller plus loin ==
* [http://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol Protocol HTTP]
* [http://doc.ubuntu-fr.org/apache2 Apache sur Ubuntu]
* [http://brocas.org/blog/post/2008/01/17/Gandi-Hebergement-part-2%3A-securiser-son-serveur-Ubuntu Sécurité de base sur Ubuntu]
* [http://www.chiroux.com/installation-dun-serveur-web-securise-sous-ubuntu-9-04server/ Installation d'un serveur web securisé]
 
[[Catégorie:SPARQL Protocol and RDF Query Language]]