| Version 2 (modified by anarcat, 7 years ago) (diff) |
|---|
Infrastructure logicielle d'AlternC
AlternC est essentiellement développé en PHP4 (70%), Shell-script (5%), Perl (5%) et il y a aussi beaucoup de travail de Configuration et Administration d'effectué (20%), cette dernière partie consiste notemment à la création des paquets debian d'AlternC, partie importante de part le choix de rendre AlternC facilement installable...
AlternC utilise une suite logicielle libre pour les services web utilisés (mail,web,ml...). Ces logiciels sont pilotés par un bureau virtuel, qui se doit d'être facilement adaptable aux besoins, sécurisé, et fiable. Pour cela, on utilise un développement en 4 couches :
- Couche Système d'exploitation (contient les fichiers de configuration, les paquets Debian des serveurs mysql, ldap, apache etc.). Par définition, on ne développera presque rien de cette couche, car elle repose essentiellement sur des paquets Debian standard, qui pourront donc profiter des mises-à-jour Debian de sécurité entre autres. Les seuls développements effectués sur cette couche concernent les fichiers de configuration de ces logiciels
- Couche Pilotage de l'OS. Cette couche consiste en un certain nombre de programmes écrits en C ou en shell-script situés dans /usr/lib/alternc, pour lesquels php ne suffit pas car il ne dispose pas de droits suffisants. Il s'agit par exemple du pilotage des listes de diffusion, de la création de dossiers ayant des droits particuliers (mail, web etc.) de la gestion des quotas système etc. Ces programmes en C sont éventuellement suid root. les paramètres de php interdisent aux utilisateurs le lancement de ces programmes, seul le bureau virtuel le peut.
- Couche Classes PHP. Cette couche regroupe les modules de pilotage des services fournis, sous forme de classes php. Les fichiers, situés dans /var/alternc/bureau/class sont nommés m_"nom de la classe".php et sont inclus par le fichier config.php. Chaque classe s'occupe d'un service particulier en entier, et fait appel, si besoin, aux programmes en C de pilotage de l'OS et à d'autres classes. Voir la documentation sur les modules et [Classes PHP] de la documentation.
- Couche présentation en HTML/PHP. Cette couche contient plein de fichiers en HTML avec le minimum possible de php. elle doit pouvoir être modifiée facilement pour coller au fonctionnement de chaque hébergeur, ainsi qu'à la charte graphique de celui-ci.
http://www.alternc.org/doc/files/couches.jpg
On utilise aussi un système d'internationalisation nommé GETTEXT, qui stocke les phrases en langues originale + traduction dans un seul fichier .po. Ce fichier est compilé en fichier .mo grâce au package Gettext (apt-get install gettext) et la commande : msgfmt alternc.po -o alternc.mo
Chaque module d'AlternC fournit un fichier .po par langue, permettant ainsi d'intégrer facilement de nouveaux modules. Ces fichiers .po sont rassemblées en un seul fichier "alternc" par langue, qui est ensuite compilé en un ".mo". Ainsi, un seul fichier .mo est ouvert par apache par langue, et cela simplifie grandement l'utilisation du système de langue dans les sources php d'AlternC.
