在我的 ubuntu 16.04 中基于 https://www.howtoforge.com/tutorial/ubuntu-postgresql-installation/安装
登录 http://localhost/phppgadmin/PostgreSQL,浏览器显示不支持 PostgreSQL 版本。请升级到版本或更高版本。
有什么解决方案吗?
实际上您仍然可以手动修改此文件:
类/数据库/连接.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 分支并创建/修复几个文件以实现完全支持。
编辑3:phpPgAdmin再次处于积极开发状态!如果您下载最新版本,它支持高达 v11.x 的 PostgreSQL
http://phppgadmin.sourceforge.net/doku.php?id=downloadhttps://github.com/phppgadmin/phppgadmin
phpPgAdmin已经多年没有被积极开发。对于PostgreSQL来说,它仍然是一个很好的接口,但不幸的是,它们只正式支持9.2。 我注意到最新版本仍然可以运行到 9.6,至少在过去的 6 个月里它在生产环境中是这样,在此之前,它多年来一直与我所拥有的任何东西(9.4/9.5?
我建议改为安装 9.6,然后从那里开始。
编辑:如果你热衷于使用v10,那么你仍然可以使用pgAdmin 4作为界面,尽管这不是基于Web的。
参考资料:phpPgAdmin官方网站
编辑2:查看DToch的答案以获取良好的解决方法
为了更清楚,完整路径是/usr/share/phppgadmin/classes/database/Connection.php
您也可以简单地添加
default: return 'Postgres'; break;
在开关语句的末尾。
还需要登录的用户名应该是"postgres"。没有很好的记录。
如果您使用的是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
编辑文件类/数据库/连接.php
在此行后添加:案例"7.4":返回"Postgres74";破;
键入或复制/粘贴此文本:默认值:返回"Postgres";破;
瞧!
在目录类/数据库中调整文件连接.phpswitch (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 没有问题。
这也解决了出现以下错误消息时的问题:未定义的变量:不支持PostgreSQL的postgresqlMinVer版本。请升级到版本或更高版本。