Cette semaine, je vous propose une petite note d'un développeur amateur (moi), qui est souvent amené à réguler son environnement de développement, c'est-à-dire réinstaller son outil Amp (Apache/Mysql PHO PHP portable) sur mon poste de travail. Comme vous pouvez déjà le remarquer, je travaille avec un outil lui-même portable, le résultat d'une certaine période Covid durant laquelle nous télé-travaillons et durant laquelle je faisais régulièrement des allers-retours entre mes deux postes de travail, et je pense que le fait d'utiliser un outil wamp portable joue énormément dans la suite demain démonstration.
J'entends déjà d'ici vous remarques sur la vieille version de PHP utilisé, mais sur ce point-là, je ne suis pas le décideur.
Le besoin spécifique
Ma problématique à mettre en place et relativement simple. Lorsque je développe, je suis parfois amené à planter totalement tout mon environnement Joomla ( même moi, je ne suis pas parfait !) et me retrouve à devoir réinstaller un environnement complet (quand j'arrive à retélécharger une nouvelle version 3.9 de Joomla pas toujours acessible).
Vous me direz, ce n'est pas très grave, tout est portable il suffit de copier le système. Je suis entièrement d'accord, mais dans ce cas, nous avons une foule de fichiers à déplacer et c'est la copie de ces petite fichiers qui est très longue (Un gros et unique fichier irait + vite à taille égale).
L'idée première que j'ai eu, c'est de faire un fichier zip. Cela fonctionne, mais cela n'est pas très "propre" et surtout cette manière de faire ne me plaisait pas.
C'est la raison pour laquelle, je me suis penché sur une deuxième idée, créer un fichier image ISO de mon répertoire. Nous verrons ultérieurement, avoir une image ISO à la place d'un fichier compressé à énormément d'avantages.
Création de mon mon ISO
Comme je travaille sur l'environnement Windows, et que je sais que Windows 10 a de nouvelles fonctionnalités de chargement natif de fichier ISO (premier avantage), en recherchant un petit peu, j'ai trouvé qu'il existait des commandes en ligne de commande pour créer des fichiers ISO, le tout fourni par Microsoft.
Bien évidemment, je me suis rué sur la commande et j'ai vite compris que nous étions dans un environnement Microsoft, la commande a planté a plusieurs reprise, certainement à cau de taille d'allocation des clusters. C'est alors que je me suis rappelé que je travaillais sur Windows.... donc rien d'anormal puisque la table d'allocation de Windows a ses propres limites (attention, je dénigre pas, je suis juste objectif)
Deuxième phase, la recherche d'un outil de création d'images ISO
Dans ma requête google, j'ai pris soin de rajouter la ligne de commande
-Microsoft
afin de trouver des résultats d'outils fonctionnels. C'est alors que je suis tombé sur un outil de création d'image ISO, donc non au premier abord m'a fait fuir : WinCDEmu. En effet, je pensais que cet outil n'avait que pour rôle de charger une image ISO dans votre environnement Windows. Mais en revenant dessus et en lisant la doc, que nenni... (RTMF bon sang !)Une fois cet outil gratuit installé sur ma machine, en faisant un clic droit sur le répertoire global de mon serveur Web portable Apache, j'ai pu créer mon image par la commande du menu contextuel "
Build an image ISO
"Lorsque j'ai lancé cette commande, j'ai dû bien entendu attendre un peu, mon serveur web étant assez chargé. N'oublions pas que nous avons un Joomla 3 avec toute une panoplie de modules et de plugins que j'ai commencé à développer, le nombre de fichiers est donc conséquent. Et comme vous le savez, sur un ordinateur, ce sont les temps de chargement depuis un disque dur vers la mémoire qui est relativement long, bien que je sois avec un disque dur SSD.
Une fois la commande lancée, j'ai fait un gros travail d'attente de création de mon image. Je tiens à souligner toutefois, que j'ai eu une petite erreur non bloquante qui est arrivée. En effet, pour une raison que j'ignore, l'erreur affichée correspondait à un problème d'écriture. Cependant, l'image est fonctionnelle.
Chargement de mon image
Lorsque l'outil m'a spécifique son travail était fini, je me suis empressé de charger mon image. Pour ce faire, j'ai simplement effectué un clic droit sur le fichier ISO créer, et j'ai choisi la commande monter. Cette commande a pour uniquement de charger l'image et de rendre son contenu accessible. Vous devez bien entendu, une fois votre image montée, ne pas oublier de lancer votre serveur wamp.
Note
Lorsque j'ai effectué cette action, je me suis aussi posé la question de savoir si je pourrais avoir éventuellement deux serveurs wamp chargé, rien de test, l'autre de Développement.
Bien entendu cela est totalement possible, si vous n'oubliez pas au moment du chargement de 1 ou 2 autres, ou même en amont de création de vos imaginons, de bien spécifier un port différent à votre serveur web. Nous pourrions éventuellement avoir un serveur de travail sur le port 80, et un autre serveur de test sur le port 8000. Ainsi nous aurions en temps réel de serveurs fonctionnel pour deux environnements différents.
Et pour y avoir déjà fait, je vous conseille fortement d'avoir deux feuilles de style totalement différente afin de bien visualiser sur lequel vous êtes. Oui oui, j'ai déjà fait du dev en prod sans m'en rendre compte...