Une histoire de compilation

La problématique du jour : Comment proposer une 3eme version de PHP sur le cluster mutualisé sans avoir de migration, sans obliger nos clients à modifier le moindre fichier.

C’est sur ce problème que nous avons planché toute l’après midi. Ce ne fut pas une mince affaire. Dans un premier temps nous nous sommes penché sur FastCGI. Après l’installations de Fastcgi et de plusieurs versions de php, nous avons rencontré le soucis que tous les fichiers htaccess de nos clients possédant une ligne « php_value » provoquent des erreurs 501. Impossible donc d’utiliser cette solution à grande échelle.

Nous avons donc cherché plus en détail et sommes tombés sur de nombreuses « solutions ». Mais toujours, cela demandait une adaptation de la part de nos clients.

Finalement, en discutant entre nous, nous en sommes venu à la conclusion que la seule technique « propre » était de réussir à charger plusieurs versions de PHP en CLI et non en CGI. Le problème est que PHP ne peut pas charger une version de PHP 5.3 et une version de PHP 5.4 en CLI car les deux modules de apache ont le même nom.
Comment faire ?

Changeons le nom du module de PHP ! En effet, PHP est distribué en Open Source il est donc possible de télécharger les sources et de modifier le code source pour l’adapter à nos besoins. Nous avons donc planché sur le développement de module apache pour mieux comprendre le fonctionnement du module PHP et nous avons trouvé, après un certains temps de recherche, comment modifier le nom du module PHP. Nous ne parlons pas ici du nom du fichier, mais bien le nom de la structure même de PHP.

Nous avons donc modifié le code source de PHP 5.4 pour que le module porte le nom de « php54_module » et non plus « php5_module ». Après 15 minutes de compilation de nos sources de PHP modifiées  => « Build Complete ».  C’est une réussite !

Après quelques tests de validations, nous confirmons cette méthode ! Nous allons donc prochainement pouvoir vous proposer plusieurs versions de PHP sur nos hébergements mutualisés ! PHP 5.4.8 sera donc disponible pour tous nos utilisateurs.

Une réflexion au sujet de « Une histoire de compilation »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *