前ページに引き続き、DAViCAL サーバーの環境設定を行います。DAViCAL はHTTPプロトコルを拡張したファイル共有機能である WebDAV と PostgreSQL データベースとの橋渡しを行いカレンダー情報の共有を行います。そのため、環境設定の大半はPostgreSQLサーバーと Apache Web サーバーの設定によって行う事になります。
作成した davical データベースのアクセス制限を行います。セキュリティにも関わってきますので注意が必要です。ここでは既に PostgreSQL サーバーを運用している事を前提に説明します。初期PostgreSQLのセットアップはマニュアルを参照してください。
また PostgreSQL サーバーとCalDAVホストが同一で、ファイアウォール(iptables)で PostgreSQL が使用するポートが遮断されている環境を想定しています。環境に応じて設定してください。
PostgreSQL DBサーバーへのアクセス制限は /var/lib/pgsql/data/pg_hda.conf で行います。一時的に local に対して無条件(trust)で PostgreSQL への接続を許可するように /var/lib/pgsql/data/pg_hda.conf を以下のように修正しまします。
#local all all md5 ← 一時的にコメント
local all all trust ← 追記
変更内容を反映させるため、以下のコマンドを実行します。
Apache と PostgreSQL が同一ホストである事を前提とした場合、TCPソケットで指定する方法もあります。(こちらの方がいいかも)
host all all 127.0.0.1/32 trust
TCP/IPソケット接続(上記設定)を有効にするには postgres.conf の listen_addresses を有効にする必要があります。(PostgreSQL-7.x の tcpip_socket に該当)
#listen_addresses = 'localhost'
↓
listen_addresses = 'localhost'
'localhost' と指定した場合、127.0.0.1(ループバックアドレス)、つまり、自分自身のみに対してTCP/IP 接続を待ち受けます。listen_addresses を変更した場合、PostgreSQL を再起動する必要があります。
詳しくは 8.1 マニュアルを参照して下さい。該当ページは 第 20章クライアント認証 になります。
CentOS で PostgreSQL をパッケージでインストールしている場合、PostgreSQL は Linux アカウント postgres ユーザー権限で動作しています。PostgreSQL データベースユーザーは慣例として postgres であると仮定しています。
PostgreSQL を実行している Linux ユーザー postgres に切り替えます。
postgres ユーザーで rscds (DAViCAL) 初期化スクリプトを実行します。
Perl YAML library が使えない旨のエラーが出るのですが、データベース、ユーザーは作成されていました。(完全かどうかは不明) 一応、このままセットアップを進めても使えています。
Web サイトにカレンダーを出力する用途で問題が起きる可能性があります。特に必要としない機能なので未確認です。
最後にブラウザで接続した場合の管理者権限のアカウント情報、admin と パスワードが表示されていますので、メモしてください。このアカウントは DAViCAL システムにブラウザでログインするための管理者アカウントです。
ユーザー管理や共有管理を行う際に必要なアカウントになります。admin ユーザーのパスワードは DAViCAL システムにログイン後に変更する事が出来ます。この作業でデータベース davical と、このデータベース用の posgresql (db)ユーザー davical_dba と davical_app が作成されます。
ドキュメントでは db ユーザーを事前に作成するようになっていますが、rscds-0.9.5-2.noarch.rpm のスクリプトでは適切な権限を持つユーザーも作成されています。
アンインストールする場合、以下の要領で create-database.sh で作成された情報を削除する必要があります。
何らかのエラーにより、再度 create-database.sh を実行する場合も一度、削除してから実行してください。
create-database.sh 実行前に修正した local all all trust (pg_hda.conf) ではセキュリティ上好ましくありませんので戻しておきます。
/var/lib/pgsql/data/pg_hda.conf
local davical davical_dba trust
local davical davical_app trust ← これがいるのかどうかは良く分からない
local all all md5
この例では、Unix ソケットによる全てのユーザーの接続に対し、md5 パスワード認証を求めます。例外として davical_dba ユーザーが davical データベースへ接続する場合は認証を求めない設定です。
設定ファイルを再読み込みします。
以上でデータベース周辺の設定はおしまいです。設定例ですので、そのまま写さないで、それぞれのポリシに応じて設定してください。
CentOS-4.x のインストール直後の PostgreSQL の設定は ident sameyuser だったと思います。 http://www.postgresql.jp/document/pg810doc/html/auth-methods.html#AUTH-IDENT
続いて Apache の公開設定と DAViCAL の設定ファイルを作成します。