Avatar billede Slettet bruger
07. oktober 2003 - 11:58 Der er 8 kommentarer og
1 løsning

postgresql, php, apache

Hej Eksperter,
Jeg er Linux-nybegynder og har installeret RH9 på min maskine. Installationen skal bruges til småopgaver med Postgresql og PHP. Alt fungerer. Dvs. Apache kører, jeg kan oprette databaser i postgres, og jeg kan lave php-scripts og få dem vist i browseren. MEN jeg kan ikke få lov at lave forespørgsler i databaserne via PHP. Jeg får følgende fejlmeddelelse:

Warning: pg_connect() unable to connect to PostgreSQL server: could not connect to server: Opkobling nægtet Is the server running on host localhost and accepting TCP/IP connections on port 5432? in /var/www/html/phpno1.php on line 2

Skal der fx tilføjes noget i httpd.conf? Jeg har ikke tilføjet noget, da alt andet jo sådan set fungerer efter instalationen.


På forhånd tak
palau
Avatar billede draeber Nybegynder
07. oktober 2003 - 12:22 #1
postgresql skal så vidt jeg husker startes med -i option
f.eks.
/usr/bin/postmaster -p 5432 -i -D /var/lib/pgsql/data &
Avatar billede draeber Nybegynder
07. oktober 2003 - 12:23 #2
du kan se, om den er startet med de rigtige parametre med en
ps -aux |grep postmaster
Avatar billede Slettet bruger
07. oktober 2003 - 12:31 #3
Hvilken forskel gør det at starte med -i option og hvad er de igtige parametre?
palau
Avatar billede draeber Nybegynder
07. oktober 2003 - 12:42 #4
de rigtige parametre er dem, der står opført i mit første indlæg

-i optionen gør, at den accepterer forbindelser på IP.
Det kan også være noget i din configurations fil til postgresql der gør, at du ikke kan få lov at connecte.
postgres' conf ligger i:
/var/lib/pgsql/data/pg_hba.conf
Avatar billede Slettet bruger
07. oktober 2003 - 13:13 #5
Kan det have noget at gøre med hvilke programmer der har rettighederne til den mappe databasen ligger i. Postgres skal vel have rettighederne, men kan php så få adgang?

Palau
Avatar billede draeber Nybegynder
07. oktober 2003 - 13:42 #6
php skal jo kontakte database-serveren på en eller anden måde
Det gør den som regel ved hjælp af IP-protokollen. Den læser ikke direkte i data-mappen.
Derfor skal du have konfigureret postgresql, så den starter med de parametre og den konfiguration der gør, at du får lov til at connecte fra et andet program.
Avatar billede draeber Nybegynder
07. oktober 2003 - 13:46 #7
jeg er selvfølgelig ikke sikker på at det er den eneste løsning, men hvis du logger ind som root og derefter stopper postgresql og så gør som flg.
# vi /var/lib/pgsql/data/pg_hba.conf
(her tilføjer du en linie:
host all all 127.0.0.1 255.255.255.255 trust
)
# su postgres
# /usr/bin/postmaster -p 5432 -i -D /var/lib/pgsql/data &

I din php connecter du så til localhost eller 127.0.0.1 med dit brugernavn og password til databasen.

Så skulle det virke
Avatar billede Slettet bruger
07. oktober 2003 - 14:45 #8
Hej draeber

Tak for dine svar. Jeg har ikke fået det til at virke endnu, men jeg tror du har fat i noget af det rigtige, så jeg vil arbejde videre med sagen og vende tilbage sidst på aftenen eller i morgen. Jeg lader spørgsmålet være åbent lidt endnu, hvis nu der skulle være nogen der har et guldkorn eller to. I modsat fald vil du få de 100 pts som tak for ulejligheden.

Palau
Avatar billede Slettet bruger
08. oktober 2003 - 13:48 #9
Her draeber

Nu virker det. Tak for din tid.

Til andre læsere kan jeg oplyse, at det ikke var nødvendigt at tilføje "host all all 127.0.0.1 255.255.255.255 trust" i pg_hba.conf som draeber foreslog, da den linie allerede eksisterede i dokumentet. Den skulle bare have fjernet udkommenteringen. I postgresql.conf fjernede jeg udkommenteringen ved tcpip_socket = true, og så virkede det.

Se i øvrigt: http://www.postgres.org/docs/7.3/interactive/client-authentication.html

Palau
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester