postgresql

Dieses Thema im Forum "Webserver (Software): Linux, Unix, etc." wurde erstellt von Tom-i, 29. März 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Tom-i

    Tom-i Eingetragener Provider

    Registriert seit:
    7. Oktober 2004
    Beiträge:
    1.760
    Ort:
    Menden
    Firmenname:
    Serverman
    Anbieterprofil:
    Klick
    kann mir jemand bei der installation von postgresql auf suse 9.0 helfen...

    also:

    - installiert und gestartet ist es als user postgre

    - ins php ist es compiliert (pgsql=enabled), was mich hier wundert ist "active persistant links=0"... müsste da nicht irgenwie ein link zu meinem web gemacht werden, damit das web zugriff auf postgresql bekommt?

    ich vermute damit hängts zusammen.

    danke.

    tom-i
     
  2. Evil Azrael

    Evil Azrael New Member

    Registriert seit:
    1. Juni 2003
    Beiträge:
    493
    postgresql.... gute wahl :)

    lange antwort (neuen user für postgresql gewinnen)
    Also, "active persistant links" ist ein hinweis, wieviele dauerhafte verbindungen zwischen php und postgresql aufgebaut wurden und offen sind.
    neben dem normalen connect gibt´s noch die funktion pconnect, die im gegensatz zum normalen connect nach dem ablauf des skriptes die verbindung nicht wieder zu macht, sondern offenhält, damit ein anderes skript die verbindung noch nutzen kann. das spart zeit, weil keine verbindungen mehr aufgebaut werden müssen. nachteil : die verbindungen werden nicht mehr abgebaut, und irgendwann sind die in postgresql voreingestellten verbindungen erschöpft (-> persistant connections in php.ini runtersetzen, oder verbindungen in postgresql hochsetzen)
    wenn die verbindung nicht klappt, dann liegt es an was anderem.

    kurze antwort (dau-provider abschrecken)
    RTFM
    Die Dokumentationen von Postgresql und von PHP/Postgresql sind sehr gut.
     
  3. banshy

    banshy Erfahrener Benutzer

    Registriert seit:
    27. Dezember 2001
    Beiträge:
    799
    Ort:
    Hamburg
    Läuft das mit den pconnects in PHP mittlerweile? Ich habe das mal vor Jahren ausprobiert, da ich gewisse Ähnlichkeiten zum Connection Pooling von Java-Server-Applikationen erkannt habe (was auch gut funktioniert), habs mir aber schnell wieder abgeschminkt.

    PHP hat zwar die zum poolen festgelegten Connections brav benutzt, aber nur einmal und irgendwann waren dann alle angeblich "in use" ;)
    Ist zwar alles schon lange her (PHP 3) und war auch mit mySQL, aber das war definitiv kein DB Problem - sondern ein PHP-Problem :)

    Aber um auf deine Frage zurückzukommen, an den pconnects wirds normal nicht liegen - die "Verbindungsart" musst du ja nicht nutzen.
     
  4. Evil Azrael

    Evil Azrael New Member

    Registriert seit:
    1. Juni 2003
    Beiträge:
    493
    da hab ich noch nicht mit php gearbeitet ;)
    aber afaik ist das momentan so, dass wenn php eine verbindung wieder verwendet, dann schickt der ein BEGIN; ROLLBACK (oder so, kann jetzt nicht im log nachgucken) an die Datenbank, um evt. offene transaktionen zu killen ;)

    das mit dem "reuse" ist auch so ein problem. AFAIK kann php pconnections nur mit den gleichen daten wiederverwenden.. also gleicher host, gleiche db, gleicher benutzer, etc. stimmen die daten nicht, dann wird eine neue verbindung aufgemacht. sind alle verbindungen belegt -> pech gehabt ;)
    gibt noch so einige nebenwirkungen von persistant connections, und einige leute raten von der verwendung ganz ab, aber da postgresql beim verbindungsaufbau recht träge ist (prozess fork!), lohnt sich aus meiner sicht auf jeden fall.

    theoretisch kannst du zwischen den skripten sogar über eine persistente verbindung auch daten austauschen, kannst ja variablen in einer verbindung setzen. und solange php kein RESET schickt, bleiben die auch erhalten ;)
     
  5. Tom-i

    Tom-i Eingetragener Provider

    Registriert seit:
    7. Oktober 2004
    Beiträge:
    1.760
    Ort:
    Menden
    Firmenname:
    Serverman
    Anbieterprofil:
    Klick
    ...

    danke schon mal.

    also installiert ist das moped=postgresql ja und laufen tut es auch nur zugreifen kann ich nicht...

    1. postgre sql legt seine dbs (bei mysql zb. usr_webirgendwas_1).
    wohl unter /var/lib/pgsql an. da ist jetzt nur ein backups (is klar.) und data drin mit unterverzeichnissen, da ist die config, etc... irgendwas da einstellen?

    2. wie kann ich neue dbs anlegen gibte es sowas wie phpmyadmin dafür wenn ja wo gibts das paket für suse9.0? können source zum bruzzeln oder rpms sein ist mir wurscht.

    3. muß ich in der php.ini auf einem linux system etwas einstellen?

    4. muß ich dem webirgendwas benutzer einen speziellen open_basedir oder weitere modifikationen zb in kombination mit confixx einstellen/ändern

    und die fünfte und für mich auch wichtigste frage:

    wer braucht postgresql??? verdammt!!!

    nee spaß jetzt bemüht euch bitte mir zu helfen und plz. nur kleine steine werfen, mag viele kleine blaue flecke lieber als die großflächigen ;-)

    tom-i


    p.s.: auch daran habe ich gedachtmit den aktive persistant links, also quasi eine anzeige wieviele gerade benutzt bzw. offen sind. adäquat "cached scripts" bei mm-cache.
     
    Zuletzt bearbeitet: 30. März 2005
  6. Evil Azrael

    Evil Azrael New Member

    Registriert seit:
    1. Juni 2003
    Beiträge:
    493
    kurze antwort :
    RTFM,
    http://www.postgresql.org/docs/8.0/interactive/installation.html

    lange antwort:
    moped?

    keine ahnung, wie das bei suse aussieht, aber normalerweise macht man in ein leeres verzeichnis initdb -D /pfad/zum/verzeichnis
    dann startet man den postmaster mit -D /pfad/zum/verzeichnis

    phpPgAdmin, ob´s dafür ein suse9.0 paket gibt, keine ahnung, welchen admin interessiert das ;)

    nicht unbedingt, auch ohne einträge sollte es funktionieren, aber trotzdem solltest du mal gucken, ob suse da rumgepfuscht hat

    hab keine ahnung von confixx

    du anscheinend.

    so ungefähr.schmeiss das suse paket mal runter, und installier postgresql von hand. anleitung ist oben.
     
  7. Tom-i

    Tom-i Eingetragener Provider

    Registriert seit:
    7. Oktober 2004
    Beiträge:
    1.760
    Ort:
    Menden
    Firmenname:
    Serverman
    Anbieterprofil:
    Klick
    ...

    danke schon mal azrael...

    auch unter suse wirds gehen...

    habe jetzt schonmal einen "Authetification failure für user webXX"

    das ist schon mal was...

    ich denke nur den benutzer irgendwo eintragen und es sollte gehen...
     
  8. G.Schuster

    G.Schuster Eingetragener Provider

    Registriert seit:
    30. August 2004
    Beiträge:
    4.062
    Firmenname:
    actra.development
    Anbieterprofil:
    Klick
    AFAIK kann Confixx nur die Confixx-Daten in ner PGSQL-DB ablegen, aber keine PGSQL-DBs für Kunden verwalten.
    Haut mich wenn ich falsch liege, die Info hatte ich Ende letzten Jahres bekommen, vllt hat sichs ja mittlerweile geändert.
     
  9. Tom-i

    Tom-i Eingetragener Provider

    Registriert seit:
    7. Oktober 2004
    Beiträge:
    1.760
    Ort:
    Menden
    Firmenname:
    Serverman
    Anbieterprofil:
    Klick
    ...

    hallo hr. schuster,

    hmmm man kann doch in der pg_hba.conf

    die benutzer einzeln erlauben und auf pam stellen...

    # PostgreSQL Client Authentication Configuration File
    # ===================================================
    #
    # Refer to the PostgreSQL Administrator's Guide, chapter "Client
    # Authentication" for a complete description. A short synopsis
    # follows.
    #
    # This file controls: which hosts are allowed to connect, how clients
    # are authenticated, which PostgreSQL user names they can use, which
    # databases they can access. Records take one of three forms:
    #
    # local DATABASE USER METHOD [OPTION]
    # host DATABASE USER IP-ADDRESS IP-MASK METHOD [OPTION]
    # hostssl DATABASE USER IP-ADDRESS IP-MASK METHOD [OPTION]
    #
    # (The uppercase quantities should be replaced by actual values.)
    # DATABASE can be "all", "sameuser", "samegroup", a database name (or
    # a comma-separated list thereof), or a file name prefixed with "@".
    # USER can be "all", an actual user name or a group name prefixed with
    # "+" or a list containing either. IP-ADDRESS and IP-MASK specify the
    # set of hosts the record matches. METHOD can be "trust", "reject",
    # "md5", "crypt", "password", "krb4", "krb5", "ident", or "pam". Note
    # that "password" uses clear-text passwords; "md5" is preferred for
    # encrypted passwords. OPTION is the ident map or the name of the PAM
    # service.
    #
    # This file is read on server startup and when the postmaster receives
    # a SIGHUP signal. If you edit the file on a running system, you have
    # to SIGHUP the postmaster for the changes to take effect, or use
    # "pg_ctl reload".

    # Put your actual configuration here
    # ----------------------------------
    #
    # CAUTION: The default configuration allows any local user to connect
    # using any PostgreSQL user name, including the superuser, over either
    # Unix-domain sockets or TCP/IP. If you are on a multiple-user
    # machine, the default configuration is probably too liberal for you.
    # Change it to use something other than "trust" authentication.
    #
    # If you want to allow non-local connections, you need to add more
    # "host" records. Also, remember TCP/IP connections are only enabled
    # if you enable "tcpip_socket" in postgresql.conf.

    # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD

    #local all all trust
    host all all 127.0.0.1 255.255.255.255 trust

    # Using sockets credentials for improved security. Not available everywhere,
    # but works on Linux, *BSD (and probably some others)

    local all all ident sameuser



    habe mir das in der form gedacht:

    host kunde1 webXX 127.0.0.1 255.255.255.255 pam

    kunde1= db welche über den postmaster gestartet ist
    webxx= confixx-benutzer
    pam=authentifizierungsmethode

    gedacht.


    ich will ja nicht confixx, bzw. den confixx-usern die verwaltung der dbs überlassen, sondern einem einzelnen user den zugriff auf dieses special erlauben...

    weit ist es nicht mehr hin, denn wenn ich mit dem script auf die postgresql zugreifen will bekommen ich einen authentification error.

    oder doch eher md5 als methode? wäre für mich aber unlogisch...

    dank im voraus.
     
  10. G.Schuster

    G.Schuster Eingetragener Provider

    Registriert seit:
    30. August 2004
    Beiträge:
    4.062
    Firmenname:
    actra.development
    Anbieterprofil:
    Klick
    Ich kenn mich mit PostGre nicht aus, daher bin ich da der falsche Ansprechpartner :)
    Ich hatte es nur so verstanden, dass die User direkt in Confixx ihre PostGre-DBs anlegen können sollen.

    Welche Fehlermeldung wird denn bei dem Script eigentlich ausgegeben?
     
  11. Tom-i

    Tom-i Eingetragener Provider

    Registriert seit:
    7. Oktober 2004
    Beiträge:
    1.760
    Ort:
    Menden
    Firmenname:
    Serverman
    Anbieterprofil:
    Klick
    Warning: pg_query(): No PostgreSQL link opened yet in /srv/www/htdocs/webXX/html/diverseangebote.php on line 37

    Warning: pg_fetch_array(): supplied argument is not a valid PostgreSQL result resource in /srv/www/htdocs/webXX/html/diverseangebote.php on line 39



    ich denk der user webxx darf nicht connecten.

    daher denke ich das man dem user die zugriffsberechtigung in der pg_hba.conf wie oben erwähnt geben kann.
     
  12. Evil Azrael

    Evil Azrael New Member

    Registriert seit:
    1. Juni 2003
    Beiträge:
    493
    1. ganz blöde frage : hast du überhaupt eine verbindung aufgemacht?

    2. blöde frage an mysql skript kiddies :
    schon mal auf die idee gekommen, abfrage ergebnisse zu überprüfen (in php mit pg_result_status())

    3. darfst mir gerne mal den code schicken ;)
     
  13. Tom-i

    Tom-i Eingetragener Provider

    Registriert seit:
    7. Oktober 2004
    Beiträge:
    1.760
    Ort:
    Menden
    Firmenname:
    Serverman
    Anbieterprofil:
    Klick
    ...

    blöde frage an mysql skript kiddies <--- danke!

    ganz blöde antwort: ich habe bereits dreimal geschrieben das ich den connect nicht hinkriege! erst lesen und dann dreißigjährige als skript kiddies bezeichnen. und nein ich kann nicht alles sonst würde ich nicht fragen!!!

    @pg_connect("dbname=kunde1 user=webXX passwort=confixxpass")

    so ist das doch richtig oder?

    es ist mir sicherlich klar das ich so wahrscheinlich keinen connect hinkriege, aber wie oft soll ich das noch schreiben das der confixx user das wahrscheinlich nicht darf... wie erlaube ich ihm das?

    und ja die db kunde1 gibt es und diese gestartet, aber das habe ich ja auch geschrieben...
     
    Zuletzt bearbeitet: 30. März 2005
  14. Evil Azrael

    Evil Azrael New Member

    Registriert seit:
    1. Juni 2003
    Beiträge:
    493
    mach das @ mal weg. ist aus meiner sicht "da könnte ein fehler auftreten, aber den will ich nicht sehen .. "

    keine ahnung, wie confixx die benutzer anlegt und verwaltet, wenn die benutzer auch normale system benutzer sind, dann musst du createuser benutzername machen, dann darf der auch postgresql benutzen.

    ansonsten lies mal die seite :
    http://www.postgresql.org/docs/8.0/interactive/user-manag.html
    (bitte link im unteren absatz beachten)
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen