转自:http://mail.savs.hcc.edu.tw/~chuavv/articles/openwebmail-tw.html
安裝OpenWebMail
OpenWebMail 最新版本是2.53。你在以下網址下載:
http://openwebmail.acatysmoof.com/download/release/openwebmail-2.53.tar.gz
因為我們使用的 Linux 是 Fedora 8,所以這個安裝程序是針對 Fedora 8。但是其它 RedHat/Fedora 應該都可以使用。
我剛升級至 Fedora 9。以下是我遇到的困難和如何解決這些問題:
-
如果你使用 SpeedyCGI,你已經安裝的 SpeedyCGI 在升級至 Fedora 9 之後已經不能用了。要重新編譯從 http://daemoninc.com/SpeedyCGI/download.html 下載的來源程式也有問題。
要解決這個問題的方法是從 http://koji.fedoraproject.org/koji/buildinfo?buildID=48045 下載 source rpm,然後將這個 source rpm 所提供的 patches 引進到原來的 SpeedyCGI,然後重新編譯。 你在這裡可以下載這個軟體。
刪除已安裝的 SpeedyCGI,然後安裝新的:
rpm -e speedycgi
rpm -Uvh Fedora-9-speedycgi-2.22-1.i386.rpm
cd /usr/bin
cp speedy speedy_suidperl
chmod 4555 speedy_suidperl請注意,SpeedyCGI 平常會把它建的檔案放在 /tmp 但是我改設把檔案放在 /var/log/openwebmail/。 所以你必須手動建這個次目錄:
cd /var/log
mkdir openwebmail - 如果你使用 openwebmail 的 quota_unixfs.pl,已經安裝的 perl-Quota 也不能用了。我建了新的 rpm,也提供給你 下載。把這個新的包裝就可以了:
rpm -Uvh perl-Quota-1.6.2-1.i386.rpm
Openwebmail 是用 perl 寫成的。除了 perl 包裝要安裝之外,也需要以下 perl 模組:
perl-CGI
perl-Digest
perl-Digest-MD5
perl-MIME-Base64
perl-libnet
事實上,Fedora 8 的 perl 包裝已經包含了上面所有 perl 模組。
Openwebmail 也需要以下軟體:
perl-suidperl
aspell
perl-Text-Iconv
這三個軟體 Fedora 8 都有。所以如果還沒有安裝的話,在 Fedora 8 的安裝 CD 可以找到或者使用 yum 來安裝。
現在我們要開始安裝 OpenWebMail。我假設 OpenWebMail 軟体放在:
/root/openwebmail-2.53.tar.gz
o 首先,到 apache 的 root directory:
cd /var/www
o 將 openwebmail-2.53.tar.gz 解開,請注意參數:
tar -zxvBpf /root/openwebmail-2.53.tar.gz
o 解開之後會建立以下兩個子目錄:
data
cgi-bin/openwebmail
o 將 data 子目錄下的 openwebmail 子目錄搬到 html/ 下:
mv data/openwebmail html/
o 刪除﹝已經是空的﹞子目錄 data:
rmdir data
o 現在要更改 OpenWebMail 的設定檔案:
編輯 /var/www/cgi-bin/openwebmail/etc/openwebmail.conf,改以下變數:
mailspooldir /var/mail
== > /var/spool/mail
ow_cgidir /usr/local/www/cgi-bin/openwebmail
== > /var/www/cgi-bin/openwebmail
ow_htmldir /usr/local/www/data/openwebmail
== > /var/www/html/openwebmail加: spellcheck /usr/bin/aspell -a -S -w "-" -d @@@DICTIONARY@@@ -p @@@PDICNAME@@@
spellcheck_pdicname .aspell_words讀信件時,要自動使用信件本身所定義的 charset,加:
default_readwithmsgcharset yes如果你的 server 有啟動 quota 的話,你也可以加:
quota_module quota_unixfs.pl
請注意:如果你要使用 Openwebmail 的 quota 功能,你必須安裝 perl 的 Quota 軟體。你可以下載來源程式的最新版本在:
http://search.cpan.org/~tomzo/
執行以下指令:
cd /var/www/cgi-bin/openwebmail/etc/編輯 dbm.conf,改以下變數:
cp defaults/dbm.conf .dbm_ext .db
dbmopen_ext none ==> .db
dbmopen_haslock no執行以下指令:
cd /var/www/cgi-bin/openwebmail/etc/編輯 auth_unix.conf
cp defaults/auth_unix.conf .passwdfile_encrypted /etc/master.passwd
==> /etc/shadow
passwdmkdb /usr/sbin/pwd_mkdb
==> none
check_shell no ==> yes做好了設定,必須執行:
/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
這程式會初始 openwebmail 所使用的對應表,也同時偵測「dbm_ext、dbmopen_ext和dbmopen_haslock」的設定是否正確。如不是,程式會列出正確的參數。請按照程式的指示更改參數。
這樣就安裝好了!現在可以連接了:
http://your.domain.edu.tw/cgi-bin/openwebmail/openwebmail.pl
打這樣的網址,我感覺,有一點太長。如果使用者只打:
http://your.domain.edu.tw/openwebmail
那就方便很多。如你想這樣,請執行以下指令:
cd /var/www/html/openwebmail
rm -f index.html
mv redirect.html index.html
如果你感覺 openwebmail 的處理有一點慢,我 建議將 suidperl 改用 SpeedyCGI。
o 先下載 SpeedyCGI 的來源程式﹝CGI-SpeedyCGI-2.22.tar.gz﹞:
o 解壓、編譯、安裝:
tar xvfz CGI-SpeedyCGI-2.22.tar.gz
cd CGI-SpeedyCGI-2.2
perl Makefile.PL出現訊息:Compile mod_speedycgi (default no)? 安 Enter 就可以了。
編輯 speedy/Makefile。在第 150 列﹝DEFINE = -DSPEEDY_PROGRAM…﹞的列尾加 -DIAMSUID。make
make test
如果沒有問題就可以安裝:
make install
或者自己建一個 rpm 檔。要建 rpm 之前,編輯 util/build_rpms
第 80 列:刪掉這列 Serial: $serial
第 81 列:改 Copyright ==> License
make package
Warning! 'rpm' may core dump if you are not root.
Hit enter to continue: <ENTER>
Linux distribution [RedHat]: fedora
Distribution version [package redhat-release is not installed]: 8
RPM Release [1]: <ENTER>這樣就產生 binaries/fedora-8-speedycgi-2.22-1.i386.rpm。安裝:
rpm -Uvh fedora-8-speedycgi-2.22-1.i386.rpm
o Openwebmail 需要一個 suid root 的 speedy 程式。所以安裝 SpeedyCGI 之後:
cd /usr/bin
cp speedy speedy_suidperl
chmod 4555 speedy_suidperl
當然你要 OpenWebMail 用 speedy_suidperl。現在到 openwebmail 的目錄:
cd /var/www/cgi-bin/openwebmail
o 要使用 SpeedyCGI 必須將所有的 openwebmail*.pl 檔案的執行程式從:
#!/usr/bin/suidperl -T
改為:
#!/usr/bin/speedy_suidperl
如果你要用手動的方式一個一個改的話就很麻煩。我建議在 /var/www/html/openwebmail 裡寫一個 script﹝檔名為 ch2speedy﹞:
#!/bin/bash
for name in open*.pl; do
if [ "$name" != "openwebmail-tool.pl" ]
then
cp -a $name ${name}.old
sed -e "s@suidperl -T@speedy_suidperl@" < ${name}.old > ${name}
fi
done
請參考:http://www.bluelavalamp.net/owmspeedycgi/
將 ch2speedy 可以執行:
chmod 700 ch2speedy
現在執行 ch2speedy:
./ch2speedy
o 測試是否 openwebmail 執行的正常。如果沒有問題就可以把所有 *.old 檔案刪除:
rm -f *.old
蔡由世神父
2002/12/29
更新:2008/05/16