Magazine High tech

Postgresql, php et Wamp

Publié le 01 juin 2009 par Dominikg

Cela faisait longtemps que je n'avais pas lutté contre la magie, mais je vais me rattraper aujourd'hui.

Posons le décor. On souhaite utiliser Postgresql comme moteur de base de données pour le développement d'une application Web. Le développement est réalisé sur une machine sous Windows, sur laquelle on a déployé Wamp pour effectuer les tests.

Et les ennuis commencent, car malgré tous les efforts de mise en œuvre, on obtient systématiquement le message : « PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.2.9-1/ext/php_pgsql.dll' - Le module spécifié est introuvable. ».

On s'arrache les cheveux, on vérifie tous les fichiers de configuration, on vérifie qu'on modifie bien les fichiers de configurations employés (c'est une erreur courante de modifier un fichier de configuration exemple plutôt que le fichier de configuration réellement employé) : rien n'y fait.

Hum … que nous dit la documentation ? A priori rien chez Postgresql, rien chez PHP, rien chez Wamp.

Hum, hum … que nous dit Google ? Après avoir filtré tous les messages antiques et les messages de malheureux perdus dans la configuration, on finit par trouver des éléments du genre « php_pgsql.dll ne marche pas dans les versions récentes de php » ou « il faut utiliser la dll de la version 5.2.4 pour que cela fonctionne ».

Vérifions … Effectivement, cela fonctionne avec une version antédiluvienne.

Hum, hum, hum … Mon détecteur de magie hurle à mort. Comment diable se fait il qu'un bug de ce genre existe depuis plusieurs versions de php, sans avoir été signalé ni corrigé ? Examinons ces deux dll.

Tiens, la version la plus récente fait référence à une dll supplémentaire, libpq.dll.

Tiens, tiens, cette dll est présente dans le répertoire des binaires de php, mais ce répertoire n'est pas indiqué dans la variable d'environnement PATH...

Essayons en configurant correctement la variable PATH pour qu'elle contienne le répertoire des binaires de php (par exemple : c:\wamp\bin\php\/php5.2.9-1) et en plaçant la version à jour de php_pgsql.dll dans le répertoire ext. Ça marche !

Conclusion : ne faisons pas de la magie, en utilisant une version antique. Il suffit de définir correctement le chemin de recherche des applications pour utiliser la version actuelle !


Retour à La Une de Logo Paperblog

A propos de l’auteur


Dominikg 19 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossiers Paperblog