怎样安装phpPgAdmin

2018年8月9日 | 分类: 【技术】

【介绍】

phpPgAdmin 是使用PHP开发的管理PostgreSQL的工具。

实证:https://github.com/ReimuHakurei/phppgadmin

实证成功:PHP7.2 + PostgreSQL 9.6 + phpPgAdmin 10.0 (Tomicapo版)

对照:https://github.com/Tomicapo/phppgadmin
对照:https://github.com/phppgadmin/phppgadmin
弃用:http://phppgadmin.sourceforge.net/doku.php

参考:https://www.jb51.net/article/47535.htm
参考:https://blog.csdn.net/wangyezi19930928/article/details/20358369

【安装】

wget https://github.com/ReimuHakurei/phppgadmin/archive/master.zip && unzip master.zip && mv phppgadmin-master psql

【配置】

把 conf/config.inc.php-dist 复制为 conf/config.inc.php

编辑 config.inc.php :

...
	$conf['servers'][0]['host'] = 'localhost';
...
	$conf['extra_login_security'] = false;
...

在浏览器打开phpPgAdmin。

报错:您的 PHP 中没有完整的数据库支持

参考:http://bbs.chinaunix.net/thread-538067-1-1.html

因为编译PHP时没有添加 PostgreSQL 支持,需要重新编译PHP。

参考:https://blog.csdn.net/u011138447/article/details/51224394

参考:https://amon.org/php72

./configure 中添加 PostgreSQL 的安装路径:

yum指定9.6版本安装:–with-pgsql=/usr/pgsql-9.6/ –with-pdo-pgsql=/usr/pgsql-9.6/
yum指定11版本安装:–with-pgsql=/usr/pgsql-11/ –with-pdo-pgsql=/usr/pgsql-11/
yum默认版本安装:–with-pgsql=/usr/lib/pgsql –with-pdo-pgsql=/usr/lib/pgsql

如果不指定,如果configure时报错:

configure: error: Cannot find libpq-fe.h.
wget http://php.net/distributions/php-7.2.8.tar.xz && tar -xvf php-7.2.8.tar.xz && cd php-7.2.8
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=apache --with-fpm-group=apache --disable-debug --with-curl --with-iconv --with-pcre-regex --with-zlib --enable-bcmath --enable-ftp --enable-sockets --enable-mbstring --enable-mbregex --enable-soap --with-xsl --with-openssl --enable-opcache=no --with-mysqli --with-mysql-sock --with-pdo-mysql --enable-mysqlnd --disable-fileinfo --with-gd=/usr/local/gd --enable-gd-jis-conv --with-jpeg-dir=/usr/local/jpeg/lib --with-png-dir=/usr/local/png --with-freetype-dir=/usr/local/freetype --with-libzip=/usr/local/lib64 --enable-zip --with-iconv-dir=/usr/local/lib --with-readline --with-apxs2=/usr/local/apache2/bin/apxs LDFLAGS="-L/usr/lib -lz"
make ZEND_EXTRA_LIBS='-liconv'
make install

重新安装完PHP后重启httpd服务器,即可通过浏览器打开 phpPgAdmin ,报错消失。

报错:Login disallowed for security reasons.

参考:http://blog.sina.com.cn/s/blog_4cf7752c0100t5ms.html

编辑:conf/config.inc.php 105行:

	$conf['extra_login_security'] = false;

问题解决。

报错:Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: Ident authentication failed for user “postgres”

编辑:conf/config.inc.php 105行:

# IPv6 local connections:
host    all             all             ::1/128                 trust

问题解决。

报错:Notice: Undefined index

参考:https://sourceforge.net/p/phppgadmin/discussion/115884/thread/bba30f38/

这是因为PHP版本过高导致的问题。

编辑:conf/config.inc.php 添加:

error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

问题隐藏。

报错:Error Loading all_db.php

参考:https://sourceforge.net/p/phppgadmin/mailman/message/8387927/
参考:https://sourceforge.net/p/phppgadmin/mailman/message/8388313/

这个问题当 PHP5 + PostgreSQL 9.6 时不再出现。

报错:Deprecated: The each() function is deprecated. /psql/libraries/adodb/adodb-error.inc.php on line 106

参考:https://stackoverflow.com/questions/49536453/the-each-function-is-deprecated-cant-figure-out-how-to-change-to-foreach

这是因为 PHP7 不再支持 each() 所导致。使用 Tomicapo 的升级版即可。

报错:Version of PostgreSQL not supported. Please upgrade to version or later.

参考:https://stackoverflow.com/questions/46794672/installing-phppgadmin-5-1-on-ubuntu-16-04-with-postgresql-10-not-supported

官方已经很久没维护了,只支持到 PostgreSQL 9.2,可能支持 PostgreSQL 9.6 。

编辑 classes/database/Connection.php

		switch (substr($version,0,3)) {
			case '10.': return 'Postgres10'; break;
			case '9.6': return 'Postgres96'; break;
			case '9.5': return 'Postgres95'; break;
			case '9.4': return 'Postgres94'; break;
		}

并把 Postgres10.php 复制为 Postgres11.php ,并适应性编辑内容。

然鹅依然实证未遂。