Projet

Général

Profil

EnvoleBonnesPratiques » Historique » Version 20

Gérald Schwartzmann, 18/03/2010 12:48

1 20 Gérald Schwartzmann
h1. [[Développement|Développement]]
2 20 Gérald Schwartzmann
3 20 Gérald Schwartzmann
4 1 Gérald Schwartzmann
{{include(ModeleEbauche)}}
5 5 Gérald Schwartzmann
6 5 Gérald Schwartzmann
h1. Les Bonnes Pratiques
7 6 Gérald Schwartzmann
8 7 Gérald Schwartzmann
h2. Documentations, sources et articles wiki
9 8 Gérald Schwartzmann
10 12 Gérald Schwartzmann
Voici "Les bonnes pratiques sur le nommage des applications EOLE":http://eole.orion.education.fr/wiki/index.php/DocumentationDokiel
11 6 Gérald Schwartzmann
12 9 Gérald Schwartzmann
h2. Git
13 6 Gérald Schwartzmann
14 7 Gérald Schwartzmann
h3. Placement
15 1 Gérald Schwartzmann
16 11 Gérald Schwartzmann
Les applications de Envole sont des sous-projets de "Envole":http://dev-eole.ac-dijon.fr/projects/envole .
17 13 Gérald Schwartzmann
Dans le dépôt ils apparaissent les un à côté des autres (à plat).
18 1 Gérald Schwartzmann
19 13 Gérald Schwartzmann
h3. Les Bonnes Pratiques
20 13 Gérald Schwartzmann
"Les Bonnes Pratiques":http://dev-eole.ac-dijon.fr/projects/eole-interne/wiki/GitBonnesPratiques
21 13 Gérald Schwartzmann
22 1 Gérald Schwartzmann
h3. Nommage
23 8 Gérald Schwartzmann
24 14 Gérald Schwartzmann
Le nom des sous-projets doivent être en minuscule
25 6 Gérald Schwartzmann
26 13 Gérald Schwartzmann
Exemple dans la liste des sous-projets : http://dev-eole.ac-dijon.fr/projects/envole
27 6 Gérald Schwartzmann
28 14 Gérald Schwartzmann
h3. Structure du Master
29 6 Gérald Schwartzmann
30 14 Gérald Schwartzmann
Puisque votre développement n'est pas la branche d'un projet déjà existant on réalise un master.<br />
31 14 Gérald Schwartzmann
Pour cela il faut créer selon les besoins de votre application les fichiers et répertoires suivant :
32 6 Gérald Schwartzmann
 - Makefile
33 6 Gérald Schwartzmann
 - debian/
34 6 Gérald Schwartzmann
 - dicos/
35 6 Gérald Schwartzmann
 - mysql/
36 6 Gérald Schwartzmann
 - patch/
37 6 Gérald Schwartzmann
 - sso/
38 6 Gérald Schwartzmann
 - source_de_votre_appli_num_de_version/
39 6 Gérald Schwartzmann
 - tmpls/
40 6 Gérald Schwartzmann
 - etc/
41 6 Gérald Schwartzmann
42 14 Gérald Schwartzmann
Exemple : http://dev-eole.ac-dijon.fr/projects/dokuwiki/repository
43 6 Gérald Schwartzmann
44 7 Gérald Schwartzmann
h2. Les fichiers templates
45 8 Gérald Schwartzmann
46 6 Gérald Schwartzmann
Le nom d'un fichier templétisé ne doit pas porté le même nom qu'un autre pour cela il faut préfixer le nom du fichier avec le nom de l'application.
47 6 Gérald Schwartzmann
48 6 Gérald Schwartzmann
Exemple du fichier config.php qui est présent dans une bonne partie des applications :
49 6 Gérald Schwartzmann
50 6 Gérald Schwartzmann
taskfreak_config.php
51 6 Gérald Schwartzmann
52 7 Gérald Schwartzmann
h2. Dico
53 8 Gérald Schwartzmann
54 7 Gérald Schwartzmann
h3. Nommage
55 8 Gérald Schwartzmann
56 6 Gérald Schwartzmann
Les applications du socle
57 6 Gérald Schwartzmann
<pre>5x_nom_de_l_application.xml</pre>
58 6 Gérald Schwartzmann
Les applications supplémentaires au socle
59 6 Gérald Schwartzmann
<pre>6x_nom_de_l_application.xml</pre>
60 6 Gérald Schwartzmann
x étant supérieur à 0
61 6 Gérald Schwartzmann
62 7 Gérald Schwartzmann
h3. construction du fichier
63 8 Gérald Schwartzmann
64 15 Gérald Schwartzmann
{{include(ModeleFixme)}}
65 6 Gérald Schwartzmann
66 7 Gérald Schwartzmann
h2. Paquetage
67 8 Gérald Schwartzmann
68 6 Gérald Schwartzmann
eole-nom_de_l_application
69 6 Gérald Schwartzmann
70 7 Gérald Schwartzmann
h2. Apache
71 1 Gérald Schwartzmann
72 15 Gérald Schwartzmann
h3. nommage du fichier de conf dans sites-enabled
73 15 Gérald Schwartzmann
74 6 Gérald Schwartzmann
Un fichier de conf apache par application :
75 1 Gérald Schwartzmann
<pre>apache-nom_de_l_application.conf</pre>
76 15 Gérald Schwartzmann
77 15 Gérald Schwartzmann
h3. contenu du fichier de conf dans sites-enabled
78 15 Gérald Schwartzmann
79 19 Gérald Schwartzmann
Le chemin de l'application doit être son nom
80 19 Gérald Schwartzmann
81 16 Gérald Schwartzmann
Si un projet ne contient pas de .htaccess il faut ajouter la directive *AllowOverride None*.
82 16 Gérald Schwartzmann
Celle-ci permet de diminuer le délai d'attente en lui évitant de partir à la recherche de fichier .htaccess dans chaque répertoire qu'il visite.
83 16 Gérald Schwartzmann
84 18 Gérald Schwartzmann
Date d'expiration du cache proxy ou navigateur.
85 18 Gérald Schwartzmann
Régler correctement et finement le cache des clients permet d'éviter un grand nombre de requête.
86 18 Gérald Schwartzmann
En prévision de l'activation du *mod_expires* sur le serveur Apache, on peut ajouter la directive *ExpiresActive On* suivit de directive *ExpiresByType type "durée de vie dans le cache"*
87 18 Gérald Schwartzmann
88 18 Gérald Schwartzmann
<pre>
89 18 Gérald Schwartzmann
<IfModule mod_expires.c>
90 18 Gérald Schwartzmann
                ExpiresActive On
91 18 Gérald Schwartzmann
                ExpiresByType text/html "access plus 1 day"
92 18 Gérald Schwartzmann
</IfModule>
93 18 Gérald Schwartzmann
</pre>
94 18 Gérald Schwartzmann
95 18 Gérald Schwartzmann
Exemple complet d'un fichier de configuration d'une application :
96 16 Gérald Schwartzmann
97 16 Gérald Schwartzmann
<pre>
98 16 Gérald Schwartzmann
# Envole Infos
99 16 Gérald Schwartzmann
# Equipe EOLE
100 16 Gérald Schwartzmann
Alias /envole-infos /var/www/html/envole-infos
101 16 Gérald Schwartzmann
<Directory "/var/www/html/envole-infos">
102 17 Gérald Schwartzmann
        AllowOverride None
103 16 Gérald Schwartzmann
        AddDefaultCharset UTF-8
104 16 Gérald Schwartzmann
        DirectoryIndex index.php
105 16 Gérald Schwartzmann
        Order Allow,Deny
106 16 Gérald Schwartzmann
        Allow from All
