PhpPgAdmin ist ein Webfrontend für PostgreSQL. Es verhält sich ähnlich dem bekannten Webfrontend phpMyAdmin. Der Benutzer kann seine Datenbanken bequem über den Browser anschauen und verwalten.
Voraussetzung ist ein eingebundenes EPEL-Repo und eine Installation von PostgreSQL. Einen extra Artikel über die Installation von PostgreSQL findet ihr auf meinen Seiten.
Installation von phpPgAdmin unter CentOS 7
Die Installation geht bei einen eingebundene EPEL-Repo ganz schnell mit folgenenden yum Kommando.
yum install phpPgAdmin php-pgsql httpd php
Alle nötigen PHP-Pakete werden dadurch gleich mit installiert und wir brauchen uns um Nichts zu kümmern.
Konfiguration von phpPgAdmin
Damit phpPgAdmin funktioniert sind noch ein paar Einstellnungen an der Konfiguration erforderlich. Dazu editieren wir die Datei /etc/phpPgAdmin/config.inc.php wie beschrieben.
vi /etc/phpPgAdmin/config.inc.php
Wir tragen unseren Server als localhost ein.
$conf['servers'][0]['host'] = 'localhost';
Um einen Benutzer nur die Datenbanken zu zeigen auf die er selbst Zugriff hat setzen wir owned_only auf true. Andernfalls sehen alle Benutzer alle Datenbanken auch wenn sie keine Rechte darauf haben.
$conf['owned_only'] = true;
Falls wir uns mit einen administrativen System-Benutzer anmelden möchten setzen wir die Login Sicherheit auf false. Dann sind Benutzer wie pgsql, postgres, root, administrator erlaubt. Sonst einfach aktivert lassen.
$conf['extra_login_security'] = false;
Anschliessend speichern wir die Einstellungen und fahren mit der Konfiguration von PostgreSQL fort.
Konfiguration PostgreSQL
Wie schon in dem Artikel zu PostgreSQL-Installation beschrieben setzen wir die Einstellungen in der /var/lib/pgsql/9.3/data/pg_hba.conf falls noch nicht geschehen wie folgt:
vi /var/lib/pgsql/9.3/data/pg_hba.conf
# "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 0.0.0.0/0 md5 # IPv6 local connections: host all all ::1/128 md5
Dadurch erlauben wir anderen Netzen sowie unserm Server selbst sich per MD5 authentifizieren. Zumindest ist dies für localhost unbedingt erforderlich. Nach dem Speichern starten wir PostgreSQL neu.
systemctl restart postgresql-9.3.service
Konfiguration Webserver Apache (httpd)
Um von extern auf phpPgAdmin zuzugreifen müssen wir auch noch die Konfiguration des Webservers anpassen. Unter /etc/httpd/conf.d/phpPgAdmin.conf müssen wir expizit den externen Zugriff erlauben.
Dazu fügen wie die Zeile „Require all granted“ ein und kommentieren „Require local“ aus. Damit erlauben wir Zugriff von alles IPs.
Alias /phpPgAdmin /usr/share/phpPgAdmin <Location /phpPgAdmin> <IfModule mod_authz_core.c> # Apache 2.4 # Require local Require all granted #Require host example.com </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order deny,allow Deny from all Allow from 127.0.0.1 Allow from ::1 # Allow from .example.com </IfModule> </Location>
Anschliessend starten wir unseren Webserver neu und können nun auf phpPgAdmin zugreifen.
systemctl restart httpd.service
Nun können wir unter im Browser auf phpPgAdmin zugreifen. Das geht http://<IP>/phpPgAdmin. In der Webserver-Einstellung kann man natürlich auch ein anderes Alias auswählen.
Hilfe und weitere Infos findet man auf der Projektseite von phpPgAdmin und auf der Webseite von PostgeSQL