登录http://localhost/phppgadmin/ PostgreSQL,浏览器显示“不支持此版本的PostgreSQL,请升级到版本或更高版本。”
有什么解决方法吗?
实际上你仍然可以手动修改这个文件:
classes/database/Connection.php
// Detect version and choose appropriate database driver
switch (substr($version,0,3)) {
case '9.5': return 'Postgres'; break;
case '9.4': return 'Postgres94'; break;
case '9.3': return 'Postgres93'; break;
case '9.2': return 'Postgres92'; break;
case '9.1': return 'Postgres91'; break;
case '9.0': return 'Postgres90'; break;
case '8.4': return 'Postgres84'; break;
case '8.3': return 'Postgres83'; break;
case '8.2': return 'Postgres82'; break;
case '8.1': return 'Postgres81'; break;
case '8.0':
case '7.5': return 'Postgres80'; break;
case '7.4': return 'Postgres74'; break;
}
switch (substr($version,0,4)) {
case '10.1': return 'Postgres'; break;
}
虽然没有经过全面测试,但所有主要功能都能正常工作。
或者创建自己的分支https://github.com/phppgadmin/phppgadmin并创建/修复一些文件以实现完整支持。
switch (substr($version,0,2)) {
case '10': return 'Postgres'; break;
}
- Kurt编辑 3:phpPgAdmin正在积极开发中!如果您下载最新版本,它支持 PostgreSQL 版本高达 v11.x
http://phppgadmin.sourceforge.net/doku.php?id=download https://github.com/phppgadmin/phppgadmin
phpPgAdmin已经多年没有积极开发了。它仍然是PostgreSQL的一个很好的接口,但不幸的是,他们只正式支持到9.2版本。我注意到最新版本仍然可以在9.6版本上使用,至少在过去6个月的生产环境中是这样的,而在此之前,无论我使用的是什么版本(9.4 / 9.5?)都可以使用多年。
我建议安装9.6版本,然后从那里开始。
编辑:如果你非常想使用v10,则仍然可以使用pgAdmin 4作为接口,但这不是基于Web的。
参考资料:官方phpPgAdmin网站
编辑2:请参考DToch的答案以获得一个好的解决方法。
default: return 'Postgres'; break;
如果你正在使用docker(使用我的phppgadmin分支,由于它修复了与新版posrgres的兼容性问题):
FROM php:8-fpm-alpine
RUN apk add --no-cache --virtual \
.build-deps git autoconf g++ make postgresql-dev \
&& docker-php-ext-install pgsql \
&& docker-php-ext-enable opcache \
&& apk add libpq ca-certificates curl apache2-proxy \
&& rm -rf /var/www/localhost/.git/ /var/www/localhost \
&& git clone https://github.com/idontusenumbers/phppgadmin.git /var/www/localhost/htdocs \
&& rm -rf /var/www/localhost/.git/ \
&& apk del .build-deps \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apk/* \
&& rm /etc/init.d/apache2
RUN echo "ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/localhost/htdocs/$1" >> /etc/apache2/httpd.conf
RUN echo "DirectoryIndex index.php" >> /etc/apache2/httpd.conf
在目录classes/database中, 调整文件connection.php 切换(substr($version,0,3)){
case '9.2': return 'Postgres'; break;
case '9.1': return 'Postgres91'; break;
case '9.0': return 'Postgres90'; break;
case '8.4': return 'Postgres84'; break;
case '8.3': return 'Postgres83'; break;
case '8.2': return 'Postgres82'; break;
case '8.1': return 'Postgres81'; break;
case '8.0':
case '7.5': return 'Postgres80'; break;
case '7.4': return 'Postgres74'; break;
default: return 'Postgres'; break;
}
它也可以在没有问题的情况下适用于版本10。
这还解决了以下错误消息的问题: Undefined variable: postgresqlMinVer 版本不支持。请升级到版本或更高版本。