107 16 Gérald Schwartzmann
        <IfModule mod_expires.c>
108 16 Gérald Schwartzmann
                ExpiresActive On
109 16 Gérald Schwartzmann
                ExpiresByType text/html "access plus 1 day"
110 16 Gérald Schwartzmann
                ExpiresByType text/xml "access plus 1 day"
111 16 Gérald Schwartzmann
                ExpiresByType image/gif "access plus 1 week"
112 16 Gérald Schwartzmann
                ExpiresByType image/jpg "access plus 1 week"
113 16 Gérald Schwartzmann
                ExpiresByType image/png "access plus 1 week"
114 16 Gérald Schwartzmann
                ExpiresByType video/quicktime "access plus 1 month"
115 16 Gérald Schwartzmann
                ExpiresByType audio/mpeg "access plus 1 month"
116 16 Gérald Schwartzmann
                ExpiresByType application/pdf "access plus 1 month"
117 16 Gérald Schwartzmann
                ExpiresByType application/ps "access plus 1 month"
118 16 Gérald Schwartzmann
                ExpiresByType text/css "access plus 1 day"
119 16 Gérald Schwartzmann
                ExpiresByType application/x-shockwave-flash "access plus 1 day"
120 16 Gérald Schwartzmann
                ExpiresByType text/js "access plus 1 week"
121 16 Gérald Schwartzmann
                ExpiresByType text/javascript "access plus 1 week"
122 16 Gérald Schwartzmann
                ExpiresByType application/x-javascript "access plus 1 week"
123 16 Gérald Schwartzmann
                ExpiresByType image/x-icon "access plus 1 day"
124 16 Gérald Schwartzmann
        </IfModule>
125 16 Gérald Schwartzmann
</Directory>
126 16 Gérald Schwartzmann
</pre>
127 15 Gérald Schwartzmann
128 15 Gérald Schwartzmann
h3. les droits dans /var/www/html/
129 6 Gérald Schwartzmann
130 6 Gérald Schwartzmann
Les droits de /var/www/html/votre_appli<br />
131 6 Gérald Schwartzmann
<pre>chmod -R 755       /var/www/html/moodle
132 6 Gérald Schwartzmann
chown -R root:     /var/www/html/moodle</pre>
133 6 Gérald Schwartzmann
134 6 Gérald Schwartzmann
Pour des raisons de sécurité seuls les fichiers nécessitant d'être modifiés par l'application appartiennent à l'utilisateur avec lequel est lancé apache à savoir www-data<br />
135 6 Gérald Schwartzmann
<pre>chown -R www-data:     /var/www/html/moodledata</pre>
136 6 Gérald Schwartzmann
137 7 Gérald Schwartzmann
h2. Base de données
138 8 Gérald Schwartzmann
139 6 Gérald Schwartzmann
<pre>scribe-nom_de_l_application.sql</pre>
140 6 Gérald Schwartzmann
141 6 Gérald Schwartzmann
Si la bdd nécessite une templétisation il est préférable de découper la bdd en deux fichiers MySql.<br />
142 6 Gérald Schwartzmann
L'un avec la partie à templétiser et l'autre avec le reste.<br />
143 6 Gérald Schwartzmann
Cette découpe fait gagner un temps considérable lors du reconfigure.<br />
144 6 Gérald Schwartzmann
145 7 Gérald Schwartzmann
h2. {{include(ModeleFixme)}}
146 6 Gérald Schwartzmann
147 6 Gérald Schwartzmann
Où stocker les données des applications d'Envole ?<br />
148 6 Gérald Schwartzmann
exemple Moodle<br />
149 6 Gérald Schwartzmann
les données sont pour le moment stockées dans /var/www/<br />
150 6 Gérald Schwartzmann
serait-ce mieux dans /home/<br />
151 6 Gérald Schwartzmann
sauvegarde de Bacule ?