mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-22 16:33:48 +01:00
273 lines
13 KiB
Text
273 lines
13 KiB
Text
|
|
/========================\
|
|
| INSTALLATION |
|
|
\========================/
|
|
|
|
|
|
1. Pré-requis
|
|
=============
|
|
|
|
* Le service Apache HTTP avec le module mod_rewrite d'activé. Les règles de réécriture d'URL sont définies
|
|
dans le fichier .htaccess fourni avec l'application et il est donc nécessaire d'autoriser une telle configuration
|
|
à ce niveau via la directive AllowOverride devant inclure à minima FileInfo.
|
|
* L'utisateur exécutant le serveur web doit avoir les droits d'écriture sur le dossier 'tmp'. En cas d'installation
|
|
à partir du paquet Debian, ce dossier est remplacé par un lien symbolique vers le dossier /var/cache/ldapsaisie/.
|
|
* PHP 5.6 (ou supérieur) avec magic_quotes_gpc et register_globals à off.L'outil CLI de PHP est par ailleurs
|
|
nécessaire pour l'utilisation des outils CLI fournis avec l'application (fourni par le paquet php-cli dans Debian).
|
|
* Le support LDAP dans PHP (paquet php-ldap dans Debian)
|
|
* Le support mhash dans PHP (paquet php5-mhash dans Debian Lenny, intégré à php-common dans les versions supérieurs)
|
|
* Le support json dans PHP (pear install pecl/json sur RedHat, intégré au paquet php5-common précédement)
|
|
* Net_LDAP2 (paquet php-net-ldap2 dans Debian ou pear install net_ldap2)
|
|
* Le support mbstring dans PHP (paquet php-mbstring depuis Debian Stretch, intégré au paquet php-common dans Debian)
|
|
* Smarty (paquet smarty3 dans Debian)
|
|
* La librairie File_CSV_DataSource (paquet php-file-csv-datasource dans Debian)
|
|
* La librairie Console_Table (nécessaire pour le fonctionnement de l'outil CLI, paquet php-console-table dans Debian)
|
|
* Les librairies Mail et Mail_Mime (nécessaire pour l'envoi de courriels, paquets php-mail et php-mail-mime dans Debian)
|
|
* La librairie Net_FTP (nécessaire pour le fonctionnement du LSaddon FTP, paquet php-console-table dans Debian)
|
|
* La librairie PhpSecLib (nécessaire pour le fonctionnement du LSaddon SSH, paquet php-console-table dans Debian)
|
|
|
|
#################
|
|
# Avertissement #
|
|
#################
|
|
#
|
|
# 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.
|
|
#
|
|
|
|
|
|
2. Téléchargement
|
|
=================
|
|
|
|
2.1. A partir du paquet Debian
|
|
------------------------------
|
|
|
|
L'installation à partir du paquet Debian peut être réalisée soit en téléchargeant manuellement le paquet, soit en
|
|
déclarant le dépôt APT suivant dans votre fichier /etc/apt/sources.list :
|
|
|
|
deb http://ldapsaisie.org/debian stable main
|
|
|
|
|
|
Il ne vous restera ensuite plus qu'a installer le paquet ldapsaisie avec la commande suivante :
|
|
|
|
apt-get install ldapsaisie
|
|
|
|
|
|
Le fichier /etc/ldapsaisie/apache.conf est un example de configuration du serveur web Apache. La configuration du
|
|
logiciel ce fera ensuite dans le dossier /etc/ldapsaisie/local/.
|
|
|
|
2.2. A partir de Git
|
|
--------------------
|
|
|
|
Le dépôt Git peut être récupéré anonymement en utilisant la commande suivante :
|
|
|
|
git clone https://gitlab.easter-eggs.com/ee/ldapsaisie.git
|
|
|
|
|
|
La racine web de l'application se trouvera alors dans le dossier /ldapsaisie/src/public_html/.
|
|
|
|
2.3. A partir des snapshot
|
|
--------------------------
|
|
|
|
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.org/download/ldapsaisie-snapshoot.tar.gz
|
|
|
|
3. Arborescence du projet
|
|
=========================
|
|
|
|
Racine
|
|
|
|
doc/
|
|
Les fichiers sources de la documentation (docbook).
|
|
lsexample/
|
|
Les fichiers relatifs à l'annuaire d'exemple.
|
|
src/
|
|
|
|
Les sources de l'application.
|
|
|
|
public_html/
|
|
La racine web de l'application : celle-ci ne contient que les fichiers .htaccess et index.php qui configure et déclenche la réécriture d'URL.
|
|
conf/
|
|
|
|
Contient les fichiers de configuration.
|
|
|
|
LSobjects/
|
|
Configuration des LSobjects.
|
|
LSaddons/
|
|
Configuration des LSaddons.
|
|
LSauth/
|
|
Configuration des LSauthMethod.
|
|
|
|
includes/
|
|
|
|
Contient les fichiers des ressources.
|
|
|
|
addons/
|
|
Les addons au projet.
|
|
class/
|
|
Les fichiers de définition des classes PHP.
|
|
js/
|
|
Les fichiers Javascript.
|
|
libs/
|
|
Les librairies utilisées.
|
|
|
|
lang/
|
|
Les fichiers d'internationalisation.
|
|
templates/
|
|
Les fichiers template de l'interface. Il y a un sous-dossier par template.
|
|
css/
|
|
Les fichiers css de l'interface. Il y a un sous-dossier par template CSS.
|
|
images/
|
|
Les images de l'interface. Il y a un sous-dossier par template d'image.
|
|
local/
|
|
Les fichiers personnalisés de l'installation.
|
|
tmp/
|
|
Les fichiers temporaires (y compris le cache des templates).
|
|
|
|
|
|
4. Tutoriel d'installation
|
|
==========================
|
|
|
|
Cette section décrit les différentes étapes de l'installation de LdapSaisie. Deux méthodes d'installation sont présentées
|
|
ici, l'une à partir des sources du projet et l'autre à partir du paquet Debian.
|
|
|
|
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). 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.
|
|
|
|
1. La première étape consiste à installer le locigiel en tant que tel. Pour cela, référez vous au chapitre
|
|
Téléchargement.
|
|
|
|
En cas d'installation à à partir du paquet Debian, la configuration du logiciel se fera dans le dossier
|
|
/etc/ldapsaisie/local/. Les fichiers placés dans ce dossier prévaleront toujours aux fichiers fournis par le paquet
|
|
Debian, vous permettant facilement de modifier un composant existant ou dans écrire de nouveaux. Ainsi, pour modifier
|
|
un fichier CSS par exemple, il vous suffira de le placer dans le dossier /etc/ldapsaisie/local/css/.
|
|
|
|
Pour une installation à partir du code source, il vous faut cloner le dépôt Git du projet dans le dossier
|
|
/var/www/ldapsaisie. 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 :
|
|
|
|
git clone https://gitlab.easter-eggs.com/ee/ldapsaisie.git /var/www/ldapsaisie
|
|
|
|
|
|
########
|
|
# Note #
|
|
########
|
|
#
|
|
# Pour que cette commande se déroule correctement, vous devez avoir accès au port TCP 443 du serveur
|
|
# gitlab.easter-eggs.com. En cas de problème vérifiez votre parefeu.
|
|
#
|
|
|
|
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 section concernée. Nous allons nous
|
|
instérésser plus particulièrement :
|
|
|
|
* 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 ;
|
|
* au dossier config.local dans lequel seront stockés vos fichiers et vos adaptations de l'application ;
|
|
* au dossier src/public_html qui correspond à la futur racine du site web de l'application.
|
|
|
|
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 :
|
|
|
|
LOCAL_FILES
|
|
|
|
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 :
|
|
|
|
public_html/conf/config.inc.php
|
|
public_html/lang/fr_FR.UTF8/lang.php
|
|
|
|
LOG_FILE
|
|
Nom du fichier de log des mises à jour.
|
|
THEME
|
|
Le nom du theme à installer (facultatif et non traité dans ce tutoriel).
|
|
BUILD_DOC
|
|
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.
|
|
|
|
########
|
|
# Note #
|
|
########
|
|
#
|
|
# * 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.
|
|
#
|
|
# * 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.
|
|
#
|
|
|
|
2. La deuxième étape concerne la configuration globale de l'application : Cette partie est principalement contenue dans
|
|
le fichier conf/config.inc.php (ou /etc/ldapsaisie/local/conf/config.inc.php en cas d'installation à partir du paquet
|
|
Debian). 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]
|
|
|
|
########
|
|
# Note #
|
|
########
|
|
#
|
|
# Notez qu'il est possible de passer l'application en mode debug ce qui peut être utile par la suite.
|
|
#
|
|
|
|
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.
|
|
|
|
a. Création du fichier de classe :
|
|
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 :
|
|
|
|
class.LSobjects.[nom du type d'LSobject].php
|
|
|
|
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.
|
|
|
|
b. Configurer vos LSobject :
|
|
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]
|
|
|
|
c. Configurer si nécessaire les relations entre les objets appelés LSrelations :
|
|
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]
|
|
|
|
#############
|
|
# Important #
|
|
#############
|
|
#
|
|
# 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 :
|
|
#
|
|
# src/conf/LSobjects/config.LSobjects.LSexample.php
|
|
# src/includes/class/class.LSobjects.LSexample.php
|
|
#
|
|
|
|
########
|
|
# Note #
|
|
########
|
|
#
|
|
# Vous pouvez également personnaliser l'interface : Il est possible de personnaliser à votre goût l'interface en
|
|
# écrivant votre template ou en modifiant simplement
|
|
# les fichiers CSS. Une partie de cette documentation concernera bientôt cette problématique. Patience...
|
|
#
|
|
|
|
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.ldapsaisie.org>.
|
|
|
|
Liens
|
|
=====
|
|
1. Documentation du projet : http://ldapsaisie.org/doc
|