Ubuntu 9.10で DAViCAL 9.7.0 を試す
infoScoop CalendarはCalDAVサーバーとして前の日記でも紹介したBedeworkを採用していますが、CalDAVサーバーの選定にはいくつかのサーバーを試しました。
試したのは、Bedeworkの他にPHPのCalDAVサーバー実装のDAViCal、Chandler Server(cosmo)、Dawing (AppleのCALDAVサーバー)を試しました。
せっかくなので、DAViCalのインストールについて改めてまとめておこうと思います。
OSはUbunutu9.10インストールしてみました。
モジュールのダウンロードはSourceForgeからできます。2010年4月22日現在の最新は0.9.8.4です。
DAViCalを採用しなかった理由には、CalDAV Schedulingが未実装であることとが大きかったわけですが、開発サイトを見ていたら0.9.9で実装されるらしいです。
この記事も0.9.9がリリースされてから書いた方が良かったような気がしますが、またリリースされたら改めてまとめたいと思います。ちなみに、CalDAV Schedulingはまだドラフトで、Google CalendarのCalDAVも実装されていないですし、今後実装が進むかどうかは、まだ微妙なところかもしれません。
では、インストールについてまとめて行きます。
前提条件
前提条件は、以下のソフトウェアが必要になります。
予めインストールしておいてください。
- Apache2
- PHP5.1以上($apt-get install php5-pgsql)
- PostgreSQL 8.1以上(sudo apt-get install postgresql)
Ubuntu 9.10では、Apacheは2.2、PHPは5.2.10、PostgreSQLは8.4が入ります。
データベースの初期化バッチで必要な、以下のライブラリもインストールしておく必要があります。
$sudo apt-get install libdbi-perl libdbd-pg-perl libyaml-perl pwgen
用意ができたら、DAViCalをセットアップしていきます。
DAViCalのインストール
ダウンロードサイトから入手できるモジュールの方が新しいですが、Ubuntuなので他のパッケージ同様apt-getでインストールしてしまいます。
$ sudo apt-get install davical
ubuntu 9.10では、0.9.7.0が入りました。
データベースの準備
次に、DAViCal用のデータベースを用意します。
$ sudo -su postgres $ /usr/share/davical/dba/create-database.sh
"davical"というデータベースが作成されます。
シェルが終わると、データベースユーザ"davical_dba"と"davical_app"にデータベース"davical"へのアクセスを許可するようにph_hga.confに設定せよ。と言われます。
ここは、INSTALLテキストに書いていないので注意です。サイトのインストールガイドにはちゃんと書いてありました。
以下のエントリーをpg_hba.confファイルに追加します。
$sudo vi /etc/postgresql/8.4/main/pg_hba.conf
# local DATABASE USER METHOD [OPTIONS] # host DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] # hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] # hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] local davical davical_app trust local davical davical_dba trust #
インストールガイドには先頭に追加しろと書いてあったので、"# hostnossl DATABASE.."と書いてある後ろに追加してみました。
PostgreSQL再起動します。
$sudo /etc/init.d/postgresql-8.4 restart
Apacheの設定
次に、INSTALLドキュメントの通りApacheのVirtual Hostを設定します。
$ sudo vi /etc/apache2/sites-available/default
以下はドキュメントの設定をコピペして、IPアドレスだけ変えました。
# # Virtual Host def for Debian packaged DAViCal <VirtualHost 192.168.1.2 > DocumentRoot /usr/share/davical/htdocs DirectoryIndex index.php index.html ServerName davical.example.net ServerAlias calendar.example.net Alias /images/ /usr/share/davical/htdocs/images/ php_value include_path /usr/share/davical/inc:/usr/share/awl/inc php_value magic_quotes_gpc 0 php_value register_globals 0 php_value error_reporting "E_ALL & ~E_NOTICE" php_value default_charset "utf-8" </VirtualHost>
a2ensiteで設定を有効にします。
$ sudo a2ensite
DAViCalの設定ファイルを作成
次に、DAViCalの設定ファイルを作成します。
設定ファイルは、/etc/davical/
$ sudo vi /etc/davical/davical.example.net-conf.php
<?php $c->pg_connect[] = 'dbname=davical user=davical_app'; ?>
以上で、セッティングは終了です。
動作確認
http://192.168.1.2/にアクセスしてみます。
以下のようなログイン画面が表示されればセットアップは成功です。
デフォルトの管理者ユーザは、"admin"/"Ni4Eo-P<"です。
ユーザの追加は、[Users]タブの[New User]から行えます。
CalDAVのURLは、こちらになります。
http:///caldav.php/ /home
Sunbirdに追加してみます。
Sunbirdの[ファイル]→[新しいカレンダー]→[ネットワークサーバーに保存する]→[CalDAV]と選択して上記のURLを指定します。
繰り返しなどもちゃんと入りました。
空き時間検索はスケジューリングの機能になるのでやはり動かないですね。
データベースの中身を見ると、参加者はLOBデータのiCalのテキストにのみ格納されています。今後、空き時間検索やスケジュールメッセージなど実装することになるとカラムに展開するとかになるんでしょうか。0.9.9はほとんど実装が終わってるようなのでリポジトリ見てみれば良いんですが今日はここまで。