通过Apache的Postgresauthentication问题

我在RHEL5.4上,并且使用PostgreSQL作为数据库(我之前使用过MySQL,但是想要尝试一些新的:))来build立一个Django项目。 当我运行Djangotesting服务器时,一切正常,我也可以通过命令行连接密码authentication:

psql -U myuser -h 127.0.0.1 

但是,当我尝试通过Apache访问我的项目时,我得到了一个500错误代码,并在Apache的错误日志中的这个python回溯:

 mod_wsgi (pid=7026): Exception occurred processing WSGI script '/var/www/myproject/myproject/hook.wsgi'. Traceback (most recent call last): File "/var/www/myproject/myproject/src/django/django/core/handlers/wsgi.py", line 245, in __call__ response = middleware_method(request, response) File "/var/www/myproject/myproject/src/django/django/contrib/sessions/middleware.py", line 36, in process_response request.session.save() File "/var/www/myproject/myproject/src/django/django/contrib/sessions/backends/db.py", line 55, in save obj = Session( File "/var/www/myproject/myproject/src/django/django/contrib/sessions/backends/base.py", line 152, in _get_session_key self._session_key = self._get_new_session_key() File "/var/www/myproject/myproject/src/django/django/contrib/sessions/backends/base.py", line 144, in _get_new_session_key if not self.exists(session_key): File "/var/www/myproject/myproject/src/django/django/contrib/sessions/backends/db.py", line 29, in exists Session.objects.get(session_key=session_key) File "/var/www/myproject/myproject/src/django/django/db/models/manager.py", line 132, in get return self.get_query_set().get(*args, **kwargs) File "/var/www/myproject/myproject/src/django/django/db/models/query.py", line 336, in get num = len(clone) File "/var/www/myproject/myproject/src/django/django/db/models/query.py", line 81, in __len__ self._result_cache = list(self.iterator()) File "/var/www/myproject/myproject/src/django/django/db/models/query.py", line 269, in iterator for row in compiler.results_iter(): File "/var/www/myproject/myproject/src/django/django/db/models/sql/compiler.py", line 672, in results_iter for rows in self.execute_sql(MULTI): File "/var/www/myproject/myproject/src/django/django/db/models/sql/compiler.py", line 726, in execute_sql cursor = self.connection.cursor() File "/var/www/myproject/myproject/src/django/django/db/backends/__init__.py", line 75, in cursor cursor = self._cursor() File "/var/www/myproject/myproject/src/django/django/db/backends/postgresql_psycopg2/base.py", line 136, in _cursor self.connection = Database.connect(**conn_params) OperationalError: could not connect to server: Permission denied \tIs the server running on host "127.0.0.1" and accepting \tTCP/IP connections on port 5432? 

我检查了conn_params字典,它包含正确的用户名和密码。 我的pg_hba.conf看起来像这样(我在Ubuntu 9.04服务器上有相同的确切configuration,其中一切正常工作):

 local all postgres ident local all all md5 host all all 127.0.0.1/32 md5 host all all ::1/128 md5 

我究竟做错了什么?

其中一个常见错误是以纯文本forms指定密码,而根据您的pg_hba.confconfiguration,它应该以md5的forms提供。
使用它的md5更新configuration文件中的密码,然后重试。 你可以使用任何MD5发生器,就像这个 。