PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 21/06/2010 10:21:40

chris0938
Membre

configuration php.ini pour postgres

Bonjour,

Nous venons d'installer postgresql sur nos serveurs Redhat. lorsque je fais une page php pour tester la connexion j'ai ce message d'erreur:
"Fatal error: Call to undefined function: pg_connect() in /web/christel/testconnexionpostgres.php  on line 37".

Apparemment cela serait du au fait que php.ini est pas configuré correctement pour postgres. Serait il possible de savoir ce qu'il faut modifier dans le php.ini pour que cela fonctionne.
merci d'avance.

Hors ligne

#2 21/06/2010 10:30:38

Marc Cousin
Membre

Re : configuration php.ini pour postgres

Il faut une ligne de déclaration comme celle ci :
extension=php_pgsql.dll


Marc.

Hors ligne

#3 21/06/2010 10:35:44

chris0938
Membre

Re : configuration php.ini pour postgres

j'ai bien cette ligne dans php.ini
;extension=php_pgsql.dll.

et voila ce que j'ai dans la partie postgreSQL de php.ini

[PostgresSQL]
; Allow or prevent persistent links.
pgsql.allow_persistent = On

; Detect broken persistent links always with pg_pconnect(). Need a little overhead.
pgsql.auto_reset_persistent = Off

; Maximum number of persistent links.  -1 means no limit.
pgsql.max_persistent = -1

; Maximum number of links (persistent+non persistent).  -1 means no limit.
pgsql.max_links = -1

; Ignore PostgreSQL backends Notice message or not.
pgsql.ignore_notice = 0

; Log PostgreSQL backends Noitce message or not.
; Unless pgsql.ignore_notice=0, module cannot log notice message.
pgsql.log_notice = 0

Hors ligne

#4 21/06/2010 10:47:31

Marc Cousin
Membre

Re : configuration php.ini pour postgres

Le ; est un caractère de commentaire. Il signifie que tout ce qui est derrière ne doit pas être lu.


Marc.

Hors ligne

#5 21/06/2010 10:51:35

chris0938
Membre

Re : configuration php.ini pour postgres

toutes les extensions de mon php.ini sont affichées comme cela. et oracle et mysql fonctionnent.
c'est pour cela que j'ai du mal a comprendre pourquoi postgres ne fonctionne pas

Dernière modification par chris0938 (21/06/2010 10:54:27)

Hors ligne

#6 21/06/2010 11:03:25

Marc Cousin
Membre

Re : configuration php.ini pour postgres

Décommentez le. Je ne sais pas pourquoi mysql et oracle fonctionnent. Peut être par l'inclusion d'autres fichiers.


Marc.

Hors ligne

#7 21/06/2010 11:18:40

chris0938
Membre

Re : configuration php.ini pour postgres

merci pour vos réponses , je vais changer cela.
et est ce que le problème viendrait de la où il peut avoir d'autre chose a modifier?

Hors ligne

#8 21/06/2010 11:35:53

chris0938
Membre

Re : configuration php.ini pour postgres

cela ne fonctionne toujours pas. j'ai fais une recherche de l'extension "llocate php_pgsql.dll" mais il ne le trouve pas alors que quand je fais "locate pgsql.so" il me le trouve a différent endroit.
est ce qu'il faudrait que je change: extension=php_pgsql.dll. en -> extension=php_pgsql.so ?

Hors ligne

#9 21/06/2010 11:50:22

gleu
Administrateur

Re : configuration php.ini pour postgres

Avez-vous installé le pilote PostgreSQL pour PHP ? sur mon Ubuntu, il s'agit du paquet php5-pgsql. Il doit y avoir la même chose pour RedHat.


Guillaume.

Hors ligne

#10 21/06/2010 11:57:56

chris0938
Membre

Re : configuration php.ini pour postgres

pour l'installation de postgres nous avons lancé cela avec rpm donc logiquement tout a été installé.
j'ai trouve cela en faisant des recherche sur php_pgsql : php_pgsql.h

Hors ligne

#11 21/06/2010 12:08:10

chris0938
Membre

Re : configuration php.ini pour postgres

lorsque je fais print_r(get_loaded_extensions()); dans une page php cela m'affiche cela:


Array ( [0] => xml [1] => tokenizer [2] => standard [3] => session [4] => posix [5] => overload [6] => oci8 [7] => mysql [8] => mbstring [9] => gd [10] => ftp [11] => ctype [12] => calendar [13] => bz2 [14] => zlib [15] => pcre [16] => apache [17] => sqlite )

et donc je n'ai pas postgres!

Hors ligne

#12 21/06/2010 13:44:54

gleu
Administrateur

Re : configuration php.ini pour postgres

Il y a une différence entre l'installation du moteur PostgreSQL et des pilotes. Que vous donne un "rpm -qa | grep php" ? d'après ma VM CentOS, il faut que le paquet php-pgsql soit installé.


Guillaume.

