- PR -

apache+postgreSQL+mod_auth_pgsql が動きません

1
投稿者投稿内容
Psyduck
常連さん
会議室デビュー日: 2004/01/18
投稿数: 39
投稿日時: 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/11/09
投稿数: 86
お住まい・勤務地: 千葉県内
投稿日時: 2004-12-03 08:08
おはようございます。

引用:

Psyduckさんの書き込み (2004-12-03 07:36) より:
(4) PostgreSQL
PostgreSQLのインストールも、モジュールに添付のマニュアルを見て行いました。
すべてディフォルトの設定です。



おしい! インストールだけでなく、設定方法までマニュアルを読みましょう。
デフォルトでは、ネットワークからのアクセスは受付ません。
(ためしに、$netstat -an で5432ポートは開いてますか?)

postgresql.confの
tcpip_socket = false
を「true」にして、再起動。

エラー内容で検索かけると、大概の答えはすぐ見つかると思うんだが...

[ メッセージ編集済み 編集者: めぐ 編集日時 2004-12-03 08:16 ]
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2004-12-03 08:36
「エラーメッセージの最後の2行はポート開いてますか?」っていう内容ですが、
リモートからの接続可否確認を簡単に行えるツールとして PsqlEdit というのがあります。

http://www.hi-ho.ne.jp/a_ogawa/psqledit/

SQL の実行結果を表形式で表示できたりと、
何かと便利なツールだと思いますので、試してみてください。
めぐ
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 86
お住まい・勤務地: 千葉県内
投稿日時: 2004-12-03 09:20
あと、pg_hba.conf をマニュアルを参考に設定してください。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-12-03 09:50
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=14080&forum=10&start=8
Psyduck
常連さん
会議室デビュー日: 2004/01/18
投稿数: 39
投稿日時: 2004-12-03 11:29
めぐさん、あんとれさん、コブラさん
みなさま、お忙しいところ、アドバイスいただき
どうもありがとうございました。

postgresql.confに
tcpip_socket = true
を追加して再起動したところ、問題なく動きました。

また、pg_hba.conf の設定を行いPsqlEditからアクセスできました。
便利そうなツールですね。

助かりました。本当にどうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)