Fedora Core 7 - Université Paris-Sud

Transcription

Fedora Core 7 - Université Paris-Sud
Roza Lemdani
Master Informatique
1re année
Encadrantes : Evelyne Carey-Gailhardis et Chiara Marmo
Ingénieurs Informaticiennes CNRS
Mise en place d’un site WEB en
environnement Linux
(Fedora Core 7)
Stage du 1er avril au 30 juin 2008
Université Paris-Sud 11
Faculté des sciences
91405 Orsay cedex
Laboratoire IDES CNRS UMR 8148
Bâtiment 509
91405 Orsay
Remerciements
Je tiens tout d’abord à remercier Chiara Marmo et Evelyne Carey-Gailhardis qui
m’ont encadrée durant ce stage et qui ont tout fait pour rendre mon travail plus plaisant.
Ce fut un plaisir de collaborer avec elles.
Merci également à tout le personnel et les stagiaires du bâtiment 509 qui ont été
d’une grande sympathie et d’une gentillesse sans égal.
Pour finir, un grand merci au doyen de l’université Paris-sud 11, Philippe Masson que
j’ai eu l’honneur de rencontrer, et qui m’a fait confiance pour la réalisation de ce projet.
1
Table des matières
1 Introduction
4
2 Apache
5
2.1
2.2
httpd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.1.1
Définition de l’extension du fichier d’index . . . . . . . . . . . . . .
5
2.1.2
Activation du .htaccess . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.1.3
Activation du public html des comptes . . . . . . . . . . . . . . . .
6
system-config-httpd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.2.1
Définition de l’extension du fichier d’index . . . . . . . . . . . . . .
7
2.2.2
Activation du public html des comptes . . . . . . . . . . . . . . . .
7
3 Le site
9
3.1
Spip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1.1
Le bilinguisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1.2
L’intranet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1.3
Le design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
Les formulaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2.1
Magellan, MOLA MEGDRs et MOC . . . . . . . . . . . . . . . . .
10
3.2.2
MOLA PEDRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2
4 Base de données
4.1
12
Le site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
12
TABLE DES MATIÈRES
4.2
3
Les données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.2.1
Magellan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.2.2
MOLA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.2.3
MOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
5 Sauvegarde automatique
15
Annexes
16
Chapitre 1
Introduction
Réaliser un site web est une chose facile, mais le maintenir à jour est plus contraignant.
C’est pourquoi, le but de ce stage était de réaliser un site web à l’aide d’un système de
gestion de contenu (SPIP) qui permet une mise à jour simplifiée d’un site par toute personne
disposant d’une connexion internet.
Dans un premier temps, nous parlerons des diverses modifications apportées au server
Apache pour le bon fonctionnement du site [2]. Par la suite, nous évoquerons la mise en
place du site lui même et de sa structure [3]. Après quoi, nous nous intéresserons aux
bases de données créées ainsi qu’à leur remplissage [4]. Pour finir, nous traiterons de la
sauvegarde automatique du site et des bases de données qui le font tourner [5].
4
Chapitre 2
Apache
Quelques modifications sur le server Apache ont été nécessaires pour le bon fonctionnement du site. Celles-ci sont listées ci-dessous.
2.1
httpd.conf
2.1.1
Remplacement de :
D i r e c t o r y I n d e x i n d e x . html i n d e x . html . v a r
par :
D i r e c t o r y I n d e x i n d e x . php i n d e x . html i n d e x . html . v a r
2.1.2
Définition de l’extension du fichier d’index
Activation du .htaccess
Remplacement de :
<D i r e c t o r y ”/ data / w e b s i t e ”>
#
#
#
#
#
#
#
#
#
#
P o s s i b l e v a l u e s f o r t h e Op ti on s d i r e c t i v e a r e ”None ” , ” A l l ” ,
o r any c o m b i n a t i o n o f :
I n d e x e s I n c l u d e s FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
Note t h a t ”MultiViews ” must be named ∗ e x p l i c i t l y ∗ −−− ”O pt io ns A l l ”
doesn ’ t g i v e i t t o you .
The Op ti on s d i r e c t i v e i s both c o m p l i c a t e d and i m p o r t a n t .
h t t p : / / httpd . apache . o r g / d o c s / 2 . 2 / mod/ c o r e . html#o p t i o n s
5
Please see
httpd.conf
6
# f o r more i n f o r m a t i o n .
#
O pt io ns I n d e x e s FollowSymLinks
#
# A l l o w O v e r r i d e c o n t r o l s what d i r e c t i v e s may be p l a c e d i n . h t a c c e s s
# I t can be ” A l l ” , ”None ” , o r any c o m b i n a t i o n o f t h e keywords :
#
O pt io n s F i l e I n f o AuthConfig L i m i t
#
A l l o w O v e r r i d e None
files .
#
# C o n t r o l s who can g e t s t u f f from t h i s s e r v e r .
#
Order a l l o w , deny
Allow from a l l
</ D i r e c t o r y >
par :
<D i r e c t o r y ”/ data / w e b s i t e ”>
#
#
#
#
#
#
#
#
#
#
#
#
P o s s i b l e v a l u e s f o r t h e Op ti on s d i r e c t i v e a r e ”None ” , ” A l l ” ,
o r any c o m b i n a t i o n o f :
I n d e x e s I n c l u d e s FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
Note t h a t ”MultiViews ” must be named ∗ e x p l i c i t l y ∗ −−− ”O pt io ns A l l ”
doesn ’ t g i v e i t t o you .
The Op ti on s d i r e c t i v e i s both c o m p l i c a t e d and i m p o r t a n t .
h t t p : / / httpd . apache . o r g / d o c s / 2 . 2 / mod/ c o r e . html#o p t i o n s
f o r more i n f o r m a t i o n .
Please see
O pt io ns I n d e x e s FollowSymLinks
#
# A l l o w O v e r r i d e c o n t r o l s what d i r e c t i v e s may be p l a c e d i n . h t a c c e s s
# I t can be ” A l l ” , ”None ” , o r any c o m b i n a t i o n o f t h e keywords :
#
O pt io n s F i l e I n f o AuthConfig L i m i t
#
AllowOverride All
#A l l o w O v e r r i d e None
files .
#
# C o n t r o l s who can g e t s t u f f from t h i s s e r v e r .
#
Order a l l o w , deny
Allow from a l l
</ D i r e c t o r y >
2.1.3
Activation du public html des comptes
Remplacement de :
<I f M o d u l e m o d u s e r d i r . c>
#
system-config-httpd.conf
7
# U s e r D i r i s d i s a b l e d by d e f a u l t s i n c e i t can c o n f i r m t h e p r e s e n c e
# o f a username on t h e system ( d e p e n d i n g on home d i r e c t o r y
# permissions ) .
#
UserDir d i s a b l e
#
# To e n a b l e r e q u e s t s t o /˜ u s e r / t o s e r v e t h e u s e r ’ s p u b l i c h t m l
# d i r e c t o r y , remove t h e ”U s e r D i r d i s a b l e ” l i n e above , and uncomment
# the f o l l o w i n g l i n e i n s t e a d :
#
#U s e r D i r p u b l i c h t m l
</IfModule>
par :
<I f M o d u l e m o d u s e r d i r . c>
#
# U s e r D i r i s d i s a b l e d by d e f a u l t s i n c e i t can c o n f i r m t h e p r e s e n c e
# o f a username on t h e system ( d e p e n d i n g on home d i r e c t o r y
# permissions ) .
#
#U s e r D i r d i s a b l e
#
# To e n a b l e r e q u e s t s t o /˜ u s e r / t o s e r v e t h e u s e r ’ s p u b l i c h t m l
# d i r e c t o r y , remove t h e ”U s e r D i r d i s a b l e ” l i n e above , and uncomment
# the f o l l o w i n g l i n e i n s t e a d :
#
UserDir public html
</IfModule>
2.2
system-config-httpd.conf
2.2.1
Définition de l’extension du fichier d’index
Remplacement de :
D i r e c t o r y I n d e x i n d e x . html i n d e x . htm
par :
D i r e c t o r y I n d e x i n d e x . php i n d e x . html i n d e x . htm
2.2.2
Activation du public html des comptes
Remplacement de :
system-config-httpd.conf
8
<I f M o d u l e m o d u s e r d i r . c>
#
# U s e r D i r i s d i s a b l e d by d e f a u l t s i n c e i t can c o n f i r m t h e p r e s e n c e
# o f a username on t h e system ( d e p e n d i n g on home d i r e c t o r y
# permissions ) .
#
UserDir ” d i s a b l e ”
#
# To e n a b l e r e q u e s t s t o /˜ u s e r / t o s e r v e t h e u s e r ’ s p u b l i c h t m l
# d i r e c t o r y , u s e t h i s d i r e c t i v e i n s t e a d o f ”U s e r D i r d i s a b l e ”:
#
#U s e r D i r p u b l i c h t m l
</IfModule>
par :
<I f M o d u l e m o d u s e r d i r . c>
#
# U s e r D i r i s d i s a b l e d by d e f a u l t s i n c e i t can c o n f i r m t h e p r e s e n c e
# o f a username on t h e system ( d e p e n d i n g on home d i r e c t o r y
# permissions ) .
#
#U s e r D i r ” d i s a b l e ”
#
# To e n a b l e r e q u e s t s t o /˜ u s e r / t o s e r v e t h e u s e r ’ s p u b l i c h t m l
# d i r e c t o r y , u s e t h i s d i r e c t i v e i n s t e a d o f ”U s e r D i r d i s a b l e ”:
#
UserDir public html
</IfModule>
Chapitre 3
Le site
3.1
Spip
Le site a été réalisé à l’aide de SPIP qui est un système de gestion de contenu. De ce
fait, la maintenance du site se trouve être facilitée. De plus, l’édition des pages devient à la
portée de toute personne disposant d’un accès à l’Internet et d’un compte administrateur
ou rédacteur sur le site.
3.1.1
Le bilinguisme
Il est possible de rédiger des articles, des brèves (news) ou encore des résumés de
rubriques. Le site étant bilingue, les titres et contenus de rubriques et de brèves doivent
être rédigés de la sorte :
<m u l t i >
[ f r ] Texte en f r a n ç a i s . . .
[ en ] Texte en a n g l a i s . . .
</m u l t i >
Quant aux articles, il suffit de les rédiger normalement, la langue par défaut sera le
français. Après quoi il faudra créer une traduction de l’article en question, et spécifier que
l’article est en anglais.
3.1.2
L’intranet
Une partie intranet a été également mise en place. Elle peut donc contenir des articles
et/ou rubriques invisibles aux utilisateurs non identifiés. Pour cela, il suffit de rattacher les
élements en question à la rubrique Intranet dans l’espace d’administration.
9
Les formulaires
10
Ceci a été réalisé à l’aide du plugin « Accès restreint » mis à disposition par la
communauté SPIP.
3.1.3
Le design
Tout ce qui concerne le design du site se trouve dans le répertoire “squelettes” à la
racine du site.
3.2
Les formulaires
L’un des aspects du projet était de remettre à disposition les formulaires de téléchargement. Ces derniers permettaient d’accéder aux images contenues dans les CDs relatifs
aux différentes missions sur les planètes.
3.2.1
Magellan, MOLA MEGDRs et MOC
Les formulaires ont été conçus de façon à répondre au mieux aux attentes de l’utilisateur. De cette façon, il lui est possible de choisir les coordonnées qu’il recherche en les
entrant manuellement dans les champs concernés, ou en cliquant sur la carte de la planète
en question (si disponible). Aussi les formulaires répondent-ils de façon intéractive aux actions de l’utilisateur, de manière à l’informer avec précision de ses éventuelles maladresses.
Cette sécurité est contrôlée par du JavaScript (checkform.js), et si les informations communiquées par l’utilisateur se trouvent être correctes, les données sont transmises à un
script AJAX (inc content.js) qui affiche le résultat de la requête de l’utilisateur. La navigation entre les résultats (tri, changement de page) se fait également via le script AJAX
“inc content.js”.
Des miniatures des images ont également été créées pour les données Magellan et
MOLA, et à l’aide de l’utilitaire ISIS. Elles sont disponibles dans la page qui détaille les
informations d’une image donnée (en cliquant sur le lien “voir” issu du formulaire).
3.2.2
MOLA PEDRs
Les données MOLA PEDRs se trouvent être particulières, car le résultat de la requête
de l’utilisateur génère un fichier qui lui sera exlusivement destiné. Ces fichiers sont détruits
au bout de 30 min, c’est pourquoi, un script de téléchargement adapté à la situation a
été réalisé, de façon à vérifier si le fichier qu’essaye de télécharger l’utilisateur est toujours
disponible sur le server. Le cas échéant la date du fichier est remise à zéro (pour éviter
Les formulaires
11
qu’il soit effacé au cours du téléchargement). Autrement, il est indiqué à l’utilisateur que
sa session a expiré. Le script en question a été réalisé en AJAX et se trouve dans le fichier
“check file.js” et communique avec la page PHP “check file.php”.
Note Les différents scripts gérant l’interaction avec l’utilisateur se trouvent dans le répertoire “scripts” qui est à la racine du site.
Chapitre 4
Base de données
4.1
Le site
Les tables du site spip se trouvent dans la base « spip ».
4.2
4.2.1
Les données
Magellan
Les données magellan se trouvent dans la base du même nom. Trois tables meublent
la base :
– La table image : contient les données relatives aux images se trouvant sur le server.
image (image id, file name, volume name, file path, file type, line samples, lines,
map resolution, map scale, line projection offset, sample projection offset,
center latitude, center longitude, image footprint)
– La table image type : contient les données relatives aux types d’images.
image type (type id, type name, description en, description fr)
Les CDs, bien que présents à la photothèque, ont été téléchargés via le site du PDS,
car cela représentait une solution plus rapide.
Concernant l’extraction des informations relatives aux images, les données de type
MIDR disposaient d’un label séparé pour chaque image. Il suffisait donc de parcourir les
fichiers en question afin d’en extraire les informations qui nous intéressaient.
Quant aux images F-MAPs, le label relatif à chacune d’elles se trouvait être contenu
dans l’entête de l’image elle-même. De ce fait, il a fallu lire les premiers bits de ces fichiers
afin d’effectuer le même traitement que précédemment.
12
Les données
4.2.2
13
MOLA
Les données MOLA se trouvent dans la base mola. La structure des tables reste
identique à celle de Magellan. Leur remplissage à été semblable à celui des données de type
MIDR de Magellan également.
Note En ce qui concerne les images des pôles, les longitudes n’ayant pas été précisées,
les longitudes introduites ont été 0 à 360˚.
4.2.3
MOC
Les données MOC se trouvent dans la base du même nom. On y trouve 4 tables :
– La table image : contient les données relatives aux images se trouvant sur le server.
image (image id, file name, volume name, file path, phase, instrument id, filter id,
line samples, lines, map resolution, map scale, center latitude, center longitude,
image footprint, flag)
– La table phase : contient les données relatives aux phases des missions.
phase (phase id, phase name)
– La table instrument : contient les données relatives aux instruments.
instrument (instr id, instr name)
– La table filter : contient les données relatives aux filtre d’images.
filter (filter id, filter name)
Il est à noter que pour les données MOC, les informations relatives aux images se
trouvent être sous forme de fichiers CSV (Comma Separated Values). Chaque ligne de
ce type de fichiers comportant des informations sur une image donnée. En utilisant les
valeurs fournies dans le label explicatif pour le début et la longueur de chaque champ,
un décalage dans l’extraction des information se produisait sur certaines valeurs. C’est
pourquoi, l’extraction a été effectuée en délimitant chaque information par les virgules
l’entourant. Cette méthode n’est pas la plus préférable du fait qu’il puisse se trouver une
virgule dans un champ, mais au vue de la nature des données, ce problème ne peut se poser
que pour le dernier champ (celui de description), que nous n’utilisons pas.
Les projections n’ayant pas toutes été effectuées, certaines valeurs de longitude et
de latitude se trouvent être manquantes. C’est pourquoi un calcul a été effectué afin de
déterminer, à l’aide de la latitude (resp. longitude) centrale et de la latitude (resp. longitude) opposée à celle que l’on recheche, une latitude (resp. longitude) approximative. Une
trace de ces calculs se trouve dans la table IMAGE, le champ FLAG étant à 0 si toutes les
valeurs étaient fournies, et à 1 si un calcul a été effectué.
Les données
14
Enfin, la MAP RESOLUTION (m/deg) se trouvant être une donnée manquante, elle
a été calculée à l’aide de la formule :
M AP RESOLU T ION =
3390000 étant un rayon de Mars en mètres.
2 × π × 3390000
M AP SCALE × 360
Chapitre 5
Sauvegarde automatique
Une sauvegarde automatique de la base de données ainsi que du site est programmée
pour tous les 1er et 15 du mois, à 2h00.
Le script de sauvegarde se trouve sous le répertoire /data/backup et porte le nom
« backup.planeto ». Le script effectue au préalable une copie des bases spip, magellan, mola
et moc, puis crée une archive dans le même répertoire, contenant les scripts sql relatifs aux
bases citées, le site spip se trouvant dans /data/website, les scripts de remplissage des bases
de données, ainsi que le script lui même.
En ce qui concerne l’excution automatique du script, ceci est géré par Cron. Les
crontab étant personelles, l’execution du script a été ajoutée à la crontab de l’utilisateur
root de la façon suivante :
[ r o o t @ p l a n e t o ˜]# c r o n t a b −e
La commande ci-dessus ouvre le fichier crontab de l’utilisateur root à l’aide de l’éditeur
vim.
0 2 1 , 1 5 ∗ ∗ / data / backup / backup . p l a n e t o >>/dev / n u l l
Une description du fonctionnement de Cron est fournie en annexe.
Note Il est possible de lancer la sauvegarde manuellement, en executant le script “/data/backup/backup.planeto”.
15
Annexes
Syntaxe de cron
Afin d’éditer la table cron, il suffit d’exécuter la commande suivante :
c r o n t a b −e
Cette commande a pour effet de lancer l’éditeur Vi présentant la table actuelle (donc
aucune si il s’agit du premier lancement de crontab).
Chaque entrée de la table (chaque ligne) correspond à une tâche à exécuter et est
notée de la façon suivante :
mm hh j j MMM JJJ t â c h e > l o g
Dans cette syntaxe :
–
–
–
–
mm représente les minutes (de 0 à 59)
hh représente l’heure (de 0 à 23)
jj représente le numéro du jour du mois (de 1 à 31)
MMM représente le numéro du mois (de 1 à 12) ou l’abréviation du nom du mois
(jan, feb, mar, apr, ...)
– JJJ représente l’abréviation du nom du jour ou le chiffre correspondant au jour de
la semaine (0 représente le dimanche, 1 représente le lundi, ...)
– tâche représente la commande ou le script shell à exécuter
– log représente le nom d’un fichier dans lequel stocker le journal des opérations.
Si la clause > log n’est pas spécifiée, cron enverra automatiquement un mail de
confirmation. Pour éviter cela il suffit de spécifier > /dev/null
Pour chaque unité de temps (minute/heure/...) les notations sont possibles :
–
–
–
–
* : a chaque unité de temps
2-5 : les unités de temps (2,3,4,5)
*/3 : toutes les 3 unités de temps (0,3,6,...)
5,8 : les unités de temps 5 et 8
Source http://www.commentcamarche.net/tutlinux/lincron.php3