Jul 13, 2008

Mac OS Xでカレンダーサーバーを作ろう

Mac OS X10.5対応

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

 ここでは、Mac OS X10.5(Leopard)にオープンソースソフトウェアのDarwin Calendar Serverをインストールして、MacやWindows、iPhoneなどからも利用できるカレンダーサーバーを構築する方法を考えていきます。うまくいけば、複数の人間で一つのカレンダーを管理したり、会議室の予約や空き時間の把握、プロジェクターの貸し出し可能日を確認したりすることができるようになります。

 これまで「WebDAVでiCalのカレンダーを共有しよう」で、WebDAVを利用したiCalのカレンダーの共有方法を紹介してきました。しかし、WebDAVによる共有だけでは、単に自分のカレンダーが公開できるだけで、一つのカレンダーをみんなで共有したり、予定を追加したり、変更したりすることはできませんでした。

CalDAV Resources
Darwin Calendar Server
Mac OS X Server:新機能:iCal Server
Mac OS X :iCal(Leopardでの新機能)



自分の予定を公開、共有したり、会議室の空室確認、予約ができる



遠く離れた場所からも予定が管理できます。


 Darwin Calendar Serverは、Mac OS X 10.5 Serverには標準で装備されています。つまり、Mac OS X10.5(Leopard)用に設計されています。このためMac OS X10.5では簡単にCalendar Server環境を構築することができます。Mac OS X10.4ではインストールされているPythonのバージョンが古いため、バージョンアップを行わないとインストールできません(version2.4以上を要求します)。Pythonのバージョンアップは、以下のページで提供されているのでこれを利用すればOKです。ただし、Pythonをバージョンアップすると、サーバー内でPythonを利用しているサービスに影響が出る可能性があります。おそらくmailmanあたりは、メンバー登録ができなくなるかもしれません(対応策はありますので対処してください)。構築後は一度、Pythonを利用するサービスをチェックしておくこととおすすめします。

Mac OS X Python Packages

 WebDAVによるファイル共有を中心とした環境を作りたい場合は、以前のログを参考にしてみてください。

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



注意すること

 スケジュールを共有したり、公開したるすることは、仕事の効率アップにとても貢献しますが、必要以上に公開したり、誰からでも見られるようにしてしまうと、あなたが留守の時がわかってしまったり、部署がもぬけの殻であることがわかってしまうことにもなります。その隙をねらって誰かが何かよくないことを考えたりするかもしれません。そうしたことにも十分配慮をして運用していきます。




このステップに進む前に

Mac OS Xでフリーのドメインネームを利用しよう

をすませておくことをおすすめします。ドメインネームを持っている場合は必要ありません。この操作を済ませておくと、遠隔でアクセスするときいつも決まったアドレスでアクセスできるようになりますので便利です。

 また、Calender ServerのインストールにはおそらくXcode3.0以上が必要になると思います。Xcodeは、ADCのサイトやMac OS XのインストールDVDにありますので、必ずインストールしてから作業に入ってください。


必要なもの

  • Mac (Mac OS Xを搭載しているもの。ここは10.5.1で進みます)
  • XCode3.0(makeコマンドを使っているので、いると思います)
  • iCal(3.0.x、Leopardに標準装備)またはSunBird
  • 常時接続環境
  • やる気
  • オープンソースコミュニティへの感謝
  • セキュリティーへの配慮
  • インターネットを構築してくれた方々への畏敬の念



CalendarServerのダウンロード

Calendar Serverをダウンロードするには、いつものようにクリックして...とできればよいのですが、そうもいきません。ソースコード丸ごとダウンロードするには、その前にまずダウンロードのお手伝いをしてくれる「Subversion」をダウンロード、インストールする必要があります。

  1. Subversionの入手方法はいくつかありますが、今回はもっともわかりやすいUniversalパッケージ版で提供されているCollabNet Communityさんのところからダウンロードします。

    CollabNet:Community Downloads:Subversion Binaries


    このページの右側から


    Downloadを実行します。


    アドレスなどを求められるので入力しsubmitを押します。


    ダウンロードが始まります。


  2. ダウンロードが終了すると、デスクトップにイメージディスクがマウントされます。



  3. 中に、インストーラパッケージが入っていますので、ダブルクリックで起動、インストールを開始します。



  4. インストーラーが起動したら、後はインストーラーの指示に従ってSubversionのインストールを完了させます。

    インストールチェックなどがありますが指示に従います。


    インストールを完了させます。


