[PHP-users 34678] PostgreSQLへの接続が確立できない

NASUNO Isao isao.nasuno @ ctc-g.co.jp
2009年 8月 4日 (火) 17:58:14 JST


初めて質問します、那須野と申します。
長文ですみません。

RedHat5の上で、Apache+PostgreSQL+PHPの開発をしています。
PostgreSQLへの接続が確立できないという状況に陥り、
助言を求めたくて投稿した次第です。
CGIで動作するPHPだけが、PostgreSQLに接続できない状態です。


●バージョン等
  - Apache 2.2.3 (pre-install)
  - PHP 5.2.5
  - PostgreSQL 8.3.5 (自分でコンパイル)

  PHPは、CGI版としてコンパイルされているもので、
  (株)オークニーさんが、MapServerという製品のCGIとして販売しているものです。
  通常のCGI版と、特に変わりはありません。

●ソース
以下のような簡単なソースでテストしています。
テーブルのレコード数を出すだけです。
----------------------------------------------------------------------------
<?php
$link = pg_connect("dbname=DBNAME user=USER password=PASS port=xxxx");
$rs=pg_exec("select col from table");
$ct=pg_numrows($rs);
print($ct);
pg_close($link);
?>
----------------------------------------------------------------------------

●状況
上記のソースをCGIとして実行させると、pg_connect() 実行時に、
「Unable to connect to PostgreSQL server: could not create socket: Permission denied」
というエラーが発生します。

CGI版PHPを、インタラクティブモードで(-a オプションで)、
まったく同じ内容を実行させると、正常動作します。
なので、PostgreSQL側には問題なさそうです。
実際、同じマシンでJAVA/JSPも使っているのですが、javaからの接続はできます。

Apache実行ユーザの環境と、インタラクティブモードで実行したユーザの環境の違いと
思うのですが、どう解決してよいのかわかりません。
phpinfo(); を、CGI/インタラクティブモード の両者で実行した違いは、
環境変数以外には違いがありませんでした。

アドバイスいただけないでしょうか。
よろしくお願いいたします。






PHP-users メーリングリストの案内