PostgreSQL (die meisten nennen es Postgres) ist ein fortschrittliches objektrelationales Datenbankverwaltungssystem (ORDBMS). Postgres ist ein Open-Source-Datenbankserver mit mehr als 18 Jahren aktiver Entwicklung, was Postgres zur besten Wahl für Anwendungen der Enterprise-Klasse macht.
Postgresql ist plattformübergreifend und läuft auf vielen Betriebssystemen wie Linux, OSX, Windows und der BSD-Familie. Es ist die richtige Wahl, wenn Sie eine Anwendung mit großen Datenbank-Workloads haben. Postgres wurde von vielen großen Organisationen verwendet, darunter Yahoo, Instagram und Disqus. Postgres wird auch als Software as a Service (SaaS) angeboten von z.B. Heroku und AWS (Amazon Web Services).
In diesem Tutorial zeige ich Ihnen, wie Sie Postgres auf Ihrem eigenen Server mit OpenSUSE Leap als Betriebssystem installieren. Dann werde ich phpPgAdmin installieren, damit wir unsere Postgres-Datenbank über den Webbrowser verwalten können.
Voraussetzung
- OpenSUSE Leap 42.1
- Root-Rechte
Schritt 1 - PostgreSQL installieren
Das openSUSE-Repository enthält zwei Versionen von Postgres. In diesem Schritt installieren wir PostgreSQL 9.4 auf openSUSE mit dem Befehl zypper.
Installieren Sie PostgreSQL mit Zypper:
zypper in postgresql94 postgresql94-contrib postgresql94-server
Starten Sie postgresql mit systemctl:
systemctl start postgresql
Schritt 2 – Standardbenutzer konfigurieren
In diesem Schritt legen wir ein Passwort für den Postgres-Benutzer fest. Postgresql verwendet ein ähnliches Konzept wie das Linux-Benutzersystem namens „Rolle“ für die grundlegende Authentifizierung und Autorisierung. Standardmäßig erstellt postgresql einen neuen Benutzer namens „postgres“, um den postgresql-Server zu verwalten.
Machen wir den ersten Schritt zur Konfiguration der postgresql-Datenbank, indem wir uns vom Terminal aus beim Benutzer postgres anmelden:
sudo su
su - postgres
Jetzt verwenden wir den Befehl psql. psql ist das Befehlszeilen-Frontend für PostgreSQL, wir können PostgreSQL-Abfragen direkt davon ausführen.
psql
Von der psql-Shell aus können wir das Passwort des Benutzers „postgres“ mit dem folgenden „password“-Befehl ändern:
\password postgres
New Password:
Geben Sie Ihr neues Passwort für den Postgres-Benutzer ein.
Schritt 3 – Erstellen Sie einen neuen PostgreSQL-Benutzer
In diesem Schritt erstellen wir einen neuen Benutzer/eine neue Rolle mit Superuser-Rechten und erstellen eine neue Datenbank und gewähren dem Benutzer Zugriff.
Um einen neuen Benutzer zu erstellen, müssen wir uns als Postgres-Benutzer anmelden und dann mit dem folgenden Befehl eine neue Rolle und Datenbank erstellen:
su - postgres
createuser -s nano
createdb nano_db
Hinweis:
Die Option -s wird verwendet, um dem neuen Benutzer Superuser-Privilegien zu geben.
nano ist neuer Benutzername.
nano_db ist der neue Datenbankname.
Melden Sie sich jetzt bei der Postgresql-Shell psql an, geben Sie unserer neuen Rolle ein Passwort und gewähren Sie Datenbankzugriff.
psql
alter user nano with encrypted password '[email protected]';
grant all privileges on database nano_db to nano;
Ich werde hier das Passwort „[email protected]“ für den Benutzer nano verwenden und der Datenbank nano_db die Berechtigungen erteilen.
Dieser Benutzer wird verwendet, um sich über die webbasierte phpPgAdmin-Oberfläche bei postgresql anzumelden, da wir keinem Standardbenutzer oder Benutzer ohne Passwort erlauben sollten, sich über phpPgAdmin bei postgresql anzumelden.
Schritt 4 – PostgreSQL konfigurieren
In diesem Schritt konfigurieren wir PostgreSQL so, dass es die öffentliche IP abhört, damit wir mit DB-Modellierungstools von unserem Desktop-Computer aus remote darauf zugreifen können. Sie können diesen Schritt überspringen, wenn Sie nicht remote auf Postgres zugreifen möchten.
Gehen Sie in das Postgresql-Verzeichnis „/var/lib/pgsql/“ und bearbeiten Sie die Hauptkonfigurationsdatei „postgresql.conf“ mit Ihrem bevorzugten Editor:
cd /var/lib/pgsql/
cd data/
vim postgresql.conf
Kommentieren Sie Zeile 59 aus und ändern Sie den Wert von localhost in "*".
Kommentieren Sie Zeile 63 aus, um den Standardport zu konfigurieren.
listen_addresses = '*'
port = 5432
Speichern Sie die Datei und beenden Sie den Editor.
Um den Zugriff von der Webanwendung phpPgAdmin auf die PostgreSQL-Datenbank zu ermöglichen, müssen wir die Datei pg_hba.conf bearbeiten und einige Konfigurationseinstellungen ändern.
Bearbeiten Sie die Datei „pg_hba.conf“ mit vim:
vim pg_hba.conf
Ändern Sie am Ende der Zeile die Konfiguration für die Authentifizierung auf md5:
#TYPE Database User Address Method
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Wenn Sie neue Verbindungen von außerhalb des Servers zulassen möchten, z. B. mit PgAdmin3, können Sie weitere "Host" -Einträge hinzufügen, z. für die IP Ihres Desktops.
Speichern und beenden.
Starten Sie nun den PostgreSQL-Dienst mit dem Befehl systemctl neu:
systemctl restart postgresql
Schritt 5 – Installieren und konfigurieren Sie phpPgAdmin
phpPgAdmin ist eine webbasierte Anwendung zur Verwaltung von PostgreSQL-Datenbanken. Es basiert auf PHP und bietet eine GUI zum Verwalten von Datenbanken und zum Erstellen von Rollen. In diesem Schritt installieren wir phpPgAdmin und da es über den Webbrowser zugänglich ist, verwenden wir Apache2 als Webserver.
Installieren Sie phpPgAdmin mit diesem Zypper-Befehl:
zypper in phpPgAdmin
Der Befehl installiert automatisch die Abhängigkeiten PHP und Apache Webserver.
Gehen Sie als nächstes in das phpPgAdmin-Verzeichnis und bearbeiten Sie die Konfigurationsdatei config.inc.php.
cd /etc/phpPgAdmin/
vim config.inc.php
Setzen Sie in der Host-Konfigurationszeile 18 den Wert auf "localhost".
$conf['servers'][0]['host'] = 'localhost';
Wenn Sie einem Benutzer mit dem Namen „postgres“ oder „root“ erlauben möchten, sich mit phpPgAdmin bei postgresql anzumelden, können Sie die zusätzliche Sicherheit auf „false“ setzen, aber es wird nicht empfohlen, sie auf „false“ zu setzen. überprüfen Sie die Zeile 93.
$conf['extra_login_security'] = true;
Speichern und beenden.
Aktivieren Sie dann die PHP- und Versionserweiterung in Apache, da sie von phpPgAdmin benötigt werden:
a2enmod php5
a2enmod version
Starten Sie nun alle Dienste mit dem Befehl systemctl neu:
systemctl restart postgresql
systemctl restart apache2
Schritt 6 – Testen
Greifen Sie über den Webbrowser mit der URL:
auf phpPgAdmin zuhttp://192.168.1.101/phpPgAdmin/
Melden Sie sich mit dem Benutzer nano und dem Passwort „[email protected]“ an.
Wenn Sie sich mit dem Benutzer „postgres“ und dem richtigen Passwort anmelden, ist dies nicht zulässig.