CentOS 7 – PostgreSQL mit phpPgAdmin

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.

phpPgAdmin Weboberfläche
phpPgAdmin Weboberfläche

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.