Add documentation
[ldapsaisie.git] / public_html / INSTALL
1
2   /========================\
3   |      INSTALLATION      |
4   \========================/
5
6
7 1. Pré-requis
8 =============
9
10  * PHP 5 avec magic_quotes_gpc et register_globals à off
11  * Le support LDAP dans PHP (paquet php5-ldap dans Debian)
12  * Le support mhash dans PHP (paquet php5-mhash dans Debian)
13  * Le support json dans PHP (pear install pecl/json sur RedHat, dans common sur Debian)
14  * Net_LDAP2 (pear install net_ldap2)
15  * Smarty (paquet smarty dans Debian)
16  * L'utisateur exécutant le serveur web doit avoir les droits d'écriture sur le dossier 'tmp'.
17    
18   #################
19   # Avertissement #
20   #################
21   #
22   # La librairie Net_LDAP2 oblige le fait que la racine DSE de l'annuaire soit lisible en anonyme sinon la connexion à l'annuaire échouera systématiquement.
23   #
24
25
26 2. Téléchargement
27 =================
28
29 Il n'existe pas encore de version stable publiée. Vous pouvez obtenir le code source soit en le rapatriant à partir du serveur Git, soit en téléchargeant le dernier snapshot nocturne de l'arbre Git.
30
31 2.1. A partir de Git
32 --------------------
33
34 Le dépôt Git peut être récupéré anonymement en utilisant la commande suivante :
35
36       git clone git://git.labs.libre-entreprise.org/ldapsaisie.git
37     
38 La racine web de l'application se trouvera alors dans le dossier /ldapsaisie/public_html/.
39
40 2.2. A partir des snapshot
41 --------------------------
42
43 Toutes les nuits, un snapshot de l'arbre Git est réalisé et est téléchargeable au format tar.gz à l'adresse suivante : http://ldapsaisie.easter-eggs.org/download/ldapsaisie-snapshoot.tar.gz
44
45 3. Arborescence du projet
46 =========================
47
48 Racine
49
50 doc/
51     Les fichiers sources de la documentation (docbook).
52 lsexample/
53     Les fichiers relatifs à l'annuaire d'exemple.
54 public_html/
55     Racine Web.
56
57     conf/
58
59         Contient les fichiers de configuration.
60
61         LSobjects/
62             Configuration des LSobjects.
63         LSaddons/
64             Configuration des LSaddons.
65         LSauth/
66             Configuration des LSauth.
67
68     includes/
69
70         Contient les fichiers des ressources.
71
72         addons/
73             Les addons au projet.
74         class/
75             Les fichiers de définition des classes PHP.
76         js/
77             Les fichiers Javascript.
78         libs/
79             Les librairies utilisées.
80
81     lang/
82
83         Les fichiers d'internationalisation.
84
85     templates/
86
87         Les fichiers template de l'interface. Il y a un sous-dossier par template.
88
89     css/
90
91         Les fichiers css de l'interface. Il y a un sous-dossier par template CSS.
92
93     images/
94
95         Les images de l'interface. Il y a un sous-dossier par template d'image.
96
97     tmp/
98
99         Les fichiers temporaires (y compris le cache des templates).
100
101
102 4. Tutoriel d'installation
103 ==========================
104
105 Cette section décrit les différentes étapes de l'installation de LdapSaisie. Aucune version d'LdapSaisie n'étant pour le moment sortie, cette méthode d'installation se base sur la récupération des sources directement dans le repos Git du projet. Des scripts ont été développés pour faciliter ces opérations de mises à jours tout en permettant une grande souplesse de confirguration et de personnalisation de l'application.
106
107 Dans ce tutoriel, nous partirons du principe que vous avez pleinement la main sur votre serveur (installation de nouveau paquet et configuration de votre serveur web) et que l'installation se fera dans le dossier /var/www/ldapsaisie. Nous partons également du principe que votre annuaire LDAP est déjà en place. Nous utiliserons pour cette exemple de mise ne oeuvre l'annuaire correspondant au schéma et à la configuration présente dans les sources du projet dans le dossier lsexample.
108
109  1. La première étape consiste à faire un clonage du repos Git. Pour cela il vous faut avoir installés les outils de Git contenu, dans Debian, dans le paquet git-core. Le dépôt Git doit ensuite être récupéré anonymement en utilisant la commande suivante :
110
111     git clone git://git.labs.libre-entreprise.org/ldapsaisie.git
112   
113   ########
114   # Note #
115   ########
116   #
117   # Pour que cette commande se déroule correctement, vous devez avoir accès au port TCP 9418 du serveur git.labs.libre-entreprise.org. En cas de problème vérifiez votre firewalling.
118   #
119
120 La suite des opérations se déroulera donc maintenant dans le dossier /var/www/ldapsaisie. Pour avoir plus de détails sur les élements qu'on retrouve dans ce dossier, vous pouvez consulter la documentation du projet. [1]. Nous allons nous instérésser plus particulièrement :
121
122  * au script upgradeFromGit.sh permettant la mise à jour de votre repos tout en concervant les adaptations que nous ferons pour l'usage d'LdapSaisie adapté à notre annuaire ;
123  * au dossier config.local dans lequel seront stockés vos fichiers et vos adaptations de l'application ;
124  * au dossier public_html qui correspond à la futur racine du site web de l'application.
125
126 Le principe de l'adaptation est ici de mettre vos fichiers personnalisés dans le dossier config.local, de les déclarer dans votre fichier config.local/local.sh contenant la liste des fichiers devant être installés. Le fichier local.sh est la source de configuration du script upgradeFromGit.sh. Il faut donc dans un premier temps créer votre fichier local.sh en copiant le fichier d'example local.sh.example. Ce fichier est un script bash déclarant les variables de configurations suivantes :
127
128 LOCAL_FILES
129   La liste des chemins des fichiers à installer dans l'arboressence du site. Cette élément doivent être séparés par des espaces ou des retour à la liste. Exemple :
130
131     public_html/conf/config.inc.php
132     public_html/lang/fr_FR.UTF8/lang.php
133
134 LOG_FILE
135   Nom du fichier de log des mises à jour.
136
137 THEME
138   Le nom du theme à installer (facultatif et non traité dans ce tutoriel).
139
140 BUILD_DOC
141   Variable booléene définissant si la documentation doit être compiler en utilisant le script buildDocExports.sh. Ceci ne sera pas expliqué dans ce tutoriel et nous partirons donc du principe que cette variable est à 0.
142
143   ########
144   # Note #
145   ########
146   #
147   #   * D'autres variables sont présentes dans ce fichier et concerne uniquement la compilation de la documentation. Elle peuvent être ignorée à partir du moment ou la variable BUILD_DOC vaut 0.
148   #
149   #   * Il est possible d'utiliser dans ce fichier de configuration la variable bash $ROOT_DIR correspondant au chemin du dossier d'installation, c'est à dire dans notre exemple /var/www/ldapsaisie.
150   #
151
152  2. La deuxième étape concerne la configuration globale de l'application : Cette partie est principalement contenue dans le fichier conf/config.inc.php. Il faut donc dans un premier temps copier ce fichier dans le dossier config.local et le déclarer dans la liste des fichiers à déployer lors des mises à jour (variable LOCAL_FILES dans le fichier local.sh). Il s'agit en particulier dans ce fichier de configurer la connexion à votre annuaire. Vous pouvez vous inspirer du fichier d'exemple fourni et pour plus de détails, consulter la documentation du projet. [1]
153
154   ########
155   # Note #
156   ########
157   #
158   # Notez qu'il est possible de passer l'application en mode debug ce qui peut être utile par la suite.
159   #
160
161  3. La troisième étape concerne la configuration des types de LSobjects : Chaque type d'objet manipulé par LdapSaisie doit correspondre avec un type de LSobject.
162
163     a. Création du fichier de classe :
164 Ce fichier contient la déclaration de la classe PHP correspondant au type de LSobject. Cette classe étend la classe LSldapObject qui contient pour ainsi dire toute les méthodes et proprités nécessaires pour les types de LSobject simples (sans LSrelation). Les fichiers des classes sont contenus dans le dossier /includes/class/ et portent les noms composés de la manière suivante :
165
166     class.LSobjects.[nom du type d'LSobject].php
167
168 Le plus simple pour cette étape est de copier un des fichiers d'exemple dans le dossier config.local et de l'adapter en changeant le nom du type d'objet dans l'ensemble du fichier. Pour cela, le fichier de classe du type LSpeople est le plus simple car il ne contient que le strict minimum. Pour un fichier de classe ayant des LSrelations à gérer, le fichier de classe LSgroup contient déjà les méthodes nécéssaires pour gérer ces cas.
169
170     b. Configurer vos LSobject :
171 Cette partie est certainement la plus longue et consiste à déclarer l'ensemble des informations relatives aux types des objets LDAP manipulés. Les fichiers d'exemples fournis vous seront alors d'une aide précieuse. basé vous sur l'un de pour créer le votre. Pour cela le fichier de configuration du type d'LSobjet LSpeople est le plus complet et est un bon point de départ. Pour plus de détails sur les élements de configuration de ce fichier, consulter la documentation du projet. [1]
172
173     c. Configurer si nécessaire les relations entre les objets appelés LSrelations :
174 Cette opération consiste dans un premier temps à écrire les méthodes PHP nécessaires pour gérer ces relations : pour cela regardez le fichier de classe du type LSgroup. Il faudra ensuite déclarer ces relations dans la configuration des types d'LSobjects : Pour plus de détails, consulter la documentation du projet. [1]
175
176   #############
177   # Important #
178   #############
179   #
180   # Pensez à déclarer les fichiers que vous venez de créer dans la variable LOCAL_FILES du fichier local.sh. Exemple pour le type d'LSobjet portant comme nom LSexample :
181   #
182   #     public_html/conf/LSobjects/config.LSobjects.LSexample.php
183   #     public_html/includes/class/class.LSobjects.LSexample.php
184   #
185
186   ########
187   # Note #
188   ########
189   #
190   # Vous pouvez également personnaliser l'interface : Il est possible de personnaliser à votre goût l'interface en écrivant votre template ou en modifiant simplement
191   # les fichiers CSS. Une partie de cette documentation concernera bientôt cette problématique. Patience...
192   #
193
194  4. La dernière étape à ce niveau consiste à lancer le script upgradeFromGit.sh pour qu'il installe les fichiers que vous venez de créer. Ce script est conçu pour dire tout ce qu'il fait donc en cas de problème vous devriez rapidement comprendre où cela coince. Dans tout les cas, n'hésitez pas à poser vos questions à la communauté sur la liste <ldapsaisie-users@lists.labs.libre-entreprise.org>.
195
196
197  5. Vous devriez dès à présent accèder à l'application via votre navigateur web à l'URL suivante :
198
199      http://[IP ou nom du serveur]/ldapsaisie/public_html
200
201
202
203
204 Liens
205 =====
206  1. Documentation du projet : http://ldapsaisie.easter-eggs.org/doc