Feb 26, 2006

WebDAVでiCalのカレンダーを共有しよう

Panther tiger

 「えーと、今日部長ってどこに出張だっけ?」、「今度の練習っていつだっけ?」なんてやり取りがあったりします。職場にホワイトボードなどのスケジュール表があれば、すぐに確認することができますけれど、スケジュールを知りたいときいつも職場にいるとは限らないわけで、自宅にいるときや出張先で知りたい、おまけにみんなでスケジュールの共有ができたらラクチンだろうなぁ、なんて思うこともある訳です。

 Mac OS X(PantherやTiger)にはiCalという多機能なスケジュール管理ソフトが標準で入っています。ここではサーバーにしたMac OS X(TigerやPanther)にWebDAV(ウェブダブ)というファイル共有機能を有効にして、iCalのカレンダーを自前のサーバーを利用して共有する方法を考えていきます。

 

iCalはApple社のサービス「.Mac」を使ってカレンダーを公開したり、共有したりすることができます。この機能を使えば、職場やサークルのメンバーとカレンダーを共有することができてとても便利ですが、「.Mac」契約が切れてしまうと利用できなってしまうことと、また限られたメンバー以外にカレンダーを見られたくない場合を考えるとちょっと悩みが増えてきてしまいます。







遠くはなれたところからでもスケジュールを確認できるようになる


 ここで紹介するのは、Mac OS XにWebDAVファイル共有サービスを起動させ、iCalのカレンダーを公開、共有できるようにします。また公開されたカレンダーはアカウントとパスワードを知っている人以外には見られないように設定する方法です。

 WebDAVはMacOSXのパーソナルウェブ共有機能(パーソナルファイル共有じゃないよ)を実現させてくれているApacheのファイル共有機能です。ApacheはSafariなどのブラウザにWebページを表示させる機能を提供してくれるものですが、これにFTPとかAFPとかSMBなどのようなファイル共有機能を追加できるように設計されています。安全で、OSを問わない手軽なファイル共有機能として注目されています。たとえばWindowsのwebフォルダとしても接続できます。

 Apple社さんは、iCalが.Macだけでなく、このWevDAVサーバーにもカレンダーを公開できるように設計してくれていますので、ここではこの機能をぜひ利用しようという訳です。.Macにカレンダーを公開するのに比べれば、なれるまでがちょっとめんどくさいですが、一度設定してしまえばとても簡単になります。

 また「ical」フォーマットとして作成されるカレンダーはiCalのほかにも、このフォーマットを採用しているスケジュールソフトが多いため、WindowsでもLinuxでも、さらにはPDAや携帯電話でも利用することができます。

 この作業では以下のステップがすんでいることを前提に進めていきますので、取りかかる前に次のステップをすませておくと便利です。



