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

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Relecture
Ligne 1 :
{{ébauche informatique}}
 
{{Travail pratique
| titre = Faire un serveur Web
| titre_leçon = Les bases du développement Web SPARQL
| idfaculté = informatique
| leçon = [[SPARQL Protocol and RDF Query Language]]
Ligne 9 ⟶ 7 :
| précédent = [[../Installer Ubuntu/]]
| suivant = [[../Initiation à PHP/]]
| niveau = ?0
}}
{{Travail pratique présentation
| objectif1 = Configurer le service Apache HTTP pour héberger plusieurs sites Web
| objectif2 = Installer un nouveau site Web
| durée = 2h
| matériel1 = Il faut que votre ordinateur soit sous Linux. (Ubuntu ou Fedora)
}}
 
=== Pourquoi faire un serveur Web ? ===
== Introduction ==
=== Pourquoi faire un serveur Web ? ===
Dans ce TP, nous allons installer 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 ==
PourOn peut mettre en place un serveur, on peut le faire de deux manières : comme une recette de cuisine ou comme un chimiste.
 
Le chimiste va essayer de comprendre ce qu'il fait avant de le faire. Le cuisinier va dérouler sa recette en espérant que ça fonctionne.
 
Si vous voulez passer àsuivre la recette, vous pouvez passer à la partie suivante, sinon je vous conseille de relire quelques articles de WikipediaWikipédia.
 
