【问题标题】:Installing phpPgAdmin 5.1 on Ubuntu 16.04 with PostgreSQL 10 not supported不支持在带有 PostgreSQL 10 的 Ubuntu 16.04 上安装 phpPgAdmin 5.1
【发布时间】:2017-10-17 16:14:46
【问题描述】:

在我的 ubuntu 16.04 中基于 https://www.howtoforge.com/tutorial/ubuntu-postgresql-installation/ 安装

登录http://localhost/phppgadmin/ PostgreSQL,浏览器显示 不支持 PostgreSQL 版本。请升级到版本或更高版本。

有什么解决办法吗?

【问题讨论】:

  • 我使用的是最新的版本 10,它是最新的。那么为什么它仍然会发生?
  • 仅供参考 phpPgAdmin 现在再次积极开发,最高支持 v11.x

标签: postgresql ubuntu phppgadmin


【解决方案1】:

其实你还是可以手动修改这个文件的:

类/数据库/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 分支并创建/修复几个文件以实现全面支持。

【讨论】:

  • 太棒了。工作正常。
  • 太棒了!我刚刚使用以下内容处理了所有 v10: switch (substr($version,0,2)) { case '10': return 'Postgres';休息; }
  • 很好的解决方案!
【解决方案2】:

编辑 3:phpPgAdmin 再次处于积极开发中!如果您下载最新版本,它支持最高 v11.x 的 PostgreSQL

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 作为界面,尽管这不是基于网络的。

参考:Official phpPgAdmin Website

EDIT2:查看 DToch 的答案以获得良好的解决方法

【讨论】:

  • 好的,它支持9.6,不支持10。现在它显示了。我希望这可以帮助其他有同样问题的人。谢谢。
  • 到目前为止,phpPgAdmin 还活着,并且最近发布了一个支持版本 11 的版本。
【解决方案3】:

为了更清楚,完整路径是/usr/share/phppgadmin/classes/database/Connection.php

你也可以简单地添加

default: return 'Postgres'; break; 

在 switch 语句的末尾。

还需要登录的用户名应该是“postgres”。没有很好的记录。

【讨论】:

    【解决方案4】:

    如果您使用的是 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。谢谢。
    • 这里的 phppgadmin 容器包含 PHP 的副本。虽然自从我发布这个以来我已经改变了,但我会更新。
    • 感谢更新代码!。事实证明,dockage/phppgadmin 图像还不支持 Postgresql 13,(我猜是这样)。如果将版本降级为 11,则您的原始帖子有效。从现在开始,我将尝试使用您的新编辑版本。 :D
    【解决方案5】:

    在 phppgadmin 文件夹中编辑文件 classes/database/Connection.php

    在此行之后添加: 案例“7.4”:返回“Postgres74”;休息;

    键入或复制/粘贴此文本: 默认值:返回“Postgres”;休息;

    瞧!

    【讨论】:

      【解决方案6】:

      在目录类/数据库中 调整文件connection.php switch (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,没有问题。

      当您收到以下错误消息时,这也可以解决问题: 未定义变量:postgresqlMinVer 不支持 PostgreSQL 版本。请升级到版本或更高版本。

      【讨论】:

        猜你喜欢
        • 2017-11-10
        • 2020-02-16
        • 2018-03-12
        • 1970-01-01
        • 2017-04-12
        • 2018-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多