Après une période creuse, je me suis remis récemment au développement pour le compte du Site du Zéro. Si j'avais su ce que cette soirée allait me réserver j'aurai apporté une boite d'aspirine.

Git sous Windows : que du bonheur

Si vous ne le savez pas déjà, la gestion du développement ne se fait plus avec SVN mais avec Git, un autre gestionnaire de version mais cette fois ci décentralisé (en savoir plus). La bonne nouvelle c'est que ça va permettre à chaque développeur de travailler dans son coin sans gêner les autres, et avec 6 développeurs il était temps d'utiliser un système adapté : Git. Le hic (si y'avait pas de hic ce serait pas drôle), c'est que Git est très performant sous Linux, qu'il est conçu pour fonctionner sous Linux, etc. Le problème c'est que moi je travaille sous Windows. Et c'est là que les difficultés ont commencées. Il a tout d'abord fallu trouver un installateur de Git sous Windows.

  • Cygwin : premier installateur trouvé sur le site officiel : ce n'est en fait qu'un simple petit programme qui va alors télécharger les fichiers sur le net. je ne sais pas si ce jour là ma connexion était lente ou si l'installateur était en cause, mais télécharger plusieurs dizaines de Mo de fichiers à la vitesse de 30Ko/s (aux meilleurs moments), c'est lent, très lent. Après finalement une bonne demie-heure de passée, je peux enfin lacer le programme : la seule chose que la console a pu me répondre à chacune de mes commandes c'était un splendide : bash git : command not found. Après plusieurs minutes d'acharnement, de commandes diverses, rien ne marche à part les différents plantages de Git (pour un programme issu de Linux, on peut se demander d'où vient le problème). Rien n'y faisant je tente alors un autre programme.
  • msysGit : dès le début la confiance revient, ce n'est plus un installateur mais le programme complet, il se télécharge à une vitesse honnête (600Ko/s), tout se passe bien lors de l'installation. Je le lance alors, tape une commande, le programme s'exécute, que demander de plus. Après quelques minutes je comprends alors qu'avec Git, si on tape une commande ou un chemin pas correct, il va essayer de retrouver le chemin demandé, le bon point c'est que ça marche, le mauvais c'est que ça rame alors monstrueusement. Donc un cd C:/wamp sera alors redirigé vers le répertoire /c/wamp/ avec l'écriture propre à Linux (et 30s de moulinage).

Git étant maintenant lancé, le reste suit sans problème : rapatriement de tout le code source du SdZ (ça va en faire saliver quelques uns), puis tentative d'installation sur mon ordinateur afin d'avoir une version du SdZ fonctionnel. c'est le principe de Git : tout sur ma machine, je fais ce que je veux et quand c'est bon je balance tout sur le SdZ.

Apache, Skype et Wamp : bouchons en perspective

Étant sous Windows, je lance alors Wamp pour pouvoir faire fonctionner le SdZ en local. Déjà ça commence mal Apache (le serveur Web) ne veut pas démarrer. Après une rapide lecture des logs (vides puisqu'Apache ne se lance même pas), je découvre que c'est le logiciel de VOIP Skype qui le gêne, les deux utilisant le port 80. Ce problème étant réglé j'arrive enfin à lancer le SdZ en local, enfin j'essaye car c'est là que ça commence à devenir intéressant.

Exploration des versions de PHP

Le premier lancement me donne une série de messages d'erreur (200 lignes environ), cela est du au fait que le SdZ stocke des fichiers dans la mémoire pour aller plus vite, avec Windows on peut pas, c'est tout sur le disque. Ce réglage étant fait (2 fois car je suis pas capable d'écrire un chemin correctement), l'erreur qui va alors m'occuper jusque tard dans la nuit arrive : Fatal error: Call to undefined function: pg_connect(). Le problème c'est que les extensions sont bien installées, les fichiers de configuration bien configurés, mais rien n'y fait cette erreur persiste. S'il y a bien une chose que j'ai appris en développement, c'est que la réponse est souvent soit dan sla doc soit dans les logs. Et avec Google on trouve facilement la cause du problème. Après de longues recherches, je lis qu'il y a un bug avec les librairies de PHPpgSQL sous Windows pour les dernières versions de PHP. Des fois ça marche, des fois ça marche pas, les librairies doivent alors être remplacées par celle de la version 5.2.5 de PHP.

Petit jeu d'exploration du web

Vous êtes sous Windows, essayez de trouver sur le net un zip ou un .exe avec PHP 5.2.5. Vous allez alors comprendre ma douleur étant donné que ce type de données se fait rare (même sur le site officiel). Le salut viendra du site officiel de Wamp où est proposé différents addons pour Wamp, dont une série avec les vieilles versions de PHP. Un téléchargement et une extraction plus tard, suivis d'un copier/coller sauvage (il est 23h30 et je commence à fatiguer). Le SdZ s'affiche alors sous mes yeux (rouges et fatigués).

Je peux enfin développer pour le SdZ.