※NextCloudのWebサービスに移行しております。
スケジューラを統一したいよねー
かつて流行ったPDAと呼ばれる携帯情報端末。IBMのPalm,SHARPのZaurus,ソニーのCLIE等、昔は一世を風靡しましたね。で、あの頃考えていた想い。う~ん、いろんなスケジューラソフトがいっぱい。なんとか統一出来ないもんかなぁ。ということで、昔はOutlookとの連動機能を備えた機種が多かったりしました。でもおいちゃんは、Outlookなんて使わないのよ。なぜならば、有償で、ソフトも買えないし、またWindows専用じゃないですか。なもので、マルチプラットフォームであり、スケジューラソフトとしてとっても有名なiCalenderとも同期できる、Thunderbird+Lightningを使用しておるのです。
で、カレンダーファイルを共有ディスクで共有して、一応目的は達成していたのですが、ココで問題が。会社でもスケジューラってよく使うのですが、出来ればこいつとも同期したいよねぇ。さらに、今話題のスマートフォン。AndroidケータイのGoogleカレンダー連携ってとても便利そうですよね。しかし、Googleには情報はあまり置きたくない。それに変わる物になんとか置き換えて、自宅で共有したい。この欲求を満たすツールが~、あったのです。Caldavサーバ。
このCaldavサーバは、iCalenderサーバとしてMacOSXにも採用されている、スケジューラ共有用のプロトコル。Webサーバを用いて共有できるので、非常に便利です。このCaldavサーバを実現してくれるのが、Davicalというツールです。それではインストールと設定をしてまいりましょう。
インストール
まず、Davicalは通常のPortageパッケージツリーには入っておりません。このために、Portageアンオフィシャルツリー管理で悩むで示した、OverlayPortageを設定しておいてあげてください。sunrisePortageです。
また、PHPに以下のエクステンションが必要。USEフラグを追加してやって。
dev-lang/php ...pdo postgres
で、以下を実行
# emerge davical postgresql-server
Postgresqlの設定
まずはデフォルトのままpostgresqlを設定&起動してあげます。
# merge --config postgresql-server # /etc/init.d/postgresql-8.4 start
Davical用のデータベース設定
# su - postgres # /usr/share/webapps/davical/<version>/sqlscripts/create-database.sh
create-database.shを実行した際に、最後にdavical管理用のユーザ(admin)とパスワードが表示されます。まずは控えておいてください。
Postgresqlのアクセス権限の設定
/var/lib/postgresql/8.4/data/配下に、pg_hba.confがあります。こいつを編集してやりましょう。 # local all all trust ←コメント化 host davical davical_app 127.0.0.1/32 trust
まず、1行目はコメントアウトします。ローカルからのアクセスは当初全てOKにしていたのを停止します。さらに、davicalのデータベースへのアクセスは、ローカルホストからのみ特定ユーザから許容します。
そして、postgresqlを再起動。
# /etc/init.d/postgresql-8.4 restart
Davicalの動作用設定
/etc/davicalに、設定ファイルが格納されています。example-config.phpをコピーして作成しますが、アクセスするサーバの名前を着けたconfigファイルにします。例えば、http://example.com/davicalだとしたら、example.com-conf.phpって名前でコピーをするのですよ。 で、以下の項目を設定してあげましょう。
$c->pg_connect[] = "dbname=davical host=localhost user=davical_app"; $c->system_name = "DAViCal CalDAV Server"; $c->admin_email ="root@example.com'; $c->locale_path = '/usr/share/webapps/davical/<version>/hostroot/locale';
さて、さらに/var/www/localhost/davicalに.htaccessがあります。こんな感じで設定してあげると良いかなー。
<Limit MOVE COPY CONNECT> Options FollowSymLinks Order allow,deny Allow from all </Limit> php_value include_path ".:/usr/share/php5: /usr/share/php: /usr/share/php5/awl: /usr/share/webapps/davical/<version>/hostroot/inc/"
include_pathは改行いれないでどうぞ、かな。
ユーザ登録など
で、Davicalにアクセスしてみましょう。http://<アクセス用のURL>/davical/

こんな画面になりましたよね。さて、create-database.shを実行したときに出てきたadminとパスワードを入力して、レッツログイン! ユーザ管理→自分の詳細を閲覧する(日本語ロケールの場合)で

こんな画面になりますです。adminさんのユーザ名/パスワードは変更しておいた方がいいっすよ。で、Davical(0.9.9.4)では、様々なユーザのことを、『プリンシパル』と呼んでいます。さて、ユーザのプリンシパルを追加いたしましょう。
ユーザ機能→プリンシパルを作成する を選択。新たなユーザさんを作ってあげましょう。大体わかるとおもうのですが、いまいち謎な項目をちょっと解説
- 日付形式スタイル
- ISO形式を使用すると良いですね
- プリンシパルタイプ
- 「人物」は普通のユーザ、「グループ」は複数のグループを管理するための代表ユーザさんです。グループを使用するユースケースは、各ユーザにDavicalのWebインタフェースを使用させない場合。『アクティブ』にチェックをつけると、Webインタフェースで自分の権限をユーザに編集させることが出来ます。各ユーザにいじらせたくなく、かつユーザがいっぱいいる場合、グループ代表者を作って、その人に管理を代行させることができるのですねー。さて、「資源」これ、なに?私は一応、共有情報を入れるユーザにしてあります。例えば休日情報や、イベント情報など。このカレンダをThunderbirdのアドレス帳にのっけとくと、自分で入れなくても共通情報を見ることができる、みたいなね。
- Privileges granted to All Users
- 他のユーザにデフォルトで許す権限の一覧。自分のカレンダのどの情報までを開示するか、です。
ちなみに、Privileges granted to All Usersの条件をさらに上書きして、特定ユーザに許す権限も指定できます。「自分の詳細を閲覧する」メニューで出てくる情報内の『プリンシパル許可』ですね。で、どのユーザに、どこまでを見せるかが設定できます。
これは、他のユーザが自分のカレンダ以外に、他人のカレンダを参照情報に追加した場合、スケジュールを参照する/追加する/一緒に出て、と依頼するなどの行為が可能になります。便利ですねー。
使ってみる
私は家ではThunderbird+Lightningで使用しています。他にはSunbirdってのもありますが、Sunbirdは開発停止しちゃってます。メールとは別にスケジュール管理したい場合はSunbirdクライアントが便利なんですけどね。私は、会社ではSunbirdを使用してます。さて、設定をやってみましょう。
Attach file:




Page Info | |
---|---|
Page Name : | Gentoo Linuxな生活/Davicalでスケジュール共有で悩む |
Page aliases : | None |
Page owner : | maruo |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | No one |