Při volání funkce pg_connect se vyskytla tato chyba:
Fatal error: Uncaught exception 'ErrorException' with message 'pg_connect(): Unable to connect to PostgreSQL server: SCRAM authentication requires libpq version 10 or above'
V tomto případě je ideální si sehnat novější(nebo i starší) knihovnu kompilovanou pro maximálně podobný OS, která umi scram-sha-256. O mě se jednalo o operační systém CentOS a stáhl jsme ji zde:
centos.pkgs.org/7/postgresql-12-x86_64/l...hel7.x86_64.rpm.html
Přejdu do adresáře:
lrwxrwxrwx. 1 root root 13 Jul 16 12:49 libpq.so.5 -> libpq.so.5.5
-rwxr-xr-x. 1 root root 193K Feb 4 17:34 libpq.so.5.5
Nakopíruji knihovnu (stáhnutou z balíku ve výše uvedeném odkaze), kterou jsem si uložil do /tmp:
List souboru (link, stará a nová knihovna):
lrwxrwxrwx. 1 root root 13 Jul 16 12:49 libpq.so.5 -> libpq.so.5.5
-rwxr-xr-x. 1 root root 1.3M Jul 16 12:48 libpq.so.5.12
-rwxr-xr-x. 1 root root 193K Feb 4 17:34 libpq.so.5.5
Zde vidím původní knihovnu libpq.so.5.5 a na ní vytvořený link libpq.so.5 -> libpq.so.5.5 a nově nahranou knihovnu libpq.so.5.12.
Smažu link na starou knihovnu 5.5:
Vytvořím link na novou knihovnu:
ln -s libpq.so.5.12 libpq.so.5
Nastavím práva pro knihovnu 5.12 (podle 5.5):
chmod o+x libpq.so.5.12
chmod g+x libpq.so.5.12
chmod u+x libpq.so.5.12
Vylistuji si výsledek:
lrwxrwxrwx. 1 root root 13 Jul 16 12:49 libpq.so.5 -> libpq.so.5.12
-rwxr-xr-x. 1 root root 1.3M Jul 16 12:48 libpq.so.5.12
-rwxr-xr-x. 1 root root 193K Feb 4 17:34 libpq.so.5.5
Mám vytvořený link z libpq.so.5 na novou knihovnu libpq.so.5.12
Provedeme restart Apache
Poznamka k phpinfo:
Knihovna po zobrazení pomocí phpinfo(); má sice nižší verzi (původně 5.3), ale obsahuje moznost pro PHP funkci pg_connect provádět connect do databáze Postgres za použití šifrování scram-sha-256
Vystup z phpinfo:
PostgreSQL(libpq) Version 9.2.24
Použitá knihovna:
Tato příloha je pro hosty skrytá.
Prosím přihlašte se nebo se registrujte pro její zobrazení.