Topic: Compatibilité php-pgsql (PHP 7.1/CentOS 6) avec PostgreSQL 9.6

Bonjour,

Je viens d'installer PHP 7.1 sur mon serveur CentOS 6 avec l'extension php-pgsql, puis PostgreSQL 9.6. Tout semble fonctionner correctement, l'extension PDO_PGSQL figure bien dans la liste des extensions activées et le SGBDR est opérationnel.

Par contre, je me retrouve avec deux jeux de librairies PostgreSQL (libpq.so.5 entre autres), celui de PostgreSQL 9.6 et celui de PostgreSQL 8.4 qui est la version à partir de laquelle l'extension a été compilée. Je me pose deux questions :

1) Cela risque-t-il de poser un problème quand je tenterais d'utiliser PostgreSQL 9.6 à partir de mes applications PHP (incompatibilité binaire) ?
2) Dans ce cas, y-a-t'il une solution qui permette d'avoir une extension php-pgsql qui utilise les librairies de PostgreSQL 9.6 sans avoir à la recompiler ?

Au passage, merci pour le travail accompli sur les packages !

Re: Compatibilité php-pgsql (PHP 7.1/CentOS 6) avec PostgreSQL 9.6

> 1) Cela risque-t-il de poser un problème quand je tenterais d'utiliser PostgreSQL 9.6 à partir de mes applications PHP (incompatibilité binaire) ?

Pas à ma connaissance.

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

3 (edited by GrandFather 2017-05-16 07:20:42)

Re: Compatibilité php-pgsql (PHP 7.1/CentOS 6) avec PostgreSQL 9.6

Merci pour la réponse, ça me rassure un peu. Il y a tout de même sept ans qui séparent les deux versions, deux releases majeures en plus...

Mais le cas échéant, comment puis-je faire la mise à niveau de cette extension ?

Re: Compatibilité php-pgsql (PHP 7.1/CentOS 6) avec PostgreSQL 9.6

> Mais le cas échéant, comment puis-je faire la mise à niveau de cette extension ?

La seule solution est de reconstruire les RPM.

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

5 (edited by GrandFather 2017-05-16 08:34:40)

Re: Compatibilité php-pgsql (PHP 7.1/CentOS 6) avec PostgreSQL 9.6

Remi wrote:

La seule solution est de reconstruire les RPM.

C'est ce que je redoutais un peu.

Cela dit, après une recherche approfondie, c'est peut-être un problème sans vraiment en être un ; PDO dans sa déclinaison PostgreSQL fait un usage tellement limité et générique de libpq que la compatibilité est semble-t-il très bonne entre des versions assez anciennes de libpq (et donc des versions de pdo_pgsql compilées avec) et des versions modernes de PostgreSQL, à condition de ne pas essayer de tirer parti des features les plus récentes. C'est plus problématique pour l'extension « pgsql » de PHP, qui est un wrapper autour de libpq et donc plus sensible à ses changements d'API.

Mais j'ai un mal fou à trouver des infos précises et récentes à ce sujet, et sur les risques d'incompatibilité encourus.

Re: Compatibilité php-pgsql (PHP 7.1/CentOS 6) avec PostgreSQL 9.6

Après, vouloir utiliser les technos les plus récentes sur EL-6... comment dire...

Bref, passer sur CentOS 7 qui fournit par défaut PostgreSQL 9.2...

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Compatibilité php-pgsql (PHP 7.1/CentOS 6) avec PostgreSQL 9.6

Je suis d'accord mais en l'occurrence je n'ai pas vraiment le choix.

Re: Compatibilité php-pgsql (PHP 7.1/CentOS 6) avec PostgreSQL 9.6

Enfin sinon, je n'ai jamais eu de rapport de bug concernant l'extension pgsql.

De plus RH fournit officiellement php 5.6 et 7.0, utilisant aussi la bibliothèque libq par défaut, ainsi que postgresql 9.4 et 9.5.

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Compatibilité php-pgsql (PHP 7.1/CentOS 6) avec PostgreSQL 9.6

OK, donc a priori je me suis inquiété pour rien.

Merci pour les réponses !