[PHP-users 34683] Re: PostgreSQLへの接続が確立できない
Tatsuo Ishii
t-ishii @ sra.co.jp
2009年 8月 5日 (水) 00:41:23 JST
ということは、SELinux絡みのような感じですね。
SELinuxは詳しくないのですが、たとえばこれが参考にならないでしょうか。
http://slashdot.jp/~shimashima/journal/450453?m=1
--
Tatsuo Ishii
SRA OSS, Inc. Japan
> 不勉強で、UNIX ドメインソケットについてよく分からないのですが、
> PHPの設定などとは関係なく、PostgreSQLの設定ということでしょうか。
> それらしい設定をPostgreSQLについて見てみると(今、マシンが手元にないのですが)、
>
> - /tmp/.s.PGSQL...というファイルはできていました。
> これが、UNIXドメインソケットを使っているということでしょうか。
>
> - /tmp は、drwxrwxrwt になっていたと思います。
> なお、HTTPDはapacheユーザで起動していますが、ログインできないユーザとして
> 定義しています。
>
> - pg_hba.conf
> local all all trust としています。
>
>
> Tatsuo Ishii さんは書きました:
> > 石井と申します。
> >
> >> 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/インタラクティブモード の両者で実行した違いは、
> >> 環境変数以外には違いがありませんでした。
> >
> > おそらくUNIXドメインソケットをソケットを作れる/作れないという、実行ユー
> > ザ権限の問題だと思います。ソケットを作るためのディレクトリ(デフォルト
> > なら/tmp)のパーミッションはどうなっていますか?
> >
> > ちなみにJavaはINETドメインソケットを使っているので、今回のエラーは関係
> > ないです。
> > --
> > Tatsuo Ishii
> > SRA OSS, Inc. Japan
> >
>
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
PHP-users メーリングリストの案内