34 votes

PHP ne charge pas php_pgsql.dll sur Windows

PHP 5.2.8 refuse de charger php_pgsql.dll , avec l'erreur suivante:

Avertissement: démarrage PHP: impossible de charger la bibliothèque dynamique 'D: \ PHP \ ext \ php_pgsql.dll' - Le module spécifié est introuvable.

dans Inconnu sur la ligne 0

Le fichier .dll existe en PHP / ext /.

Est-ce que quelqu'un d'autre a déjà rencontré ce problème avec PHP sur Windows?

87voto

Mac Points 566

Découvrez l'info sur le PHP installation de PostgreSQL page: http://us.php.net/manual/en/pgsql.installation.php

Sur un serveur Windows, configuré avec Apache, en ajoutant la ligne suivante à httpd.conf pour charger libpq.dll vous pouvez économiser beaucoup de temps :

LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"

Notez que vous devrez modifier votre dossier en conséquence pour le chemin d'installation et la version de PostgreSQL que vous avez installés. Notez également que le fait d'avoir Apache et PostgreSQL sur le même serveur pour les environnements de production n'est pas recommandé.

Ce fixe mon installation instantanément.

47voto

Cela m'est arrivé aussi avec PHP 5.4.1
La copie de la DLL incriminée partout n'a pas worket, et je n'ai pas de Postgres installé dans le serveur, mais également prévu d'utiliser PHP contre les différentes Postgres versions, donc la seule solution que j'ai trouvé qui a travaillé à la mise en httpd.conf une ligne comme ceci:

LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"

mais qui fait référence à la libpq.dll livré avec PHP, comme ceci:

LoadFile "C:/php/libpq.dll"

Après cela, il a bien fonctionné pour moi.

6voto

Marcovecchio Points 498

Pour ceux qui sont prêts à faire leur PHP installer seulement capable d'accéder à PostGres serveurs, sans installer PostGres, vous devez:

  • activer php_pgsql.dll (et php_pdo_pgsql.dll si vous utilisez PDO) extension en PHP.INI,
  • assurez-vous que libpq.dll, libiconv-2.dll et libintl-8.dll sont dans le chemin. Ce sont les php_pgsql.dll les dépendances.

Ces 3 Dll peuvent être trouvés dans la PostGres installer. Je viens de copier dans apache\bin, de cette façon, je garde tout autonome. Ce faisant, apache peut démarrer le moteur PHP tout simplement beau, avec PostGres soutien.

4voto

Milen A. Radev Points 20462

Le problème est avec les bibliothèques utilisées par php_pgsql.dll - comme libpq.dll le OpenSLL ceux-ci etc. Vous avez besoin de trouver (à partir de la zip de distribution de Postgres, à partir d'une installé psqlODBC pilote etc.) et les mettre dans un dossier qui est dans le CHEMIN. Comme pour la liste de toutes les Dll - l'utilisation de MS Dependency Walker (depends.exe).

Un autre élément important de bits Apache (si vous utilisez Apache qui est) a son propre ensemble de OpenSSL Dll. Remplacer ou tout simplement renommer ceux à ne pas en contradiction avec celles de la Postgres distribution.

4voto

Newcss Points 11

Vous devez copier libpq.dll de wamp \ bin \ php \ php5.3.5 vers wamp \ bin \ apache \ Apache2.2.17 \ bin. Redémarrez à nouveau le serveur Wamp. Nous en avons maintenant terminé avec la configuration php. Ensuite, nous allons installer phpPgAdmin et l'utiliser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X