Problems with connecting to Postgresql database via Apache
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
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
import cgitb; cgitb.enable()
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;"
data = cursor.fetchall()
for i in data:
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.
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)
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.