Calerndar Serverのダウンロード

 それではいまインストールしたsvnを利用してCalender Serverをダウンロードします。ダウンロードはターミナルからsvnコマンドを入力して行います。

  1. インストールが完了したら、ターミナルを起動します。ターミナルはアプリケーションフォルダのなかのユーティリティフォルダにあります。



  2. 次のコマンドを入力し、リターンキーで実行します。一行ですので注意します。trunkの後ろには半角スペースが入っています。

    svn checkout http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk /Applications/ServerKagyo/CalendarServer/


    Calender Serverをダウンロードする場所はほかでもかまわないのですが、とりあえず今回はアプリケーションフォルダにしておきます。/usr/localなどでもよいと思います。


  3. ターミナル上に、ずわーーーっと、処理がおこなわれているのが表示されます。

    なんだかちょっとかっこいい。現在ダウンロード中です。


  4. Checked out revision xxxと出れば終了です。これでCalendarServerをインストールする準備が整いました。




Calender Serverのコンパイルとインストール

 ダウンロードしたCalendar Serverをコンパイルしてインストールしていきます。実際のセットアップはもう少し複雑なものが求められると思いますが、今回はすでに用意されている設定を生かして、これにちょっと手を加える方法で進みたいと思います。

  1. ターミナルに次のコマンドを入力し、実行します。
    /Applications/ServerKagyo/CalendarServer/run -s



  2. コンパイル作業がずざざざざっと進んでいきます。終了するまでじっと待ちます。

    マシンスペックにもよりますがかなり時間がかかります。


  3. コンパイルが終了したら終了です。

    こんな感じで終わったらOK

    PPC機の場合、以下のようなエラーが出てコンパイルに失敗することがあります。こんなときはうまくいかないときにすすんでファイル類の修正作業を終えてから次のステップに進んでください。




Calendar Serverのセットアップ-カレンダー用フォルダの用意-

 先のステップで、コンパイルとインストールができていれば、本当はそのまますぐにCalender Serverは利用できるようになっています。以下の設定をしなくても使える準備が整っていますが、ここでは、もうちょっと手を加えて、最低限のよりスッキリとした環境でスタートできるように追加の設定を行っていきます。

  1. まずCalender Serverでカレンダーを公開するフォルダを用意します。今回は、/Library/CalenderServer/Documentsというフォルダを用意して、ここを専用フォルダにしていきます。ライブラリフォルダを開きます。

    よく自分のホームのライブラリフォルダと間違えますので注意しましょう。またシステム内のライブラリと勘違いする人もいますのでこれも注意します。


  2. ライブラリフォルダ内に新規フォルダを作成して名前を「CalendarServer」とつけます。大文字、小文字、スペルのミスが起きないように細心の注意を払います。

    新規フォルダを作成し...


    CalendarServerと名前をつけます。よくCalendarとCalenderを間違えますので注意しましょう。


  3. 次にこのCalenderServerフォルダを開いて、中に「Documents」という名前のフォルダを新規作成します。

    Documentsと複数形になっていますのでお間違えなく


  4. これでカレンダー用フォルダの準備は終了です。

    ちゃんとこんな構成になっていますか?



