ページへ戻る

− Links

 印刷 

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

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

« Prev[3]  
※[[NextCloudのWebサービス>Gentoo Linuxな生活/連携設定(Webサービス編)]]に移行しております。

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

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

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

*Davical設定 [#i3909806]
**インストール [#qa58672f]
まず、Davicalは通常のPortageパッケージツリーには入っておりません。このために、[[Portageアンオフィシャルツリー管理で悩む>Gentoo Linuxな生活/Portageアンオフィシャルツリー管理で悩む]]で示した、OverlayPortageを設定しておいてあげてください。sunrisePortageです。

また、PHPに以下のエクステンションが必要。USEフラグを追加してやって。
 dev-lang/php ...pdo postgres

で、以下を実行

 # emerge davical postgresql-server

**設定 [#d63f6302]
***Postgresqlの設定 [#b4af80aa]
まずはデフォルトのままpostgresqlを設定&起動してあげます。
 # merge --config postgresql-server
 # /etc/init.d/postgresql-8.4 start

***Davical用のデータベース設定 [#a0b34287]
 # su - postgres
 # /usr/share/webapps/davical/<version>/sqlscripts/create-database.sh
create-database.shを実行した際に、最後にdavical管理用のユーザ(admin)とパスワードが表示されます。まずは控えておいてください。

***Postgresqlのアクセス権限の設定 [#ia7748fd]
 /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の動作用設定 [#qe3788a7]
/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は改行いれないでどうぞ、かな。

***ユーザ登録など [#mdea893b]
で、Davicalにアクセスしてみましょう。http://<アクセス用のURL>/davical/
#ref(davical.png);
こんな画面になりましたよね。さて、create-database.shを実行したときに出てきたadminとパスワードを入力して、レッツログイン!
ユーザ管理→自分の詳細を閲覧する(日本語ロケールの場合)で
#ref(davical2.png);
こんな画面になりますです。adminさんのユーザ名/パスワードは変更しておいた方がいいっすよ。で、Davical(0.9.9.4)では、様々なユーザのことを、『プリンシパル』と呼んでいます。さて、ユーザのプリンシパルを追加いたしましょう。

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

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

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

*使ってみる [#eb3d138d]

私は家ではThunderbird+Lightningで使用しています。他にはSunbirdってのもありますが、Sunbirdは開発停止しちゃってます。メールとは別にスケジュール管理したい場合はSunbirdクライアントが便利なんですけどね。私は、会社ではSunbirdを使用してます。さて、設定をやってみましょう。
**基本設定 [#c914cd24]
Thunderbirdのファイルメニュー→新規作成→カレンダーを選びます。
#ref(newcalender2.png);
「ネットワークのサーバに保存する」を選んで次へ
#ref(newcalender.png);
Caldavを選んで、「場所」にURLを入力します。この時Davcalカレンダーへのアクセスパスはhttp://<サーバドメイン名>/davical/caldav.php/<user名>/home/と指定します。気をつけてね。これで次へを指定すると、ユーザ/パスワードを聞かれます。入力するとThunderbirdに保存されているスケジュールが表示されます。

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

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

« Prev[3]