|
View:
New views
7 Messages
—
Rating Filter:
Alert me
|
|
|
[PHP-users 34678] PostgreSQLへの接続が確立できない初めて質問します、那須野と申します。
長文ですみません。 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 mailing list PHP-users@... http://ml.php.gr.jp/mailman/listinfo/php-users PHP初心者のためのページ - 質問する前にはこちらをお読みください http://oldwww.php.gr.jp/php/novice.php3 |
|
|
[PHP-users 34680] Re: PostgreSQLへの接続が確立できない石井と申します。
> 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@... http://ml.php.gr.jp/mailman/listinfo/php-users PHP初心者のためのページ - 質問する前にはこちらをお読みください http://oldwww.php.gr.jp/php/novice.php3 |
|
|
|
|
|
[PHP-users 34683] Re: PostgreSQLへの接続が確立できないということは、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@... > http://ml.php.gr.jp/mailman/listinfo/php-users > PHP初心者のためのページ - 質問する前にはこちらをお読みください > http://oldwww.php.gr.jp/php/novice.php3 PHP-users mailing list PHP-users@... http://ml.php.gr.jp/mailman/listinfo/php-users PHP初心者のためのページ - 質問する前にはこちらをお読みください http://oldwww.php.gr.jp/php/novice.php3 |
|
|
[PHP-users 34686] Re: PostgreSQLへの接続が確立できない那須野です。
ありがとうございました! そのセンで調べてみます。 Tatsuo Ishii さんは書きました: > ということは、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@... >> http://ml.php.gr.jp/mailman/listinfo/php-users >> PHP初心者のためのページ - 質問する前にはこちらをお読みください >> http://oldwww.php.gr.jp/php/novice.php3 > PHP-users mailing list PHP-users@... http://ml.php.gr.jp/mailman/listinfo/php-users PHP初心者のためのページ - 質問する前にはこちらをお読みください http://oldwww.php.gr.jp/php/novice.php3 |
|
|
[PHP-users 34689] Re: PostgreSQLへの接続が確立できない他のWeb系の php からだとうまくいっているのでしたら別ですが、 postgresqlのユーザーとして apache が登録されていますか? あまりに基本的な確認ですみません。 ----- Original Message ----- From: "NASUNO Isao" <isao.nasuno@...> To: <php-users@...> Sent: Wednesday, August 05, 2009 9:13 AM Subject: [PHP-users 34686] Re: PostgreSQLへの接続が確立できない > 那須野です。 > > ありがとうございました! > そのセンで調べてみます。 > > > Tatsuo Ishii さんは書きました: >> ということは、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@... >>> http://ml.php.gr.jp/mailman/listinfo/php-users >>> PHP初心者のためのページ - 質問する前にはこちらをお読みください >>> http://oldwww.php.gr.jp/php/novice.php3 >> > _______________________________________________ > PHP-users mailing list PHP-users@... > http://ml.php.gr.jp/mailman/listinfo/php-users > PHP初心者のためのページ - 質問する前にはこちらをお読みください > http://oldwww.php.gr.jp/php/novice.php3 > _______________________________________________ PHP-users mailing list PHP-users@... http://ml.php.gr.jp/mailman/listinfo/php-users PHP初心者のためのページ - 質問する前にはこちらをお読みください http://oldwww.php.gr.jp/php/novice.php3 |
|
|
[PHP-users 34691] Re: PostgreSQLへの接続が確立できない那須野です。
> 他のWeb系の php からだとうまくいっているのでしたら別ですが、 > postgresqlのユーザーとして apache が登録されていますか? PostgreSQLユーザには登録しておらず、接続時にユーザ名を指定しています。 相変わらず、件のサーバが手元にないのですが、 CentOS5.2のテスト環境でSELinuxをenforcingにしてみたら、同じ現象が出ました。 本機も enforcing に設定されていることが分かりましたので、 石井さんのご指摘のとおりなのだと思います。 皆さま、ご指摘ご助言、ありがとうございました。 ml1@... さんは書きました: > > 他のWeb系の php からだとうまくいっているのでしたら別ですが、 > postgresqlのユーザーとして apache が登録されていますか? > > あまりに基本的な確認ですみません。 > > > ----- Original Message ----- From: "NASUNO Isao" <isao.nasuno@...> > To: <php-users@...> > Sent: Wednesday, August 05, 2009 9:13 AM > Subject: [PHP-users 34686] Re: PostgreSQLへの接続が確立できない > > >> 那須野です。 >> >> ありがとうございました! >> そのセンで調べてみます。 >> >> >> Tatsuo Ishii さんは書きました: >>> ということは、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@... http://ml.php.gr.jp/mailman/listinfo/php-users PHP初心者のためのページ - 質問する前にはこちらをお読みください http://oldwww.php.gr.jp/php/novice.php3 |
| Free embeddable forum powered by Nabble | Forum Help |