Calendar Serverのセットアップ-設定ファイルの編集-

  1. /Applications/ServerKagyo/CalendarServerフォルダの中からconfフォルダを探して開きます。



  2. confフォルダの中からcaldav-test.plistというファイルを探します。



  3. これをダブルクリックして開きます。Property List Editorというアプリケーションが起動してウィンドウが表示されるはずです。

    Property List Editorが起動しない場合は、ハードディスク内の/Developer/Applications/Utilitiesフォルダを開くと中に入っているはずですのでそこから開いてみてください。


  4. つまみを回してリストを表示させます。




  5. ずらりとリストが表示されますが、中から「DirectoryService」という項目を探したら、つまみを回してリストを表示させます。



  6. 表示されたリストのなかの「params」をクリックしてリスト表示させます。



  7. xml-fileとある項目を以下のように編集します。

    こうなっているのを
    conf/accounts-test.xml

    こんな具合に。
    conf/accounts.xml



    -testを削除するだけです。


  8. つづいて、「DirectoryService」の次の項目、「DocumentRoot」を探します。



  9. DocumentsRoot項目を以下のように書き換えます。

    twistedcaldav/test/data/

    から

    /Library/CalendarServer/Documents/



    こうなっているのを


    こんな具合に。


  10. もしBINDを起動していて、mydomain.comのようなドメインネームを利用している場合は、BINDAddressesとBINDHTTPPortsとBINDSSLPortsも設定しておくとよいと思います。

    BindAddressesをクリックして矢印を下に向けたら


    New Childを押します。


    ドメインネームを入力します。


    ほかも同じ操作で入力します。



  11. 編集が完了したら名前を「caldavd-dev.plist」とつけて/Applications/ServerKagyo/CalendarServer/confフォルダに保存します。

    Save As...を選んで


    Caldavd.plistと名前をつけて保存します。


  12. 以上で、設定ファイルの編集は終了です。保存が終了したらProperty List Editorは終了してもオーケーです。



ユーザーの作成

 次にCalnedar Serverにアクセスして、利用できるユーザーアカウントを作成していきます。また、ユーザーアカウントだけでなくて、会議室名やプロジェクターなどの予約が必要な会議ツールの登録などもここで編集するaccount.xmlファイルで行います。

  1. /Applications/ServerKagyo/CalendarServer/confフォルダのなかから、account.xmlというファイルをダブルクリックで開きます。



    Dashcodeというアプリケーションが起動してaccount.xmlファイルが表示されます。Dashcodeが起動しない場合は、DeveloperフォルダのApplicationsフォルダにありますのでそこからどうぞ。


  2. スクロールして、まず21行目「Test Realm」をまず編集していきます。ここは好きな名前に変えてしまいます。ここでは例として「zerorealm」とつけました。半角英数なら何でもよいようです。


    これを


    こんな具合に変更します。


  3. 次に22行目から26行目までの部分に注目します。



  4. この行をひな形に、Calendarサーバーにアクセスできるユーザー名とそのパスワードを設定します。
    <user>
     <uid>admin</uid>
     <password>admin</password>
     <name>Super User</name>
    </user>

    この<user></user>で囲まれている部分が一人のユーザーのアカウント情報を表しています。それぞれの意味について日本語で書きますと、以下のようになるはずです。
    <user>
     <uid>ユーザー名</uid>
     <password>パスワード</password>
     <name>このユーザーが使う一般的な名前</name>
    </user>

    はじめからかかれている情報を解説すると、ユーザー名「admin」でパスワード「admin」というアカウントが登録されていて、この人はSuper Userという名前であることがわかります。


  5. ユーザー名adminをひな形にして、自分のアカウントなどに書き換えてみます。 使用できるのは半角英数です。ここでは例として、ユーザー名docrobay, パスワードsukinapasswordと設定してみます。あと名前はDocrobayとつけてみました。なお<name>のところは日本語も使えます(iCalの場合)。
    <user>
     <uid>docrobay</uid>
     <password>sukinapassword</password>
     <name>Docrobay</name>
    </user>




  6. よくみると27行目からにも同じ<user></user>で囲まれた部分が見つかります。これが二つめのユーザーアカウントに相当します。こんな具合に、<user></user>で囲まれた部分を追記していくことで、必要なアカウントを好きなだけ追加していくことができる仕組みです。ここでは例として、例として、doronjo、boyacky、tonzurer、ganchan、aichanを追加しました。追加してみます。

    <cuaddr></cuaddr>で挟まれている部分にメールアドレスをセットすると、共有カレンダに追加されたイベントの、参加者だったばあい、そのメールアドレス宛に、イベントへの案内と参加要請が届けられます。(今のところ私の手元の環境では正しく動作してくれません)


  7. 入力がすんだら忘れずに保存をします。



