Mit PHP auf Postgres zugreifen

Hallo zusammen,

ich habe ein Problem mit dem Zugriff auf meine Postgres-Datenbank, und nehme an, dass eine Einstellung irgendwo noch nicht korrekt ist:

Auf einem Linux-System läuft Postgres 8.1. Mit einem Windows-Rechner und PgAdmin greife ich auf die Datenbank zu - ohne Probleme. In der hba.conf ist die IP-Adresse meines Zugriffsrechners explizit eingetragen.
Auf dem besagten Windows-Rechner läuft ein Apache-Webserver mit PhpPgAdmin. Die für Postgres benötigten Module sind bereits in der php.ini eingetragen, deshalb bringt PhpPgAdmin auch keine Fehlermeldung. In PhpPgAdmin ist mein Server bereits richtig eingetragen. Will ich mich jetzt über PhpPgAdmin anmelden, kommt beim richtigen Nutzernamen / Passwort die Fehlermeldung “Anmelden nicht erlaubt”.
Weiterhin habe ich mit ezSQL (PHP-Klasse für einfachen Datenbankzugriff) und PHP ein paar SQL-Abfragen versucht, doch ich sehe jedesmal nur eine leere Seite. Alle Daten zum Server sind aber richtig angegeben.

Woran liegt das? Was muss ich ändern, damit ich von meinem Webserever aus mit PHP auf die Postgres-Datenbank zugreifen kann?
Auch wenn du mir diese Fragen nicht beantworten kannst, weist du hier vielleicht Rat: Um Auszuschließen, dass es sich um eine Fehlkonfiguration in der hba.conf Datei handelt, was muss man in diese Datei eintragen, damit alle Ip-Adressen uneingeschränkten Zugriff haben? (Natürlich nur zum Test)

Vielen Dank,
Roland

Die pg_hba.conf hat mehr Felder als nur das für die IP.

Weiterhin habe ich mit ezSQL (PHP-Klasse für einfachen Datenbankzugriff) und PHP ein paar SQL-Abfragen versucht, doch ich sehe jedesmal nur eine leere Seite. Alle Daten zum Server sind aber richtig angegeben.

PHP erlaubt die Ausgabe von Fehlermeldungen. Die Funktionen zum Aufbau einer Verbindung geben dazu Rückgabewerte. Es ist halbweg guter Code, diese Rückgabewerte nicht achtlos zu entsorgen. Das tust Du offensichtlich, wenn Du nur leeren Seiten bekommst.

Woran liegt das?

Steht möglicherweise in der Fehlermeldung, die PHP zurückgeben will.

Auch wenn du mir diese Fragen nicht beantworten kannst, weist du hier vielleicht Rat: Um Auszuschließen, dass es sich um eine Fehlkonfiguration in der hba.conf Datei handelt, was muss man in diese Datei eintragen, damit alle Ip-Adressen uneingeschränkten Zugriff haben? (Natürlich nur zum Test)

Das Stichwort hier dürfte ‘trust’ sein. Die pg_hba.conf ist reichlich dokumentiert/kommentiert.

Andreas

Das habe ich auch schon mitbekommen. Da ja alle diese Felder mit den korrekten Inhalten gefüllt sind, kann ich auch von meinem Windows-Rechner aus zugreifen.

hba.conf:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust
host	all	    all		192.168.1.79/24	      trust



Auch wenn es für dich offensichtlich zu sein scheint, ist es nicht der Fall. Fehlermeldungen werden nicht unterdrückt. Dazu der Code der PHP-Dateien (siehe Anhang).

Wenn doch irgendwo Fehlermeldungen unterdrückt sein sollten, lasst es mich bitte wissen.

Zum Stichwort “trust” habe ich bereits oben etwas geschrieben. Hätte das nicht von Anfang an dort gestanden, hätte ich von meinem Windows-Rechner nie eine Verbindung aufbauen können.

Wenn du eine ordentliche, deutsche Dokumentation zur besagten Datei kennst, lass mich die Adresse wissen, ich habe nämlich bisher nichts gefunden.

MfG
Roland

192.168.1.79/24 ist eine sinnfreie Adresse. Entweder 192.168.1.79/32 oder 192.168.1.0/24

Vielleicht ist das die Ursache des Problems.

Ansonsten kann ich da nix unanständiges sehen auf den ersten Blick…
Es sind dieselben Rechner, PGAdmin und PhPPgAdmin? Das wäre komisch, ja.

Andreas