カレンダー情報のネットワーク上で共有するため、現在は、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