Projet

Général

Profil

EnvoleBonnesPratiques » Historique » Version 16

Gérald Schwartzmann, 11/03/2010 15:23

1 1 Gérald Schwartzmann
{{include(ModeleEbauche)}}
2 5 Gérald Schwartzmann
3 5 Gérald Schwartzmann
h1. Les Bonnes Pratiques
4 6 Gérald Schwartzmann
5 7 Gérald Schwartzmann
h2. Documentations, sources et articles wiki
6 8 Gérald Schwartzmann
7 12 Gérald Schwartzmann
Voici "Les bonnes pratiques sur le nommage des applications EOLE":http://eole.orion.education.fr/wiki/index.php/DocumentationDokiel
8 6 Gérald Schwartzmann
9 9 Gérald Schwartzmann
h2. Git
10 6 Gérald Schwartzmann
11 7 Gérald Schwartzmann
h3. Placement
12 1 Gérald Schwartzmann
13 11 Gérald Schwartzmann
Les applications de Envole sont des sous-projets de "Envole":http://dev-eole.ac-dijon.fr/projects/envole .
14 13 Gérald Schwartzmann
Dans le dépôt ils apparaissent les un à côté des autres (à plat).
15 1 Gérald Schwartzmann
16 13 Gérald Schwartzmann
h3. Les Bonnes Pratiques
17 13 Gérald Schwartzmann
"Les Bonnes Pratiques":http://dev-eole.ac-dijon.fr/projects/eole-interne/wiki/GitBonnesPratiques
18 13 Gérald Schwartzmann
19 1 Gérald Schwartzmann
h3. Nommage
20 8 Gérald Schwartzmann
21 14 Gérald Schwartzmann
Le nom des sous-projets doivent être en minuscule
22 6 Gérald Schwartzmann
23 13 Gérald Schwartzmann
Exemple dans la liste des sous-projets : http://dev-eole.ac-dijon.fr/projects/envole
24 6 Gérald Schwartzmann
25 14 Gérald Schwartzmann
h3. Structure du Master
26 6 Gérald Schwartzmann
27 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 />
28 14 Gérald Schwartzmann
Pour cela il faut créer selon les besoins de votre application les fichiers et répertoires suivant :
29 6 Gérald Schwartzmann
 - Makefile
30 6 Gérald Schwartzmann
 - debian/
31 6 Gérald Schwartzmann
 - dicos/
32 6 Gérald Schwartzmann
 - mysql/
33 6 Gérald Schwartzmann
 - patch/
34 6 Gérald Schwartzmann
 - sso/
35 6 Gérald Schwartzmann
 - source_de_votre_appli_num_de_version/
36 6 Gérald Schwartzmann
 - tmpls/
37 6 Gérald Schwartzmann
 - etc/
38 6 Gérald Schwartzmann
39 14 Gérald Schwartzmann
Exemple : http://dev-eole.ac-dijon.fr/projects/dokuwiki/repository
40 6 Gérald Schwartzmann
41 7 Gérald Schwartzmann
h2. Les fichiers templates
42 8 Gérald Schwartzmann
43 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.
44 6 Gérald Schwartzmann
45 6 Gérald Schwartzmann
Exemple du fichier config.php qui est présent dans une bonne partie des applications :
46 6 Gérald Schwartzmann
47 6 Gérald Schwartzmann
taskfreak_config.php
48 6 Gérald Schwartzmann
49 7 Gérald Schwartzmann
h2. Dico
50 8 Gérald Schwartzmann
51 7 Gérald Schwartzmann
h3. Nommage
52 8 Gérald Schwartzmann
53 6 Gérald Schwartzmann
Les applications du socle
54 6 Gérald Schwartzmann
<pre>5x_nom_de_l_application.xml</pre>
55 6 Gérald Schwartzmann
Les applications supplémentaires au socle
56 6 Gérald Schwartzmann
<pre>6x_nom_de_l_application.xml</pre>
57 6 Gérald Schwartzmann
x étant supérieur à 0
58 6 Gérald Schwartzmann
59 7 Gérald Schwartzmann
h3. construction du fichier
60 8 Gérald Schwartzmann
61 15 Gérald Schwartzmann
{{include(ModeleFixme)}}
62 6 Gérald Schwartzmann
63 7 Gérald Schwartzmann
h2. Paquetage
64 8 Gérald Schwartzmann
65 6 Gérald Schwartzmann
eole-nom_de_l_application
66 6 Gérald Schwartzmann
67 7 Gérald Schwartzmann
h2. Apache
68 1 Gérald Schwartzmann
69 15 Gérald Schwartzmann
h3. nommage du fichier de conf dans sites-enabled
70 15 Gérald Schwartzmann
71 6 Gérald Schwartzmann
Un fichier de conf apache par application :
72 1 Gérald Schwartzmann
<pre>apache-nom_de_l_application.conf</pre>
73 15 Gérald Schwartzmann
74 15 Gérald Schwartzmann
h3. contenu du fichier de conf dans sites-enabled
75 15 Gérald Schwartzmann
76 16 Gérald Schwartzmann
Si un projet ne contient pas de .htaccess il faut ajouter la directive *AllowOverride None*.
77 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.
78 16 Gérald Schwartzmann
79 16 Gérald Schwartzmann
Exemple
80 16 Gérald Schwartzmann
81 16 Gérald Schwartzmann
<pre>
82 16 Gérald Schwartzmann
# Envole Infos
83 16 Gérald Schwartzmann
# Equipe EOLE
84 16 Gérald Schwartzmann
Alias /envole-infos /var/www/html/envole-infos
85 16 Gérald Schwartzmann
<Directory "/var/www/html/envole-infos">
86 16 Gérald Schwartzmann
        *AllowOverride None*
