先说说我的环境的版本,apache是2.4的,postgreSQL为目前最新的16版本,php刚开始为7版本。
第一个问题是 PDO连接PostgreSQL报错,SCRAM authentication requires libpq version 10 or above in
这个问题是libpq的版本过低,要版本10以上,(至于libpq是什么,我目前也不懂)后来我检查了php版本发现是7.几的,下载最新的php8版本能解决这个问题
也有另一个解决方法是更改postgreSQL的一下两个文件的一些内容:在pg_hba.conf和postgresql.conf中搜索scram-sha-256,将其改为md5。但这个方法我试过不行,原因不明
第二个问题是函数未定义,下载php8后打开对应的postgreSQL拓展,但还是会报错,最后搜到园内的一个方法,就是将php8目录里的libpq.dll文件复制一份到apache2.4的bin目录里,重启apache之后就行了。这里指个路,原文说的更清楚些:https://www.cnblogs.com/caoqh/p/11542478.html
最后测试phpinfo(),pdo_pgsql跟pgsql都有了,而且能在pgsql那看到libpq的版本为11.4
关于libpq的解释:http://www.postgres.cn/docs/12/libpq.html