Hors ligne

#13 21/06/2010 13:54:27

chris0938
Membre

Re : configuration php.ini pour postgres

rien ne s'affiche!! bizarre!?

Hors ligne

#14 21/06/2010 14:20:28

gleu
Administrateur

Re : configuration php.ini pour postgres

En effet, bizarre... vous devriez au moins avoir une ligne pour indiquer que php est installé.


Guillaume.

Hors ligne

#15 21/06/2010 14:37:03

chris0938
Membre

Re : configuration php.ini pour postgres

enfaite je viens de me renseigner et c'est normal que je vois même pas php car il a surement du être installé avec les sources sans passer par les rpm.

Hors ligne

#16 21/06/2010 14:50:57

chris0938
Membre

Re : configuration php.ini pour postgres

j'ai regardé dans le log d'apache est voila ce qui resort:

PHP Warning:  Unknown(): Unable to load dynamic library '/**/php449/lib/php/extensions/no-debug-non-zts-20020429/php_pgsql.dll' - /**/php449/lib/php/extensions/no-debug-non-zts-20020429/php_pgsql.dll: cannot open shared object file: No such file or directory in Unknown on line 0

la librairie php_pgsql.dll n'existe pas si j'ai bien compris!
comment y remédier?

Hors ligne

#17 21/06/2010 15:16:00

Marc Cousin
Membre

Re : configuration php.ini pour postgres

Ou du moins elle n'est pas dans le chemin par défaut. Demandez aux personnes l'ayant compilé où il se trouve.


Marc.

Hors ligne

#18 21/06/2010 15:42:40

chris0938
Membre

Re : configuration php.ini pour postgres

je vous prie de m'excuser je n'en ai pas parle mais je suis sur linux donc c'est avec les .so que je dois rajouter l'extension. j'ai fait un locate pgsql.so et il m'affiche ceux ci plpgsql.so est ce le bon?

Hors ligne

#19 21/06/2010 16:38:14

Marc Cousin
Membre

Re : configuration php.ini pour postgres

Proabalement. Essayez de mettre le chemin complet dans le fichier de configuration. Par contre dans ce cas quel rapport avec l'entrée en .dll, qui est effectivement une entrée windows ??


Marc.

Hors ligne

#20 21/06/2010 16:44:39

gleu
Administrateur

Re : configuration php.ini pour postgres

Oula, non, plpgsql.so est la bibliothèque pour le langage PL/pgsql. Rien à voir avec PHP.


Guillaume.

Hors ligne

#21 22/06/2010 09:04:49

chris0938
Membre

Re : configuration php.ini pour postgres

bonjour,
effectivement ce n'est pas le bon. j'avais effectué une recherche et c'est ce qui était dit sur le plsql.so.
j'ai récupéré une version de psql.so est ce que je peux l'installer sans risque? je ne voudrais pas faire de betisse

Hors ligne

#22 22/06/2010 09:23:28

Marc Cousin
Membre

Re : configuration php.ini pour postgres

Non, installez le package approprié à votre distribution linux. Par ailleurs votre fichier php.ini est très étrange pour un système linux, on dirait un php.ini d'une version windows. D'où vient il ?


Marc.

Hors ligne

#23 22/06/2010 09:33:32

chris0938
Membre

Re : configuration php.ini pour postgres

tout ce que je sais c'est que je l'ai pris sur le serveur.c'est tout ce que je pourrais dire sur sa provenance.
ce qui est écrit est peut être donné a titre d'exemple simplement.

le serveur est x86_34-redhat-linux3E.

Hors ligne

#24 22/06/2010 10:22:24

Marc Cousin
Membre

Re : configuration php.ini pour postgres

Je résume :
- Vous avez un problème de paramétrage PHP, avec un fichier de paramétrage PHP bizarre qui semble provenir d'une machine windows. À moins qu'il ne s'agisse que d'une ligne de commentaire, mais à ma connaissance, la seule en commentaire en 'dll' sous Linux est msql.dll
- Sur un serveur Linux, dont vous ne pouvez pas me dire ce que c'est

Je ne vois pas comment vous aider. Procurez vous des informations, adressez vous à un administrateur système.

Il vous faut :
- Le package approprié (celui de votre distribution linux). Il s'appellera probablement php_pgsql, php-pgsql, php-postgresql ou quelque chose de ce genre
- Une ligne "extension=pgsql.so" dans votre php.ini.

Le reste n'est plus tellement de notre ressort.

Dernière modification par Marc Cousin (22/06/2010 10:23:21)


Marc.

Hors ligne

#25 22/06/2010 10:34:26

chris0938
Membre

Re : configuration php.ini pour postgres

je vous remercie d'avoir essayer de m'aider.

une dernière question normalement le pgsql.so n'aurait il pas du s'installer quelque part en même temps que postgres?

Dernière modification par chris0938 (22/06/2010 10:36:08)

Hors ligne

Pied de page des forums