- - PR -
apache+postgreSQL+mod_auth_pgsql が動きません
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-12-03 07:36
こんにちは、Psyduckと言います。いつもお世話になっております。
apacheで、ユーザー認証するメンバー用HPを作成しています。 環境は、RedHat7.3、apache-2.0.52、 postgresql-7.4.6、mod_auth_pgsql-2.0.2b1 です。 現象は、 メンバー制に指定したディレクトリにある index.html にアクセスすると、ユーザー名・パスワードを 要求するウィンドーがポップアップしますが、 正常なユーザー名&パスワードを入力してもエラーが出ます。 エラーログによれば [Thu Dec 02 13:04:10 2004] [error] [client 192.168.1.101] mod_auth_pgsql database connection error reset failed could not connect to server: Connection refused Is the server running on host "localhost" and accepting TCP/IP connections on port 5432? 問題を簡単にするため、LANから同じネットワークにあるサーバに アクセスしています。 サーバは 192.168.1.100 クライアントは 192.168.1.101 です。 クライアントはWindows2000ですが、他のIPのWindowsXPでも同様の結果でした。 httpd.confにおける記述は、VirtualHostディレクティブに 以下のように書いておりますが、VirtualHost以外のところに書いても 結果は同じでした。 <VirtualHost 192.168.1.100:xxx> ServerName xxx.xxx.com DocumentRoot /xxx/wwwroot ServerAdmin webmaster@xxx.com ErrorLog logs/error_log_xxx TransferLog logs/access_log_xxx <Directory "/xxx/wwwroot/xxx/"> Auth_PG_encrypted off AuthName "Enter your username and password." AuthType basic Auth_PG_host localhost Auth_PG_port 5432 Auth_PG_database webmembers Auth_PG_pwd_table employees Auth_PG_uid_field username Auth_PG_pwd_field passwd <Limit POST GET> require valid-user </Limit> </Directory> </VirtualHost> 問題の切り分けになるかと思い 暗号化をオフにしていますが、オンにしても結果は同じです。 Auth_PG_user や Auth_PG_pwd を設定していないのは、 nobodyによるアクセスを想定しているからです。 気になっているところがあります。 (1) PORT httpdのPORTは80以外を指定しており httpd.confにListenを設定しています 5432ではありません。 Auth_PG_port 5432 はわけもわからず、付属のExampleに従っています。 いくつか変えましたが、結果は変わりません。エラーログはPORT番号以外 同じでした。 (2) VirtuslHost VirtualHostを使用しています。 それぞれのサイトはPORTを変えて管理しています。 (3) mod_auth_pgsql-2.0.2b1 mod_auth_pgsql-2.0.2b1 のインストールは、 モジュールに添付のマニュアルに従い、apxsにて行いました。 # cd mod_auth_pgsql-2.0.2b1 # /xxx/apache2/bin/apxs -i -a -c -I /usr/local/pgsql/include -L /usr/local/pgsql/lib -lpq mod_auth_pgsql.c apache再起動時に「libpq.so.3が見つからない」という エラーが出たため、/usr/local/pgsql/lib にあるファイルを すべて apacheのLIBディレクトリにコピーしたところエラーは消えました。 (4) PostgreSQL PostgreSQLのインストールも、モジュールに添付のマニュアルを見て行いました。 すべてディフォルトの設定です。 # useradd -g users postgres # ./configure --with-multibyte=EUC_JP # make # make install # mkdir /usr/local/pgsql/data # chown postgres /usr/local/pgsql/data # su - postgres # /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data # /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & インストール後に、@ITの http://www.atmarkit.co.jp/flinux/php4/php4_2/php4_4.html を見て ユーザーpostgresのホームディレクトリの .bashrc に PATH="$PATH":/usr/local/pgsql/bin export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=$POSTGRES_HOME/data export MANPATH="$MANPATH":$POSTGRES_HOME/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB" を追加しました。 (5) apache apacheのディレクトリは、インストール時に --prefix と --enable-usertrack を使って カスタマイズしています。 (6) ps x # /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & 後にrootにて # ps x としても、それらしいプロセス(postmasterとか)が見つかりません。 コンソールからデータの入力等は出来ます。 (7) データベース webmembers=# grant select on employees to nobody; により、nobodyにアクセス権を与えています このため、httpd.conf には Auth_PG_user Auth_PG_pwd を記述していません。 Auth_PG_user postgres Auth_PG_pwd xxxxxx としても現象は変わりませんでした。 どなたか、何かお気づきの方がいらっしゃいましたら アドバイスを宜しくお願いいたします。m(__)m | ||||
|
投稿日時: 2004-12-03 08:08
おはようございます。
おしい! インストールだけでなく、設定方法までマニュアルを読みましょう。 デフォルトでは、ネットワークからのアクセスは受付ません。 (ためしに、$netstat -an で5432ポートは開いてますか?) postgresql.confの tcpip_socket = false を「true」にして、再起動。 エラー内容で検索かけると、大概の答えはすぐ見つかると思うんだが... [ メッセージ編集済み 編集者: めぐ 編集日時 2004-12-03 08:16 ] | ||||
|
投稿日時: 2004-12-03 08:36
「エラーメッセージの最後の2行はポート開いてますか?」っていう内容ですが、
リモートからの接続可否確認を簡単に行えるツールとして PsqlEdit というのがあります。 http://www.hi-ho.ne.jp/a_ogawa/psqledit/ SQL の実行結果を表形式で表示できたりと、 何かと便利なツールだと思いますので、試してみてください。 | ||||
|
投稿日時: 2004-12-03 09:20
あと、pg_hba.conf をマニュアルを参考に設定してください。
| ||||
|
投稿日時: 2004-12-03 09:50
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=14080&forum=10&start=8
| ||||
|
投稿日時: 2004-12-03 11:29
めぐさん、あんとれさん、コブラさん
みなさま、お忙しいところ、アドバイスいただき どうもありがとうございました。 postgresql.confに tcpip_socket = true を追加して再起動したところ、問題なく動きました。 また、pg_hba.conf の設定を行いPsqlEditからアクセスできました。 便利そうなツールですね。 助かりました。本当にどうもありがとうございました。 |
1