必要なもの

  • Mac(Mac OS Xを搭載しているもの。ここは10.4.x(Tiger)で進みます)
  • Terminal
  • miエディタ(http://www.mimikaki.net/)
  • やる気
  • セキュリティーへの配慮
  • インターネットを構築してくれた方々への畏敬の念
  • 中高速回線
  • 自己満足



はじめるまえに

 WebDAVを利用できるように設定するには、ここから先に書いてあることをよく読みながら進めば作業を完了させることができます。可能ならあなたのスキルアップのためにも是非そうしてください。設定が面倒だという人は、WebDAVの設定を自動化してくれるAppleScriptを作成しましたので、それを利用すると楽ができると思います。ただし、このページに目を通してからの方が確実だと思います。




WebDAV_SetupPack_for_Mac_RC1


httpd.confの設定

まず、パーソナルweb共有の設定ファイルhttpd.confを編集してMac OS XでWebDAVファイル共有機能を使えるようにします。変更箇所は5カ所です。DAV用のフォルダとして利用できるのは/Library/Webserver/Documents/内か/Users/あなたのユーザーネーム/Sitesフォルダ内かのどちらかになります。ここでは/Library/Webserver/Documents/に作る方法を進めていきます。

  1. まずシステム環境設定から共有を選んで、"パーソナルWeb共有"をオフにします。



  2. httpd.confがある場所を開きます。Finderのメニューから、フォルダに移動を選びます。




  3. "フォルダへ移動"ウィンドウが出ますので、/etc/httpd/に移動します。




  4. httpd.confが保存されている今まで不可視だったフォルダが開きます。

    いままで見えなかったフォルダです。もう少し詳しく場所をみるとこんな感じ。半透明のフォルダの下。




  5. "httpd.conf"ファイルをデスクトップにコピーします。

    ドラッグアンドドロップするだけでコピーできます。(アクセス権の関係)


  6. httpd.confファイルをもしも何かあったときのためにかならずもう一つ複製してどこかにしまっておきます。


    書類フォルダやhttpconfのバックアップフォルダとかを作ってしまっておきます。トラブルあったときに役立ちます。


  7. miエディットでデスクトップにおいてあるhttpd.confを開きます。





  8. 228行目あたりに移動します。環境によっては行が前後するかもしれせん。頭についている#を除去します。

    #LoadModule digest_module libexec/httpd/mod_digest.so

    これを下に

    LoadModule digest_module libexec/httpd/mod_digest.so


    こうなってるのを...


    こんな具合に


  9. さらに237行目あたりに移動します。環境によっては行が前後するかもしれせん。ここも頭についている#を除去します。


    #LoadModule dav_module libexec/httpd/libdav.so

    これを以下に

    LoadModule dav_module libexec/httpd/libdav.so


    これを以下に




  10. つづいて271行目あたりに移動します。環境によっては行が前後するかもしれせん。ここも頭についている#を除去します。

    #AddModule mod_digest.c

    これを以下に

    AddModule mod_digest.c


    これを以下のように




  11. さらにさらに、281行目あたりに移動します。環境によっては行が前後するかもしれせん。ここも頭についている#を除去します。

    #AddModule mod_dav.c

    これを以下に

    AddModule mod_dav.c


    これを以下に





  12. ここまでの4つの行の修正がすんだら、一番最後の行まで移動します。一番最後の行に以下の文章を書き加えます。LimidExpectで始まる行は一行ですので注意。

    <IfModule mod_dav.c>
    DAVLockDB /Library/WebServer/lock/dav
    DAVMinTimeout 600
    <Directory /Library/WebServer/Documents/dav/>
    DAV On
    AllowOverride None
    Options None
    AuthType Digest
    AuthName WebDAV
    AuthDigestFile /Library/WebServer/.htdigest
    <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    require valid-user
    </Limit>
    </Directory>
    </IfModule>

    上記の設定は/Library/WebServer/Documents/dav/フォルダを共有する設定です。もし自分のサイトフォルダ内のフォルダを共有したいなら上記の
    <Directory /Library/WebServer/Documents/dav/>

    <Directory /Users/あなたのユーザー名/Sites/dav/>

    のように変更すればうまくいきます。



  13. もし、ddo.jpなどのドメインネームを持っているなら、358行目あたりに移動し、ServerNameを設定します。環境によっては行が前後するかもしれせん。またServerName以下に書いてある言葉も環境によって異なると思います。まず頭についている#を除去します。それから後ろに自分の使用している環境に合わせてドメインネームを入力します。自分のマシンの中(127.0.0.1)だけでテストするならここの設定は要りません。
    #ServerName new.host.name (←このほかにもいろいろパターンがあります)

    これを以下に
    ServerName あなたのドメインネーム.ddo.jp


    これを。


    これに。



    LAN内だけならこれ


  14. ここまでがすんだら保存を実行します。



  15. 今編集したhttpd.confファイルを/etc/httpdに書き戻します。もしもう/etc/httpdフォルダを閉じてしまっていたら、前に方でやった"フォルダへ移動"で開いてください。




  16. 警告ダイアログが出ますので、びっくりしますが、気にせず"認証"を押して進みます。



  17. httpd.confの古いファイルを置き換えてもいいか聞いてきますので"置き換える"を押しましょう。



  18. 名前とパスワード(Macの)を聞かれますので、入力します。管理者パスワードですよ。



  19. コピーが無事行われるはずです。



  20. これでコピー完了です。



  21. httpd.confの情報をみます。所有者とアクセス権を以下のように変更します。まずグループをwheel/読み出しのみに、次にオーナーをシステム/読み書きにします。先にオーナーの方を変えるとグループの方がかえられませんので注意。認証を求められることがありますのでそのときは指示に従います。




  22. いちおうターミナルで今変更したhttpd.confが正しく設定できているかチェックします。ただしここで、オッケーがでても文法的にオッケーと言うだけで設定に問題がないというわけではありません。自分の設定に完璧なる自身をお持ちの方はこのステップは飛ばしてもかまいません。



    apachectl configtest





    Syntax OKと出れば問題ありません。


WebDAV共有用のフォルダを作る

WebDAVで共有するフォルダを作成します。上記までの設定の関係上、ここではフォルダは/Library/Webserver/Documents/内にdavという名前で作成することにします。

  1. /Library/Webserver/Documents/を開いて、中にdavというフォルダを作成します。なんだかイメージしにくいですが、このフォルダが共有フォルダになります。







  2. Finderメニューのファイルから「情報を見る」を実行して、今作成したdavフォルダのアクセス権を変更します。パスワードを求められたらその都度対応してください。アクセス権を変更するときの注意は、下から順に設定していくトコです。まずその他を「アクセス不可」に、それからグループを「読み出しのみ」にして、さらに「www」に、そして最後にオーナーを「読み出しのみ」にしてから、「www」に変更するとうまくいきます。




    これから


    これに。設定が終わったら閉じてかまいません



lockフォルダの作成

 こんどは/Library/Webserver内にlockというフォルダを作成します(/Library/Webserver/Documents/じゃないので注意。一つ上のフォルダですよ)。lockフォルダはデータのやり取りをしている際にデータが消えてしまったりするのを防いでくれる働きがあります。

  1. davフォルダを作ったのと同様の操作で/Library/Webserver/内にlockという名前のフォルダを作成します。



  2. davフォルダのときと同様にして、lockフォルダのアクセス権も設定します。アクセス権を変更するときの注意は、下から順に設定していくトコです。まずその他を「アクセス不可」に、それからグループを「読み出しのみ」にして、さらに「www」に、そして最後にオーナーを「読み出しのみ」にしてから、「www」に変更するとうまくいきます。



    これから


    これに。設定が終わったら閉じてかまいません



ユーザーとパスワードの設定

 公開したカレンダーが勝手にのぞかれてしまわないようにパスワードでの認証を行うための設定をします。ここでの認証の仕方はdigest認証と呼ばれる方法です。

  1. ターミナルを起動させます。

    アプリケーションのユーティリティフォルダ内にあります。


  2. 次のコマンドを入力し実行します。「ユーザー認証に使いたい名前」の所は自分で使いたい好きな名前を入れてください。

    htdigest -c /Library/WebServer/.htdigest WebDAV ユーザー認証に使いたい名前


    ここでは使いたい名前にhogehogeを入れてあります。


  3. 実行すると認証に使用したいパスワードを決めてちょうだい、といわれますので、好きなパスワードを入力し実行します。

    入力は表示されませんがここでは試しにsukinapasswordと入力してあります。


  4. もう一度きかれますので同じように入力し実行します。



  5. ここまでの操作で設定は終了です。これでWebDAVファイル共有が有効になりました。


  6. WindowsのWebフォルダからMac OS Xに作成したWebDAVフォルダにDigest認証を使って接続するにはこのままの方法ではうまくいかないようです。apacheのモジュールを追加しないといけません。詳細は後日まとめますが、メモをこのページのコメントに残してありますので参考にしてください。

    WebDAVでiCalのカレンダーを共有しよう



動作確認

実際にWebDAVファイル共有が利用できるか試してみます。WebDAVフォルダにはFinderから簡単に接続することができますのでやってみましょう。接続するのは今設定を有効にしたMacからでもかまいませんし、LAN内にあるほかのMacからでもかまいません。またddo.jpなどのドメインを持っているなら、自宅のMacからでもできます。

  1. システム環境設定の共有からパーソナルWeb共有を有効にします。



  2. Finderメニューの「移動」から「サーバーへ接続...」を実行します。



  3. 接続するサーバーのアドレスをhttp://をつけて以下のように入力します。

    今設定したMacで動作確認をするならこれ。



    LAN内等から設定をすませたサーバーに接続するには「サーバーのIPアドレス」の所にサーバーのIPアドレスを入力。



    ddo.jpのドメインを持っているならこういう入力もありです。


  4. 入寮したら接続ボタンを押します。



  5. 接続が始まります。



  6. 接続すると認証を求められますので、前のステップで設定したアカウントとパスワードを入力し、OKを押します。



  7. デスクトップに"dav"という名前のネットワークディスクがマウントされます。

    いやほーーーーっ。


  8. ファイルをコピーしたり、捨てたりできるか試してみてください。

    おおーーー。



iCalでカレンダー共有-カレンダーをWebDAVサーバーに公開-

 長い道のりでした。やっとこさiCalを公開する作業に入ります。今設定をすませたサーバーに自宅やLAN内のMacから、iCalのカレンダーを公開してみます。

  1. iCalを起動させます。




  2. 公開したいカレンダーを一つ決めます。

    左のリストから公開したいカレンダーをクリックして選択。


  3. iCalのメニュー、「カレンダー」の中にある「公開...」を選びます。



  4. 公開するための設定ダイアログが開きます。



  5. カレンダー名と公開先を変更します。カレンダー名は日本語のままでもかまいませんが、文字化けしてしまいますので、可能なら英語の名前に変えた方がよいです。公開先は個人用サーバにしてください。



  6. 個人用サーバーを選択すると接続先のWebDAVサーバーへのアドレスを入力できるようになりますので、WebDAVを有効にしたMacへのアドレスとアカウント、パスワードを入力します。
    ベースURLのアドレスは、サーバーのドメインネームやIPアドレスに加えて、davフォルダにつながるように/davと書いておきます。よくわすれますので。


    最後の/davをよくわすれるんですよ。
    上記の例はddo.jpのドメインネームを持っている場合。
    LAN内のサーバーに公開するならそのサーバーのIPアドレス。
    自分のMacの中だけでとりあえずテストするなら127.0.0.1。



  7. 公開が成功すると次のようなうれしいメッセージが出ます。


    左上の表示にも公開中マークが出ます。


    試しにWebDAV共有しているフォルダをのぞいてみるとちゃんとあります。



  8. これで公開をする作業は終了です。



公開カレンダーを追加する-メール送信機能-

  1. 公開が完了したことを知らせてくれたメッセージにある「メールを送信」ボタンを押して、公開したカレンダーのURLを職場のスタッフやサークルのメンバーみんなにお知らせしておくとラクチンです。

    押すと、


    こんな具合に自動的にメールを作成してくれるのでラクチン。


  2. メールは送信し忘れてしまってもいつでもメニューから送れるので安心です。



  3. メールがとどいた人はwebcal://〜で始まるアドレスをクリックするとiCalに自動的に公開されたカレンダーを使いすることができます。ラクチン。

    ここをクリックすると、


    iCalが起動してくるので、


    あとはアカウントとパスワードを入力して完成。


  4. これで作業は終了です。




おまけ-手動でカレンダーを追加する-

 手動で追加する方法を書いておきます。

  1. iCalのメニューにある「カレンダー」から「照会...」を選びます。



    バージョンの古いiCalでは

    「照会...」ではなくて「追加...」となっています。


  2. ダイアログが出るので公開されているカレンダーまでのURLを入力します。

    httpでもwebcalではじめてもかまいません。


  3. 照会を押すと認証を求められますので対応します。



  4. 左上に無事登録されれば終了です。




おまけ-WidowsとiCalを共有するためにSunbird編-

 iCal形式を採用しているスケジュールソフトはたくさんあります。たとえばオープンソースウェアの「Mozilla」や「Sunbird」です。SunbirdはMac版だけでなくWindows版も用意されているので、適切な設定をすれば上記のようにしてiCalで公開したカレンダーを共有することができます。WindowsとMacが入り乱れた環境でのカレンダー共有には大変役に立ちます。この先は本当はWindowsでマニュアルを書きたかったのですが、Windows環境が現在手元にないのでMacで進みます。操作はほとんど同じです。

  1. まず Sunbirdをダウンロードしてきます。


    Sunbird プロジェクト


  2. ダウンロードページに進みます。左側のメニューにあります。



  3. OSごとの選択画面になりますのでそれぞれ必要なOSのものを入手します。クリックでダウンロードが始まります。



  4. 適切なインストールが済んだら、Sunbirdを起動させます。



  5. メニューから「Subscribe to Remore Calender...」を選択します。




  6. どこにあるカレンダーを追加したいのか聞かれます。サーバーにある公開カレンダーを追加するにはRemoteを選択します。選択したらContinueを押して先に進みます。






  7. 公開されているカレンダーのURLを入力する画面になりますので、正しく入力をします。入力するURLはiCalが送信してくれるメールに書かれていたものと同じです。


    ときどき.icsをつけ忘れるので注意。



    メールに書かれていたのをそのまま入力してもオッケー。


  8. 進むと、サーバー上に公開されているカレンダーをこのパソコンでどういう名前を付けておくのか聞かれますので、適当につけます。サーバー上のカレンダーの名前を変更する訳ではないので、何でもかまいません。必要なら色も付けておきます。



  9. アカウントとパスワードを聞かれますので正しく入力します。




  10. 以下のように出れば完成です。

    こう出れば成功。




  11. URLが間違っていたり、アカウントやパスワードがあっていなければこんなメッセージになりますのでもう一度最初からよく確認しながらやり直します。



  12. ただし、スケジュールは表示されるのですがカレンダーへの読み込みがうまくいかない場合があります。なぜかいずれのスケジュールも登録日から過去の1970年までというおかしな具合になっていることがあります。原因はわかりません。



  13. それから、iCalは公開されているカレンダーに対してそのカレンダーの公開者以外はカレンダーを編集することができませんが、Sunbirdsは公開者でなくても編集ができてしまいます。本当の意味でスケジュールを共有できるこの機能は便利ですが、iCalとの相性を考えると、ある日突然SunbirdユーザーによってiCalのカレンダーが上書きされてしまったり、逆にiCalが上書きしてしまったりという事件が起きるかもしれません。
    Sunbirdでせっかく入力した予定が消えてしまう。そんな事件をさけるにはSunbirdのカレンダーをダブルクリックすると表示されるダイアログで、WebDAV上におかれた共有カレンダーは自分の公開したカレンダー以外"Read Only"にしておくとよいかと思います。


    ダブルクリックすると...。



    Read-onlyに設定する画面が出る。


iCal形式を扱えるソフトウェアはたくさんあるのでいろいろ試してみるといいです。PHPで利用できるPHP iCalendarなんかもなかなか便利です。



1 Trackback

Windowsでも使えるwebDAVフォルダー作り

--

From : oba's blog @ 2006-03-24 04:20:35

Track from Your Website

http://earlybirds.ddo.jp/namahage/inegalog/trackback/tb.php?id=31
(言及リンクのないトラックバックは無視されます)

Comments in Forum

37 Comments