※[[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ファイルを「ファイルからインポート」でインポートしてあげましょう。あっさりです。 ちなみにうちでは、同様に、「休日」やら、「イベント情報」やらをカレンダ作成して追加しています。活用法はいろいろありそうですね♪プロジェクト業務などで活用できると便利そうなんだけどなぁ…