カレンダー情報のネットワーク上で共有するため、現在は、WebDAV上に.ics ファイルを 置いて対応をしているけれど、最近はもう少しプロトコルのしっかりした、CalDAVがでてきて、 Thunderbird+Lightning や Mac+iCalなどで利用できるようになってきた。
んで、CalDAVを Apache+PHPで利用できるようにした、davical が、Debian を中心に 開発が進んでいるようなので、試してみた。 しかしながら、現状ではPostgreSQLのデータベースの漢字コードの不整合で、 ちょっと断念中。だけど、次の人のために、メモを残す。
元記事は、CalDAVによるスケジュール管理のページ。
まずは、davicalをインストールして、Apache2+SSLのための設定ファイルの作成。 自宅サーバでは、パッケージ化されたスクリプト系は、/var/www-support/にまとめているので、
# aptitude install davical # vi /etc/apache2/sites-ssl.d/davical.conf
Alias /davical/ /var/www-support/davical/ <Location /var/www-support/davical> DAV on </Location> <Directory /var/www-support/davical/> SSLRequireSSL php_value include_path "/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" order deny,allow deny from all allow from localhost </Directory>
必要なリンクを張る。 ホスト名に応じた、"ホスト名-conf.php"に設定を記載しておく。
# ln -sf /usr/share/davical/htdocs /var/www-support/davical # /etc/init.d/apache2 restart # vi /etc/davical/www.example.co.jp-conf.php
PHPからPostgreSQLにアクセスするための設定など。 記載元のページでは、PostgreSQLのサーバポートが5432だけど、 最近は、5433が標準。 コードは示さないけど、あらかじめ /usr/share/davical/dba/create-database.sh に、 ポート指定のオプションを追加。 "createdb --encoding UTF8"といった部分を書き換えて、 実行した。
# cd /usr/share/davical/dba/ # ./create-database.sh
<?php $c->domain_name = "www.example.co.jp" ; $c->admin_email = "webadmin@www.example.co.jp" ; $c->system_name = "DAViCal Server Administration" ; $c->collections_always_exist = true ; $c->enable_row_linking = true ; // $c->default_locale = "ja_JP.UTF-8" ; $c->pg_connect[] = 'dbname=davical port=5433 user=admin password=xxxx' ; ?>
このあと、"https://www.example.co.jp/davical/" をブラウザでアクセスするけど、 エラーが出ている...原因究明ができていないので、ひとまずここまで。
# su - postgres $ createuser -p 5433 -AdPE davical Password: xxxx Re enter Password: xxxx