87 16 Gérald Schwartzmann
        AddDefaultCharset UTF-8
88 16 Gérald Schwartzmann
        DirectoryIndex index.php
89 16 Gérald Schwartzmann
        Order Allow,Deny
90 16 Gérald Schwartzmann
        Allow from All
91 16 Gérald Schwartzmann
        <IfModule mod_expires.c>
92 16 Gérald Schwartzmann
                ExpiresActive On
93 16 Gérald Schwartzmann
                ExpiresByType text/html "access plus 1 day"
94 16 Gérald Schwartzmann
                ExpiresByType text/xml "access plus 1 day"
95 16 Gérald Schwartzmann
                ExpiresByType image/gif "access plus 1 week"
96 16 Gérald Schwartzmann
                ExpiresByType image/jpg "access plus 1 week"
97 16 Gérald Schwartzmann
                ExpiresByType image/png "access plus 1 week"
98 16 Gérald Schwartzmann
                ExpiresByType video/quicktime "access plus 1 month"
99 16 Gérald Schwartzmann
                ExpiresByType audio/mpeg "access plus 1 month"
100 16 Gérald Schwartzmann
                ExpiresByType application/pdf "access plus 1 month"
101 16 Gérald Schwartzmann
                ExpiresByType application/ps "access plus 1 month"
102 16 Gérald Schwartzmann
                ExpiresByType text/css "access plus 1 day"
103 16 Gérald Schwartzmann
                ExpiresByType application/x-shockwave-flash "access plus 1 day"
104 16 Gérald Schwartzmann
                ExpiresByType text/js "access plus 1 week"
105 16 Gérald Schwartzmann
                ExpiresByType text/javascript "access plus 1 week"
106 16 Gérald Schwartzmann
                ExpiresByType application/x-javascript "access plus 1 week"
107 16 Gérald Schwartzmann
                ExpiresByType image/x-icon "access plus 1 day"
108 16 Gérald Schwartzmann
        </IfModule>
109 16 Gérald Schwartzmann
</Directory>
110 16 Gérald Schwartzmann
</pre>
111 15 Gérald Schwartzmann
112 15 Gérald Schwartzmann
h3. les droits dans /var/www/html/
113 6 Gérald Schwartzmann
114 6 Gérald Schwartzmann
Les droits de /var/www/html/votre_appli<br />
115 6 Gérald Schwartzmann
<pre>chmod -R 755       /var/www/html/moodle
116 6 Gérald Schwartzmann
chown -R root:     /var/www/html/moodle</pre>
117 6 Gérald Schwartzmann
118 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 />
119 6 Gérald Schwartzmann
<pre>chown -R www-data:     /var/www/html/moodledata</pre>
120 6 Gérald Schwartzmann
121 7 Gérald Schwartzmann
h2. Base de données
122 8 Gérald Schwartzmann
123 6 Gérald Schwartzmann
<pre>scribe-nom_de_l_application.sql</pre>
124 6 Gérald Schwartzmann
125 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 />
126 6 Gérald Schwartzmann
L'un avec la partie à templétiser et l'autre avec le reste.<br />
127 6 Gérald Schwartzmann
Cette découpe fait gagner un temps considérable lors du reconfigure.<br />
128 6 Gérald Schwartzmann
129 7 Gérald Schwartzmann
h2. {{include(ModeleFixme)}}
130 6 Gérald Schwartzmann
131 6 Gérald Schwartzmann
Où stocker les données des applications d'Envole ?<br />
132 6 Gérald Schwartzmann
exemple Moodle<br />
133 6 Gérald Schwartzmann
les données sont pour le moment stockées dans /var/www/<br />
134 6 Gérald Schwartzmann
serait-ce mieux dans /home/<br />
135 6 Gérald Schwartzmann
sauvegarde de Bacule ?