Bonjour,
Voici une présentation du projet OpenWebArch porté par David Guillot qui travaille chez Alter Way. Je précise que c'est un projet personnel
Si le projet vous intéresse n'hésitez pas à contacter David !Objectifs:
- Monter une ou plusieurs stacks LAMP totalement personnalisées sur une machine
- Avoir une outil simple ET puissant pour les gérer
Champs d'application :
- Le poste de travail d'un développeur qui intervient sur plusieurs projets en parallèle
- Une plate-forme d'intégration continue (PIC) de sites et applications web
- Un hébergement web mutualisé
Problématiques :
- Avoir plusieurs versions de PHP sur la même machine, ce qui implique :
- Compiler chaque version de PHP en prenant en compte les spécificités de chacune
- Monter PHP sur le serveur web en FastCGI avec FPM, ce qui implique de gérer les pools FPM et le démarrage automatique des services au démarrage de la machine
- Ranger les fichiers (binaires, configuration, logs...), les reconnaître, inclure les binaires dans le path, choisir un binaire par défaut, etc.
- Installer PEAR, des extensions PECL, Xdebug, etc.
- Éventuellement, avoir plusieurs serveurs web (Apache, Nginx) si on a des besoins spécifiques (version requise différente de celle présente dans la distribution Linux, module requis spécifiquement pour un site et incompatible avec un autre, etc.), ce qui implique :
- Compiler chaque serveur web en prenant en compte les spécificités de chaque version
- Compiler FastCGI et le configurer pour gérer les pools de FPM à monter
- Gérer les hôtes virtuels et définir, pour chacun d'eux, quel pool FPM interprétera le PHP
- Gérer les modules et leurs dépendances
- Gérer le démarrage automatique des services au démarrage de la machine
- Gérer les conflits de ports, avec éventuellement un serveur servant de reverse-proxy devant les autres
- Éventuellement, gérer les outils qui gravitent autour d'une stack LAMP :
- phpMyAdmin : Pouvoir l'installer sans les paquets de la distribution Linux, pour ne pas avoir à installer toutes les dépendances dont on ne veut pas; Le configurer correctement (activer le concepteur, le répertoire de dépôt de scripts SQL, etc.);
L'outil proposé : OpenWebArch, est un assemblage de composants représentant les briques d'une stack LAMP :
Quelques caractéristiques :
- Licence GPLv3 (pas encore en place mais ça va venir)
- 100% Bash pour ne dépendre de rien
- Contient de quoi afficher des messages signalés OpenWebArch, de quoi gérer les erreurs proprement, etc.
- Contient une documentation de base pour la plupart des commandes. Il manque de la documentation sur les possibilités de surcharge des options de compilation et certaines commandes du plugin Apache
- Petit bonus rendant la chose facile à manipuler : l'auto-complétion Bash ! Les commandes étant assez longues, rien de tel que de la suggestion automatique pour savoir sur quel version de PHP on veut agir, et quelle est la commande à lancer !
- Le cœur, une usine à PHP :
- La démarche de compilation complète est fournie, pour qu'installer PHP se résume à une commande (cf. la doc !)
- Des options de compilations par défaut sont fournies, mais peuvent être surchargées pour chaque version
- Par défaut, PHP est compilé pour fonctionner avec FPM
- Par défaut, PHP est compilé sans aucune extension intégrée, mais avec un maximum d'extensions disponibles en fichiers externes
- Les extensions se gèrent ensuite par des commandes simples (liste, activer, désactiver, cf. la doc !)
- L'installation de Xdebug se fait en une commande (cf. la doc !)
- L'installation d'extensions PECL (comme APC) se fait en une commande si on a a déjà installé PEAR, également en une commande (cf. la doc !)
- Un plugin Apache :
- La démarche de compilation complète est fournie, pour qu'installer Apache se résume à une commande (cf. la doc !)
- Des options de compilations par défaut sont fournies, mais peuvent être surchargées pour chaque version
- Par défaut, Apache est compilé sans aucun module chargé, mais avec tous les modules possibles disponibles en DSO
- Les modules se gèrent ensuite par des commandes simples (liste, activer, désactiver), sur le même modèle que PHP (cf. la doc !)
- Par défaut, un hôte virtuel est créé (localhost)
- Les hôtes virtuels se gèrent ensuite par des commandes simples (liste, activer, désactiver), sur le même modèle que les modules (cf. la doc !)
- L'installation du module FastCGI se fait en une commande, et l'ajout de workers FPM également (manque de documentation sur cette partie)
- Un plugin phpMyAdmin
- La démarche d'installation et configuration complète est fournie, pour qu'installer un phpMyAdmin bien configuré se résume à une commande (cf. la doc !).
- Par défaut, un serveur géré est ajouté
- Il est possible d'en ajouter par une simple commande (cf. la doc !)
- L'avenir :
- Une gestion des erreurs plus systématique ?
- Une documentation plus rigoureuse ?
- Un plugin Nginx ?
- Un plugin MySQL ?