グループの追加

続いて、グループを追加していきます。グループはユーザーをいくつかまとめてグループとして扱うためのものです。たとえば、職場のような場所なら、企画部、営業部、総務部などのように部署があるわけですが、それぞれの部署ごとにメンバーをこのグループ名で分けておくと、共有カレンダーでの運営が楽になるという仕組みです。

  1. 先ほどまで編集していた部分より下を見ると、<group></group>で囲まれた部分があります。ここでグループに関する設定を行っていきます。



  2. この行をひな形に、グループの設定を行っていきます。
    <group>
    <uid>users</uid>
    <password>users</password>
    <name>Users Group</name>
    <members>
    <member type="users">test</member>
    </members>
    </group>

    <group></group>で囲まれている部分が一つのグループ情報を表しています。それぞれの意味について日本語で書きますと、以下のようになるはずです。

    <group>
    <uid>グループ名</uid>
    <password>グループのパスワード</password>
    <name>グループの一般的な名称</name>
    <members>
    <member type="users">グループに所属するメンバー名</member>
    </members>
    </group>

    はじめからかかれている情報を解説すると、グループ名「group」でパスワード「group」で管理されているグループが登録されていて、このグループにはtestという名前のユーザーが所属していることがわかります。


  3. ここをひな形にして、自分のアカウントなどに書き換えてみます。使用できるのは半角英数です。ここでは例として、グループ名「doronbo」を作成し、これに所属するユーザーとして、doronjo、boyacky、tonzurerを設定します。なお<name>のところは日本語も使えます(iCalの場合)。

    <group>
    <uid>doronbo</uid>
    <password>docrostone</password>
    <name>Doronbo Family</name>
    <members>
    <member type="users">doronjo</member>
    <member type="users">boyacky</member>
    <member type="users">tonzurer</member>
    </members>
    </group>




  4. グループを増やしたい場合は、<group></group>で挟まれた部分を追記していく仕組みです。ここではせっかくなのでもう一つのグループとしてグループ名「yatterman」を作成し、これにganchanとaichanを設定しておきました。



  5. 入力がすんだら忘れずに保存をします。



会議室の追加

 Calendar Serverに、会議室を登録しておくと、会議室のスケジュールをみんなで共有して、会議室がいつ空いているか確認したり、予約したりすることができます。

  1. 先ほどグループの設定を行ったところより、下を見ると、<location></location>で囲まれた部分があります。ここで会議室などのような、場所に関する設定を行っていきます。



  2. この行をひな形に、会議室など、予約や空きの確認を共有したい場所の設定を行っていきます。
    <location>
    <uid>mercury</uid>
    <password>mercury</password>
    <name>Mecury Conference Room, Building 1, 2nd Floor</name>
    <auto-schedule/>
    <proxies>
    <member type="users">test</member>
    </proxies>
    </location>

    <location></location>で囲まれている部分が一つの場所情報を表しています。それぞれの意味について日本語で書きますと、以下のようになるはずです。

    <location>
    <uid>場所のID</uid>
    <password>場所のユーザーパスワード</password>
    <name>場所や会議室の名前</name>
    <auto-schedule/>
    <proxies>
    <member type="users">会議室を利用できるユーザー</member>
    </proxies>
    </location>

    はじめからかかれている情報を解説すると、会議室ID「mercury」で場所のパスワード「mercury」で管理されている「ビル1の2階にあるMercury会議室」があって、この会議室の空きを確認したり、予約したりできるのはtestという名前のユーザーという意味になります。



  3. ここをひな形にして、自分の身の回りの会議室などに書き換えてみます。使用できるのは半角英数です。ここでは例として、会議室「secretbase01」を作成し、これに所属するユーザーとして、docrobayを設定します。なお<name>のところは日本語も使えます(iCalの場合)。

    <location>
    <uid>secretbase</uid>
    <password>oshiokidabe</password>
    <name>Secret Base No.01</name>
    <auto-schedule/>
    <proxies>
    <member type="users">docrobay</member>
    </proxies>
    </location>


    共有可能ユーザーを増やすには、<member type="users">xxxx</member>の行を追記していきます。


  4. グループによる登録もできます。メンバーでの登録だと、その都度、入力するのが大変ですが、事前に設定しておいたグループ名で登録すると作業が楽になります。追加は、ユーザーを追加する際に利用した<member type="users"></member>の部分を、<member type="groups"></member>に変えることでできるようになります。ここでは、例としてグループ「doronbo」を設定します。

    <location>
    <uid>secretbase</uid>
    <password>oshiokidabe</password>
    <name>Secret Base No.01</name>
    <auto-schedule/>
    <proxies>
    <member type="users">docrobay</member>
    <member type="groups">doronbo</member>
    </proxies>
    </location>

    追加の際、うっかり<name>で挟まれたところの名前を入れてしまうことがあります。<uid>で挟まれたところの名前を入れるようにします。


  5. 入力がすんだら忘れずに保存します。



Calendar Serverの起動テスト

 いよいよお待ちかねのCalendar Serverの起動テストを行います。Calendar Serverの起動はターミナルから行います。この起動テストでCalendar Serverが正しく動作するかどうかをまず確かめていきます。

  1. ターミナルに以下のコマンドを入力します。

    /Applications/ServerKagyo/CalendarServer/run




  2. うまく起動するとずらずらずらーと処理が表示されます。以下のような状態で止まれば、無事Calendar Serverが起動したことになります。




Calendar Serverへの接続テスト-自分の公開カレンダーの作成-

 iCalからCalendarServerを利用して、自分専用のカレンダーを公開すると、自宅やiPhoneなどからもサーバーに接続して予定を確認できるようになります。さらに、WebDAVを利用したカレンダー共有と違って、どの場所からでも、予定の追加、削除が自由にできるようになります。これはとても便利です。ここではその動作確認を行います。

  1. iCalを起動させます。






  2. iCalメニューから環境設定を開きます。



  3. 「アカウント」をクリックしてアカウント設定画面を表示させます。

    クリックしてアカウントを表示




  4. 左下の+ボタンをクリックします。



  5. アカウント登録ダイアログが開きます。



  6. 先ほどaccount.xmlに作成したアカウントを入力していきます。ここでは例としてユーザー名docrobayで登録していきます。

    先の設定で<uid>に入力した名前をユーザー名と<password>に入力したパスワードを入力します。説明の所はなんでもかまいません。


  7. サーバーオプションをクリックして開きます。アカウントのURLのところに以下の内容を入力します。

    localhost:8008


    iCalの場合はこのぐらい簡単なURL指定でちゃんと認識してくれます。
    IPアドレスの場合なら127.0.0:8008または192.168.x.x:8008などで、ドメインネームを持っているならmydomain.com:8008でも接続できます。



  8. ユーザー名やパスワードにミスがないか確認した後、「追加」を押します。



  9. パスワード送信に関する注意書が出ますが、今回は気にせず「このまま接続」をおします。



  10. アカウントの画面にユーザーの公開カレンダーが追加されます。またiCalのカレンダーリストの方にも、いま追加したユーザーのカレンダーが表示されます。

    無事にCalDAVアカウントが追加され、公開カレンダーが作成されたことがわかります。


    iCalの画面にも追加されているのがわかります。ちなみにこの画面に表示されているカレンダー名は好きに変えても大丈夫です。calendarだとあまりにも味気ないので。


  11. また予定が追加・削除できるかどうかもテストしておきます。公開カレンダーが選択された状態で、予定を追加したい日をダブルクリックすると、予定が追加できます。予定をクリックしてデリートキーを押せば予定を削除できます。

    ダブルクリックで予定が追加できるかテスト。予定を選んでデリートキーで削除できるかもテストします。


    カレンダーサーバーのカレンダーも自動的に更新していること様子がわかります。



