Find the answer to your Linux question:
Results 1 to 2 of 2
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1

    Problems with connecting to Postgresql database via Apache


    Hello,

    I'm trying to connect to a PostgreSql database at the localhost using Apache 2.0 server.
    I'm working with Fedora Core 4.
    The cgi script is written in Python 2.4, I am using the PyGreSql library.
    The script works fine when started from command line, but when I start it via localhost I get the message:
    could not create socket: Permission denied

    Details:
    1. I created the user 'www' and granted him select privilege on the table to access
    2. I edited the httpd.conf, added "User www"
    3. The script looks like this
    *********
    #!/usr/bin/python2.4
    import cgi
    import cgitb; cgitb.enable()
    import pgdb

    print "Content-Type: text/html" # HTML is following
    print # blank line, end of headers
    print "<TITLE>CGI script output</TITLE>"
    print "<H1>This is my first CGI script</H1>"
    print "Hello, world!"
    con = pgdb.connect(host = 'localhost', database= 'words',user = 'www', password = '')
    cursor = con.cursor()
    select = "select * from main;"
    cursor.execute(select)
    data = cursor.fetchall()
    for i in data:
    print i
    ************
    4. When I start it from the apache server, I get the following:
    ********************
    InternalError Python 2.4.1: /usr/bin/python2.4
    Sun Sep 4 23:41:18 2005

    A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
    /var/www/cgi-bin/test.py
    9 print "<H1>This is my first CGI script</H1>"
    10 print "Hello, world!"
    11 con = pgdb.connect(host = 'localhost', database= 'words',user = 'www', password = '')
    12 cursor = con.cursor()
    13 select = "select * from main;"
    con undefined, pgdb = <module 'pgdb' from '/usr/lib/python2.4/site-packages/pgdb.pyc'>, pgdb.connect = <function connect>, host undefined, database undefined, user undefined, password undefined
    /usr/lib/python2.4/site-packages/pgdb.py in connect(dsn=None, user='www', password='', host='localhost', database='words')
    369 # open the connection
    370 cnx = _connect_(dbbase, dbhost, dbport, dbopt,
    371 dbtty, dbuser, dbpasswd)
    372 return pgdbCnx(cnx)
    373
    dbtty = '', dbuser = 'www', dbpasswd = ''

    InternalError: could not create socket: Permission denied
    args = ('could not create socket: Permission denied\n',)
    ************
    5. The previous experiments with granting privileges to public and to user apache led to the same result.

    What is wrong?

    Thanks in advance.
    Michael

  2. #2

    Exclamation

    There is a problem with selunix and postgres/apache. Try turning off selinux. It worked for me.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •