Обсуждение: Trouble connecting to database using PQconnectdb (C/libpq)

Поиск
Список
Период
Сортировка

Trouble connecting to database using PQconnectdb (C/libpq)

От
Joel Alpers
Дата:
Hello -

I am working on moving my WEB pages, which include searches in a PostgreSQL
data base, through "libpq".

Old system:   Red Hat Linux 9, PostgreSQL 7.4.6

New system:  Fedora 11, PostgreSQL 8.4

When I re-compile the program (using updated gnu C++ compilers/libs),
the new version --will-- connect to the data base if I run the CGI program
from the command line, but will --NOT-- connect if I call the CGI program
from a web page.

Here is the C/C++ code:
------------------------------

const char *pcDbArgs = "user=joela  dbname=photodb  port=5432
host=192.168.111.7";
const char *pcDbName = "photodb";

  //
  // Connect to PostGresQL data base....
  //
  printf("\nCalling PQconnectdb(%s)\n", pcDbArgs);
  gpPhotoDb = PQconnectdb (pcDbArgs);
  if (PQstatus(gpPhotoDb) != CONNECTION_OK)
    vExit("Can't connect to database \"%s\" - %s\n", pcDbName,
          PQerrorMessage(gpPhotoDb));
  printf("Successful connection!\n\n");


(vExit is a simple function that formats an error message)


When run from an HTML page:
Error message:
------------------

Calling PQconnectdb(user=joela  dbname=photodb  port=5432  host=192.168.111.7)

*** Error - Can't connect to database "photodb" - could not connect to server: Permission denied
    Is the server running on host "192.168.111.7" and accepting
    TCP/IP connections on port 5432?



I have verified that the postgresql server --is-- running on the server
machine, and --is-- listening on 5432.

I am sure I am leaving something out, so please write if you need more info.

Any thoughts?

Thanks!

Joel.

--


+--------------------------------------------------------------------+
|  Joel K. Alpers
|  Expressive Black and White Images
|  http://www.jkalpers.com
+--------------------------------------------------------------------+


Re: Trouble connecting to database using PQconnectdb (C/libpq)

От
Tom Lane
Дата:
Joel Alpers <joel@jkalpers.com> writes:
> New system:  Fedora 11, PostgreSQL 8.4

Fedora 11 enables selinux by default ...

> *** Error - Can't connect to database "photodb" - could not connect to server: Permission denied
>     Is the server running on host "192.168.111.7" and accepting
>     TCP/IP connections on port 5432?

Almost certainly, this represents selinux thinking that apache shouldn't
be making connections to random ports, and denying the socket open long
before it ever has a chance to get to postgres.

If you poke around in the selinux configuration options you can probably
find a switch that opens this up, but I don't know offhand what it is.

Or you could disable selinux, but if you're running a publicly visible
webserver I'd strongly recommend against that.  selinux will save your
bacon someday, but not if it's turned off.

            regards, tom lane

Re: Trouble connecting to database using PQconnectdb (C/libpq)

От
Joel Alpers
Дата:
Tom Lane wrote:
> Joel Alpers <joel@jkalpers.com> writes:
>
>> New system:  Fedora 11, PostgreSQL 8.4
>>
>
> Fedora 11 enables selinux by default ...
>
>
>> *** Error - Can't connect to database "photodb" - could not connect to server: Permission denied
>>     Is the server running on host "192.168.111.7" and accepting
>>     TCP/IP connections on port 5432?
>>
>
> Almost certainly, this represents selinux thinking that apache shouldn't
> be making connections to random ports, and denying the socket open long
> before it ever has a chance to get to postgres.
>
> If you poke around in the selinux configuration options you can probably
> find a switch that opens this up, but I don't know offhand what it is.
>
> Or you could disable selinux, but if you're running a publicly visible
> webserver I'd strongly recommend against that.  selinux will save your
> bacon someday, but not if it's turned off.
>
>             regards, tom lane
>
>
Tom:

Thanks for the quick reply - looks like you were spot on with your analysis.

I temporarily set selinix to "permissive" and the web page works as it
should.

Now the trick will be to find a way to make them play well together -- I'll
check the postgres site where they have discussions archived...

Thanks again!!!

Joel.

--


+--------------------------------------------------------------------+
|  Joel K. Alpers
|  Expressive Black and White Images
|  http://www.jkalpers.com
+--------------------------------------------------------------------+


Re: Trouble connecting to database using PQconnectdb (C/libpq)

От
John R Pierce
Дата:
>
> Now the trick will be to find a way to make them play well together --
> I'll
> check the postgres site where they have discussions archived...


you'll probably get more help from a selinux site or list.



Re: Trouble connecting to database using PQconnectdb (C/libpq)

От
Joel Alpers
Дата:
John R Pierce wrote:
>
>>
>> Now the trick will be to find a way to make them play well together
>> -- I'll
>> check the postgres site where they have discussions archived...
>
>
> you'll probably get more help from a selinux site or list.
>
>
>
Yes, after I sent that reply I recalled that I was --on-- a postgres
list  --- sorry,
it's been a long few days fighting software.

I meant to say I would check on the Fedora forum!

Joel.


--


+--------------------------------------------------------------------+
|  Joel K. Alpers
|  Expressive Black and White Images
|  http://www.jkalpers.com
+--------------------------------------------------------------------+