Calendar Serverへの接続テスト-共有カレンダーの登録-

 会議室のスケジュールは、みんなで自由に予約したり、空き時間をチェックしたりできるととても便利です、ここでは上の操作で、例として「Secret Base No.1」という名前の会議室を設定し、空きスケジュールや予約状態はみんなで管理できるようにaccount.xmlに登録してあります。実際に会議室の予定を共有できるかをテストします。

  1. 先ほどと同じ操作で、iCalの「環境設定」から「アカウント」を開き、さらに「委任」を開きます。



  2. 開くと、先の操作で、会議室として登録した「Secret Base No.01」というのが自動的に表示されていると思います。


    これはaccont.xmlにdocrobayというユーザーは会議室の共有カレンダーにアクセスできるように設定したからです。<location>のなかの<proxies>内にユーザーやグループとして登録のないユーザーは、ここに表示されませんので注意します。
    先の例では、「Secret Base No.01」を利用できるのは、ユーザーとしてdocrobay、グループとしてdoronboだけが登録されています。この場合、ユーザーganchanやaichan、グループyattermanはこの会議室の共有カレンダーにアクセスしたり、予約したりすることはできません。



  3. 表示にチェックをつけます。



  4. チェックをつけると、iCalのカレンダーリストに「委任」としてリストされるカレンダーができます。そのなかにSecret Base No.01というカレンダーが表示されます。これで会議室「Secret Base No.01」の空きや予約ができるようになりました。



  5. 会議室の予約ができるか実際に予定を追加して試してみます。ダブルクリックすれば、会議室に予定(予約)を追加することができます。

    これで、会議室の予約が楽ちんになりますし、ダブルブッキングもなくなるでしょう。


  6. 別のアカウントについても、同様の操作をためしてみて、複数のユーザーで実際に会議室のスケジュールを共有できるか、予約できるか、キャンセル(削除)できるかを試してみるとよいです。



  7. 動作確認テストが十分終了したら、ターミナルに戻って、一度Calendar Serverを停止させます。Calendar Serverを停止させるには、キーボードのControlキーとCキーを同時に押します。


    ターミナルを見ると、こんな感じになっていると思います。ここでControlキーとCキーを同時に押すと、Calendar Serverを停止させることができます。


    Server Shut Downとでて無事終了。



  8. これで動作確認テストは終了です。



Calendar Serverの起動

 Calendar Serverを本格稼働させるための設定を行います。先ほどは /Applications/ServerKagyo/CalendarServer/runというコマンドで起動させましたが、あれはテスト的に起動させるものと考えてください。実際のサーバーのサービスのとして起動させるためには、launchdへの登録をしておきます。

  1. CotEditorを起動します。



  2. 以下の内容の書類を作成します。「Macの管理者の名前」の部分ですが、これはCalendar Serverをインストールするときに使ったユーザーの名前(つまりいま使っているユーザー名)を入力してください。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>HardResourceLimits</key>
    <dict>
    <key>NumberOfFiles</key>
    <integer>12000</integer>
    </dict>

    <key>UserName</key>
    <string>Macの管理者の名前</string>
    <key>KeepAlive</key>
    <true/>

    <key>Label</key>
    <string>org.calendarserver.calendarserver</string>
    <key>ProgramArguments</key>
    <array>
    <string>/Applications/ServerKagyo/CalendarServer/run</string>
    </array>
    <key>SoftResourceLimits</key>
    <dict>
    <key>NumberOfFiles</key>
    <integer>12000</integer>
    </dict>
    </dict>
    </plist>

    「Macの管理者の名前」のところは/Applications/ServerKagyo/CalendarServer/runの情報をみるから確認することができます。これにあわせておくと無難です。




  3. 作成をしたら、/Library/LaunchDaemons/に「org.calendarserver.plist」という名前で保存をします。

    保存を実行すると...


    パスワードを要求されますので入力して対応します。


  4. 次にターミナルを起動させ、次のコマンドを実行します。

    sudo launchctl load -w /Library/LaunchDaemons/org.calendarserver.plist


    実行するとパスワードをMacの管理者パスワードを求められますので入力します。


    セキュリティの都合、表示はされませんがちゃんと入力はされていますので間違えないように正しく入力します。


  5. これでlaunchdへの登録が終了しました。この操作が完了することで、Calendar Serverは毎回自動起動するようになります。またOSのサービスの一つとして動作するようになります。

    sudo launchctl list

    コマンドを試しに実行してみると...


    ちゃんと登録されているのがわかる。


  6. Calendar Serverの設定はこれで終了です。



