Back to page

− Links

 Print 

Gentoo Linuxな生活​/Davicalでスケジュール共有で悩む :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/Davicalでスケジュール共有で悩む

NextCloudのWebサービス[1]に移行しております。

Table of contents
  • スケジューラを統一したいよねー
  • Davical設定
    • インストール
    • 設定
      • Postgresqlの設定
      • Davical用のデータベース設定
      • Postgresqlのアクセス権限の設定
      • Davicalの動作用設定
      • ユーザ登録など
  • 使ってみる
    • 基本設定
    • カレンダ情報のインポートとか

スケジューラを統一したいよねー anchor.png[2]

かつて流行ったPDAと呼ばれる携帯情報端末。IBMのPalm,SHARPのZaurus,ソニーのCLIE等、昔は一世を風靡しましたね。で、あの頃考えていた想い。う~ん、いろんなスケジューラソフトがいっぱい。なんとか統一出来ないもんかなぁ。ということで、昔はOutlookとの連動機能を備えた機種が多かったりしました。でもおいちゃんは、Outlookなんて使わないのよ。なぜならば、有償で、ソフトも買えないし、またWindows専用じゃないですか。なもので、マルチプラットフォームであり、スケジューラソフトとしてとっても有名なiCalenderとも同期できる、Thunderbird+Lightningを使用しておるのです。

で、カレンダーファイルを共有ディスクで共有して、一応目的は達成していたのですが、ココで問題が。会社でもスケジューラってよく使うのですが、出来ればこいつとも同期したいよねぇ。さらに、今話題のスマートフォン。AndroidケータイのGoogleカレンダー連携ってとても便利そうですよね。しかし、Googleには情報はあまり置きたくない。それに変わる物になんとか置き換えて、自宅で共有したい。この欲求を満たすツールが~、あったのです。Caldavサーバ。

このCaldavサーバは、iCalenderサーバとしてMacOSXにも採用されている、スケジューラ共有用のプロトコル。Webサーバを用いて共有できるので、非常に便利です。このCaldavサーバを実現してくれるのが、Davicalというツールです。それではインストールと設定をしてまいりましょう。

Page Top

Davical設定 anchor.png[3]

Page Top

インストール anchor.png[4]

まず、Davicalは通常のPortageパッケージツリーには入っておりません。このために、Portageアンオフィシャルツリー管理で悩む[5]で示した、OverlayPortageを設定しておいてあげてください。sunrisePortageです。

また、PHPに以下のエクステンションが必要。USEフラグを追加してやって。

dev-lang/php ...pdo postgres

で、以下を実行

# emerge davical postgresql-server
Page Top

設定 anchor.png[6]

Page Top

Postgresqlの設定 anchor.png[7]

まずはデフォルトのままpostgresqlを設定&起動してあげます。

# merge --config postgresql-server
# /etc/init.d/postgresql-8.4 start
Page Top

Davical用のデータベース設定 anchor.png[8]

# su - postgres
# /usr/share/webapps/davical/<version>/sqlscripts/create-database.sh

create-database.shを実行した際に、最後にdavical管理用のユーザ(admin)とパスワードが表示されます。まずは控えておいてください。

Page Top

Postgresqlのアクセス権限の設定 anchor.png[9]

/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
Page Top

Davicalの動作用設定 anchor.png[10]

/etc/davicalに、設定ファイルが格納されています。example-config.phpをコピーして作成しますが、アクセスするサーバの名前を着けたconfigファイルにします。例えば、http://example.com/davical[11]だとしたら、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は改行いれないでどうぞ、かな。

Page Top

ユーザ登録など anchor.png[12]

で、Davicalにアクセスしてみましょう。http://<アクセス用のURL>/davical/

davical.png

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

davical2.png

こんな画面になりますです。adminさんのユーザ名/パスワードは変更しておいた方がいいっすよ。で、Davical(0.9.9.4)では、様々なユーザのことを、『プリンシパル』と呼んでいます。さて、ユーザのプリンシパルを追加いたしましょう。

ユーザ機能→プリンシパルを作成する を選択。新たなユーザさんを作ってあげましょう。大体わかるとおもうのですが、いまいち謎な項目をちょっと解説

日付形式スタイル
ISO形式を使用すると良いですね
プリンシパルタイプ
「人物」は普通のユーザ、「グループ」は複数のグループを管理するための代表ユーザさんです。グループを使用するユースケースは、各ユーザにDavicalのWebインタフェースを使用させない場合。『アクティブ』にチェックをつけると、Webインタフェースで自分の権限をユーザに編集させることが出来ます。各ユーザにいじらせたくなく、かつユーザがいっぱいいる場合、グループ代表者を作って、その人に管理を代行させることができるのですねー。さて、「資源」これ、なに?私は一応、共有情報を入れるユーザにしてあります。例えば休日情報や、イベント情報など。このカレンダをThunderbirdのアドレス帳にのっけとくと、自分で入れなくても共通情報を見ることができる、みたいなね。
Privileges granted to All Users
他のユーザにデフォルトで許す権限の一覧。自分のカレンダのどの情報までを開示するか、です。

ちなみに、Privileges granted to All Usersの条件をさらに上書きして、特定ユーザに許す権限も指定できます。「自分の詳細を閲覧する」メニューで出てくる情報内の『プリンシパル許可』ですね。で、どのユーザに、どこまでを見せるかが設定できます。

これは、他のユーザが自分のカレンダ以外に、他人のカレンダを参照情報に追加した場合、スケジュールを参照する/追加する/一緒に出て、と依頼するなどの行為が可能になります。便利ですねー。

Page Top

使ってみる anchor.png[13]

私は家ではThunderbird+Lightningで使用しています。他にはSunbirdってのもありますが、Sunbirdは開発停止しちゃってます。メールとは別にスケジュール管理したい場合はSunbirdクライアントが便利なんですけどね。私は、会社ではSunbirdを使用してます。さて、設定をやってみましょう。

Page Top

基本設定 anchor.png[14]

Thunderbirdのファイルメニュー→新規作成→カレンダーを選びます。

newcalender2.png

「ネットワークのサーバに保存する」を選んで次へ

newcalender.png

Caldavを選んで、「場所」にURLを入力します。この時Davcalカレンダーへのアクセスパスはhttp://<サーバドメイン名>/davical/caldav.php/<user名>/home/と指定します。気をつけてね。これで次へを指定すると、ユーザ/パスワードを聞かれます。入力するとThunderbirdに保存されているスケジュールが表示されます。

Page Top

カレンダ情報のインポートとか anchor.png[15]

例えば、今までローカルで作ってたスケジュールを、Davicalへインポートしたいなぁ、なんてあるでしょうね。「予定とToDo」メニューに、「カレンダーをエクスポート」ってのがあります。エクスポートするカレンダーを選んで、ICSファイルに吐き出してあげます。で、このICSファイルを「ファイルからインポート」でインポートしてあげましょう。あっさりです。

ちなみにうちでは、同様に、「休日」やら、「イベント情報」やらをカレンダ作成して追加しています。活用法はいろいろありそうですね♪プロジェクト業務などで活用できると便利そうなんだけどなぁ…


Last-modified: 2018-02-19 (Mon) 22:25:07 (JST) (1631d) by maruo