在Ubuntu 16.04上安装phpPgAdmin 5.1并使用PostgreSQL 10是不被支持的。

7

我正在使用最新的版本10,这是最新的版本。那么为什么它仍然会发生呢? - Ong Ming Soon
FYI,phpPgAdmin现在正得到积极开发,并支持v11.x。 - e_i_pi
6个回答

20

实际上你仍然可以手动修改这个文件:

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并创建/修复一些文件以实现完整支持。


1
很棒。运行良好。 - Lalith J.
太棒了!我刚刚用以下代码处理了所有的v10:switch (substr($version,0,2)) { case '10': return 'Postgres'; break; } - Kurt
很棒的解决方案! - Nathan B
如何停止PostgreSQL定期更新自身? - Nathan B

8

编辑 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的答案以获得一个好的解决方法。


好的,它支持9.6但不支持10。现在它已经显示了。希望这对其他遇到相同问题的人有所帮助。谢谢。 - Ong Ming Soon
3
截至目前,phpPgAdmin仍在运作,并且最近发布了一个版本,支持高达11版本。 - orev

8
更明确地说,完整路径为 /usr/share/phppgadmin/classes/database/Connection.php。
此外,您可以简单地添加。
default: return 'Postgres'; break; 

在 switch 语句的末尾需要添加代码。另外,登录的用户名应为“postgres”,但文档记录不完整。

3

如果你正在使用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

你好,我回复了你的评论,因为你提到了Docker。我尝试使用你的Dockerfile脚本,但是每当我尝试访问phppgadmin页面时,我都会收到“PHP版本不受支持”的错误提示。请使用7.2或更高版本。所以我在同一网络上构建了一个PHP容器,但是phppgadmin仍然无法检测到PHP容器,我仍然收到错误消息。有什么帮助吗?我在Docker上运行phppgadmin。谢谢。 - Haizad Annuar
这个phppgadmin容器包含一个PHP的副本。虽然我发布后已经更改,但我会进行更新。 - Charlie
感谢更新的代码!事实证明,dockage/phppgadmin镜像还不支持Postgresql 13(我猜是这样)。如果将版本降级到11,则您的原始帖子可以正常工作。从现在开始,我将尝试使用您的新编辑版本。 :D - Haizad Annuar

0
在phppgadmin文件夹中编辑classes/database/Connection.php文件。
在这一行后面添加: case '7.4': return 'Postgres74'; break;
输入或复制/粘贴以下文本: default: return 'Postgres'; break;
完成!

0

在目录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 版本不支持。请升级到版本或更高版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接