動作確認

あとは動作確認を行うだけです。ほかのMacやWindowsからCalendar Serverに接続して、共有ができるかどうかをテストします。

  1. LAN内のほかのMacでもiCalを起動させて、Calendar Serverに接続できるか試してみます。

    サーバーのIPアドレスを入力してカレンダーが登録できるかを試してみる


  2. インターネット上からもアクセスできるかテストしてみます。ただし、インターネット側からアクセスするためには、インターネット側からのアクセスのうち8008番に届くCalendar Serverへの接続要求が、ちゃんとCalendar Serverに届くようにルーターが設定されていないとだめです。またファイアーウォールなども8008番について正しい設定がされている必要があります。



  3. WindowsからCalendar Serverに接続して、カレンダーを共有するにはSunbirdを利用します。MozillaプロジェクトからSunbirdは無料でダウンロードできます。




うまくいかないとき

Calendar Serverのインストールができない

  If you meant to cross compile, use `--host'.See `config.log' for more details.などとでてインストールがうまくいかないときは、上述の「CFLAGS=-m64」を削除する操作を試してみてみます。

  1. PPC機の場合、以下のようなエラーが出てコンパイルに失敗することがあります。



  2. このときは、CalendarServerフォルダを開いて、中からrunという実行ファイルを探し、CotEditorで開きます。





  3. ずらーっとある文章のなかから「CFLAGS=-m64」という部分を探します。全部で3箇所あります。この部分を削除します。

    こんなぐあいになっているところを...


    こんな風に削除します。つづけてあと二つも同様に処理します。


    こことここのふたつも...


    こんな具合に。


  4. 消した後は、アプリケーションフォルダのなかのServerkagyoフォルダを開いて、一応、libevent-14.4-stableフォルダとmemcahed-1.2.5フォルダをゴミ箱に捨てます。


  5. 捨てたら再コンパイルを実行します。
    /Applications/ServerKagyo/CalendarServer/run -s




  6. これで今度はちゃんとコンパイルに成功するはずです。




Tigerでインストールができない

Tigerの場合、Pythonのバージョンが古いため、インストールに失敗します。この場合は、上述のサイトからPythonのパッケージをダウンロードしてアップデートしてください。


Calendar Serverにアクセスできない

 Calnedar Sererにアクセスできない場合は、Mac OS Xのファイアーウォールの設定を確認します。Calendar Serverはポート8008を利用していますので、ブロックされている場合は、これを開放させます。インターネット側からアクセスできない場合は、ルータの設定を調べてみてください。8008番がサーバー機にわたるようになっているか、ファイアーウォールなどでブロックされていないかを確認してみます。



 以上で、すべての作業は終了です。Calendar Serverはまだよくわかっていないことが多くて私程度の知識ではまだまだうまく構築できていないように思います。これからまたすこしずつ修正をしていきたいと思います。

 とりあえず今回まとめた方法は、事前にAppleさん側で用意してくれた環境をほぼそのまま流用したものです。本格運用には、もう少しスマートな環境構築やカスタマイズができるはずだと思います。



課題

 本来なら、/Applications/ServerKagyo/CalendarServer/run -dで実行し、daemonとして動かしたいところなのですが、このコマンドでの起動をlaunchdで行うとにっちもさっちもいかなくなってしまいました(CalendarServer起動後にエラーで停止、lauchdが再起動をかける、の繰り返し。このほかPIDエラー、USERエラー、Phtyonプロセスの増殖など)。CalendarServerのより実運用向けのインストール実行とlaunchdの扱いがよくわかればもうすこしうまく動かす方法がわかるかもしれないです。少しずつ情報を集めていきたいです。

それではお疲れ様でした。


Trackback

No Trackbacks

Track from Your Website

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

Comments in Forum

9 Comments