Skocz do zawartości

Postgresql Z Pythona Przez Mod_python


jjj

Rekomendowane odpowiedzi

Witam,

od paru dni walczę ze współdziałaniem bazy na PostgreSQL, interfejsu WWW serwowanego przez Apache, i obsługującego oraz generującego go programu w Pythonie. Skrypt uruchamia się przez mod_python Apache'a, a do bazy wchodzi przez moduł pg z PygreSQL.

Chodzi o to, że ww kombinacja nie za bardzo działa. Kod Pyhona wywołany z shella dostaje się do bazy. Natomiast przy wywołaniu z mod_python otrzymuję

[error] [client $(IP)] InternalError: could not connect to server: Permission denied\n\tIs the server running on host "$(IP)" and accepting\n\tTCP/IP connections on port 5432?\n
[notice] mod_python (pid=23822, interpreter='$(HOST)'): Importing module '/var/www/html/index.py'
[error] [client $(IP)] mod_python (pid=23822, interpreter='$(HOST)', phase='PythonHandler', handler='index'): Application error
[error] [client $(IP)] ServerName: '$(HOST)'
[error] [client $(IP)] DocumentRoot: '/var/www/html'
[error] [client $(IP)] URI: '/index.py'
[error] [client $(IP)] Location: None
[error] [client $(IP)] Directory: '/var/www/html/'
[error] [client $(IP)] Filename: '/var/www/html/index.py'
[error] [client $(IP)] PathInfo: ''
[error] [client $(IP)] Traceback (most recent call last):
[error] [client $(IP)]   File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch\n    default=default_handler, arg=req, silent=hlist.silent)
[error] [client $(IP)]   File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target\n    result = _execute_target(config, req, object, arg)
[error] [client $(IP)]   File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target\n    result = object(arg)
[error] [client $(IP)]   File "/var/www/html/index.py", line 6, in ectsconnect\n    return pg.connect($(DB), '$(IP)', 5432, '', None, $(USER), $(PASSWORD))
[error] [client $(IP)] InternalError: could not connect to server: Permission denied\n\tIs the server running on host "$(IP)" and accepting\n\tTCP/IP connections on port 5432?\n

Nie za bardzo rozumiem dlaczego, w końcu baza i kod są poprawne, a innych objawów w logach nie ma. Proszę o pomoc, jeśli kto ćwiczył podobne rozwiązanie.

Odnośnik do komentarza
Udostępnij na innych stronach

Pewnie że włączony. Szukałem śladów SELinuxa w /var/log/messages zapominając, że one od pewnego czasu piszą się do /var/log/audit/audit.log

Taki czy siak, dzięki.

 

<edit timestamp="1210855285">

Udało się odblokować przez

/usr/sbin/setsebool httpd_can_network_connect 1

czyli ,,wszystko albo nic''. Czy istnieje bardziej selektywna metoda?

</edit>

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...