« L7-filter 安裝實錄 | 首頁 | 讓 sendmail 自動回覆信件 »

2005年12月28日

Apache HTTP Server + Mozilla Calendar / Sunbird

Mozilla Calendar 和 Sunbird 是 mozilla.org 推出的行事曆軟體 (差別在 Calendar 是依附在瀏覽器上的外掛套件). 它能單機使用, 也能搭配 Apache HTTP Server + WebDAV 來達成以下目的:

環境:

  • Fedora Core 1 (httpd-2.0.47-10)
  • Mozilla Sunbird 0.3a1 @Windows
  • Mozilla Calendar 2005011113-cal @Ubuntu.Firefox/1.0.7

>>> 設定 Apache HTTP Server

建立 SSL 憑證

cd /etc/httpd/conf
make your.host.name.pem

Country Name (2 letter code) [GB]:TW
State or Province Name (full name) [Berkshire]:Taiwan
Locality Name (eg, city) [Newbury]:Taipei
Organization Name (eg, company) [My Company Ltd]:Your Company Name
Organizational Unit Name (eg, section) []:Your Unit Name
Common Name (eg, your name or your server's hostname) []:your.host.name
Email Address []:your@email.address

mv your.host.name.pem ./ssl.crt/
vi /etc/httpd/conf.d/ssl.conf

註解 SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
註解 SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
加入 SSLCertificateFile /etc/httpd/conf/ssl.crt/your.host.name.pem

設立帳號密碼

mkdir /etc/httpd/passwd
chown root:apache /etc/httpd/passwd
chmod 750 /etc/httpd/passwd
htpasswd -c /etc/httpd/passwd/passwd.dav your_user_name
chown root:apache /etc/httpd/passwd/passwd.dav
chown 640 /etc/httpd/passwd/passwd.dav

建立 WebDAV 目錄

mkdir /var/www/webdav
chown root:apache /var/www/webdav
chmod 750 /var/www/webdav

建立公用資料夾、使用者資料夾

mkdir /var/www/webdav/public
chown apache:apache /var/www/webdav/public
chmod 750 /var/www/webdav/public

mkdir /var/www/webdav/your_user_name
chown apache:apache /var/www/webdav/your_user_name
chmod 750 /var/www/webdav/your_user_name

設定 WebDAV 目錄存取規則

vi /etc/httpd/conf/httpd.conf

Alias /webdav/ "/var/www/webdav/"
<Directory /var/www/webdav>
        DAV on
        SSLRequireSSL
        AuthType Basic
        AuthName "WebDAV Storage"
        AuthUserFile /etc/httpd/passwd/passwd.dav
</Directory>
<Directory /var/www/webdav/public>
        require valid-user
</Directory>
<Directory /var/www/webdav/your_user_name>
        require user your_user_name
</Directory>

service httpd restart

>>> 安裝 Mozilla Calendar (Mozilla 系列: Firefox、Thundbird、Application suite 外掛模組)

啟動 Mozilla 系列瀏覽器, 連結到 http://www.mozilla.org/projects/calendar/download.html, 點選適合的安裝項目即可.

ps. 已知 2005-01-11 只適用於 Firefox 0.8 ~ 1.0.x 版

安裝後, 重新啟動瀏覽器即可使用 Mozilla Calendar.

以 Firefox 為例, 點選「工具」→「Calendar」即可啟動 Mozilla Calendar.

>>> 安裝 Mozilla Sunbird (非依附於瀏覽器的獨立軟體)

啟動任一種瀏覽器, 連結至 http://www.mozilla.org/projects/calendar/sunbird_download.html, 點選適合的作業平台即可下載.

ps. Linux 版本需 libstdc++5 套件

>>> 使用 Mozilla Calendar (以新增 Public 公用行事曆為例)

  • 啟動 Mozilla Firefox, 點選「工具」→「Calendar」
  • 點選「Calendars」
  • 在「Calendars」空白欄位上按滑鼠右鍵, 點選 "New Calendar"
  • Calendar Name: Public
    Color: 選擇代表顏色
    按「確定」
  • 編輯行程內容 (在月曆上按滑鼠右鍵, 點選 "New Event...")
  • 在「Calendars」的 "Public" 欄位上按滑鼠右鍵, 點選 "Publish Entire Calendar"
  • 於 Publishing URL 欄位中輸入: https://your.host.ip.addr/webdav/public/public.ics
    其中, public.ics 是 Public 這個行事曆的資料檔名, 可隨意取名
    建議以 https:// 加密連結, 以確保資料傳輸的安全性
    過程中若詢問帳號密碼, 以先前 htpasswd 所設定的帳號密碼進行確認
  • 點選 "Publish" 即可將行事曆發送至 HTTP Server
  • 點選 "Close" 關閉 Publish Calendar 對話視窗
  • 再次於「Calendars」的 "Public" 欄位上按滑鼠右鍵, 點選 "Edit Calendar", 勾選 "Automatically publish your changes to the remote calendar?" 即可於每次編輯完行程後, 自動更新 HTTP Server 上的資料
  • 以相同方式, 再行建立使用者個人行事曆即可

>>> 使用 Mozilla Sunbird (以新增 Public 公用行事曆為例)

  • 啟動 Mozilla Sunbird
  • 點選「Calendars」
  • 在「Calendars」空白欄位上按滑鼠右鍵, 點選 "New Calendar"
  • 點選 "Remote" → Next
    Format: WebDAV, Location: https://your.host.ip.addr/webdav/public/public.ics → Next
    Name: Public, Color: 隨意 → Next
    輸入先前以 htpasswd 設定的帳號密碼
    接著會出現錯誤訊息, 因為找不到 public.ics, 先不予理會, 點選 "Finish" 回到 Sunbird 畫面
  • 再次於「Calendars」的 "Public" 欄位上按滑鼠右鍵, 點選 "Edit Calendar", 取消勾選 "Read-only"
  • 編輯行程內容 (在月曆上按滑鼠右鍵, 點選 "New Event...")
  • 編輯完成後, Sunbird 自動會更新 HTTP Server 上的資料
  • 以相同方式, 再行建立使用者個人行事曆即可


參考資料:

相關網頁:


--- 2007.07.24 補充:

新版的 Mozilla Sunbird 開始支援 Google Calendar:

linux.com - Latest Mozilla Sunbird is a well-connected calendar

Posted by Jamyy at 2005年12月28日 14:33

Trackback Pings

TrackBack URL for this entry:
http://cha.homeip.net/cgi-bin/mt/mt-tb.cgi/154

Comments

您好:
想請教您,小弟現在有個需求,是大家可以共用行事曆,也就是A可以看到B的行程,B也可以看到A的,但無法互相寫到對方的行事曆上,我想到的方式有二,一種就是開放一個如上面所提的Public
但會發生不知道這是A或B所打的行程,另一種則為我將兩個人的行事曆都加入sunbird,但這樣會可以寫到對方的行事曆上,如果我手動在A將B的行事曆改為唯讀,就可以稍微解決,但如果User自行去將唯讀取消就失效了,且只要將sunbird關閉在開啟,唯讀這個選項並不會紀錄,反而照預設值,不知道是不是bug,請問關於這共用行事曆這方面有沒有好的解決方案,之前使用過openwebmail的行事曆,但還是無法克服共用這部分,只能用同一帳號登入,不知道您是否有研究?或是有甚麼可以建議的方案?謝謝...

Posted by: jay at 2008年03月18日 13:37