=== C'est quoi un serveur ? etEt un client ? ===
[[w:fr:Client-serveur|Lire l'article Client Serveur de Wikipédia]]
 
Ligne 42 ⟶ 36 :
[[w:fr:Hypertext_Transfer_Protocol|Lire l'article sur le protocole HTTP de Wikipédia]]
 
Un serveur Web utilise le protocole HTTP, cela signifie qu'il utilise :
* le TCP comme couche de transport
* le port 80 (443 pour HTTPS)
Ligne 51 ⟶ 45 :
* Mauvaise configuration DNS
* Problème de Firewall
* Etc...
 
=== Questions qu'on doit se poser avant de faire unUN site Web ===
* Ce site Web est-il visible uniquement sur mon PC de développement ?
** Mon PC de développement a-t-il une IP fixe ou dynamique  ?
* 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
Ligne 62 ⟶ 56 :
** Quelle IP fixe aura mon serveur ?
** Quel nom de domaine aura mon serveur ?
** Mon entreprise a-t-elle déjà un nom de domaine  ?
*** Demander un sous-domaine ?
 
=== Question à se poser avant de faire deSDES 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 hostingHosting'''
 
Le virtualVirtual hostingHosting 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 quantquand on doit développer et tester plusieurs sites Web sur son poste de développement.
 
== TP : Configurer un postesposte de développement Web avec un Virtual Hosting ==
Le Virtual Hosting permet de :
Le virtual hosting :
* Permet de travailler sur plusieurs sites webWeb en même temps
* Simulersimuler 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 ===
Ligne 84 ⟶ 78 :
* Votre site n’est visible que de votre PC
 
Il faut résoudre localement votre nom de domaine. RajouterAjouter le nom de domaine moncv dans le fichier '''/etc/hosts''' à la fin de la ligne où se trouve la définition de votre localhost, ici on rajouteajoute le site webWeb moncv :
'''127.0.0.1 localhost moncv'''
 
'''Sous ubuntuUbuntu : commande pour ouvrir le fichier /etc/hosts'''
<source lang="bash">
sudo gedit /etc/hosts
Ligne 94 ⟶ 88 :
=== Installation : Apache2 ===
==== Installation du package ====
Nous installons ce qu’il manque sur le serveur : (souvent, apacheApache est déjà installé)
 
'''Sous Ubuntu'''
Ligne 127 ⟶ 121 :
 
==== Activer le Virtual Hosting ====
On vérifie la configuration de Apached’Apache pour faire du Virtual Hosting en vérifiant que la ligne suivante n'est pas précédée d'un commentaire (c'est-à-dire qu'elle ne doit pas être précédéprécédée d'un #):
<pre>
NameVirtualHost *:80
</pre>
 
* '''Sous ubuntuUbuntu''' cette ligne se trouve dans le fichier '''/etc/apache2/ports.conf'''
* '''Sous Fedora''' et les autres distributions linuxLinux c’est dans le fichier '''/etc/httpd/conf/httpd.conf'''
 
==== Tester votre configuration ====
On vérifie la configuration de d'Apache pour voir les sites Web déjà fonctionnels :
 
'''Sous Ubuntu'''
Ligne 150 ⟶ 144 :
Vous pouvez voir qu'un site Web "default server" existe déjà.
 
Vous pouvez taper dans votre navigateur le nom du site Web monCV et vous devrezdevriez voir la page "It works!".<br/>
L'adresse monCV pointe vers l'adresse 127.0.0.1 comme nous l'avons configuréconfigurée précédemment et; puisque unpuisqu’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 dansvers un répertoire précis de votre ordinateur.
 
==== Sous Ubuntu ====
Ligne 169 ⟶ 163 :
</source>
 
On modifie ou rajouteon ajoute les lignes suivantesuivantes (en jaunegras) dans ce fichier :
<source lang="apache" line="GESHI_NORMAL_LINE_NUMBERS" highlight="2,4,5,11">
<VirtualHost *:80>
Ligne 216 ⟶ 210 :
</source>
 
Pour prendre en compte ce fichier de configuration, il faut activer ce site Web avec cette commande. :
<source lang="bash">
sudo a2ensite moncv
</source>
 
Pour votre information, vous pouvez à tout moment désactiver ce site webWeb avec la commande suivante :
<source lang="bash">
sudo a2dissite moncv
Ligne 228 ⟶ 222 :
==== Sous Fedora ====
 
Ouvrir le fichier de configuration Apache HTTP :
<source lang="bash">
su -
Ligne 234 ⟶ 228 :
</source>
 
Insérer à la fin du fichier de configuration la ligne suivante :
<source lang="text">
Include /etc/httpd/conf/vhosts/*.conf
</source>
 
Créer le répertoire qui va contenir les configurations des sites webWeb :
<source lang="bash">
mkdir /etc/httpd/conf/vhosts
</source>
 
Créer le fichier moncv.conf :
<source lang="bash">
gedit /etc/httpd/conf/vhosts/moncv.conf
</source>
 
Insérer, dans le fichier moncv.conf, ce contenu :
<source lang="text">
<VirtualHost *:80>
Ligne 257 ⟶ 251 :
</source>
 
Pour prendre en compte ces fichiers de configuration :
<source lang="bash">
service httpd restart
Ligne 268 ⟶ 262 :
 
=== Ma première page HTML ===
Pour testervérifier que tout cela fonctionne, nous allons créer le répertoire /var/www/moncv que nous avons indiqué dans le fichier de configuration.<br/>
On n'oublie pas de devenir propriétaire du répertoire, pour éviter de devenirrepasser root à chaque insertion de fichier.
 
'''Sous Ubuntu'''
Ligne 285 ⟶ 279 :
 
{{remarque|contenu=
Votre user_id correspond à votreau login que vous tapez quand vous ouvrez une session sous Linux.
}}
 
Ligne 292 ⟶ 286 :
 
{{remarque|contenu=
Si vous ne savez pas utiliser vim, passerpassez à la partie suivante. Nous verrons dans le TP suivant comment écrire un fichier HTML et comment utiliser vim.
}}
 
Ligne 310 ⟶ 304 :
 
=== Prise en compte des modifications ===
Pour prendre en compte la création de ce site Web, il faut redémarrer apacheApache :
 
'''Sous Ubuntu'''
Ligne 324 ⟶ 318 :
Il suffit de tester en accédant à travers un navigateur à l'adresse http://moncv pour voir s'afficher "moncv" à l'écran.
 
Vous pouvez aussi voir que le site apparaît dans la liste des sites, qui s'affiche avec la commande :
'''Sous Ubuntu'''
<source lang="bash">
Ligne 335 ⟶ 329 :
</source>
 
Maintenant, que votre première page HTML est en ligne, vous pourrez 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 ==
* [[w:fr:Hypertext_Transfer_Protocol|ProtocolProtocole 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 webWeb securisésécurisé]
 
[[Catégorie:SPARQL Protocol and RDF Query Language]]
 
{{Bas de page
| leçon = TP SPARQL
{{ébauche | idfaculté = informatique}}
| précédent = [[../Installer Ubuntu/]]
| suivant = [[../Initiation à PHP/]]
}}