星期四, 11月 25, 2010

open webmail 2.53 with SLES 11

首先要讓 SLES 支援 one click install 必須安裝 yast2-metapackage-handler 這個套件

yast2-metapackage-handler | YaST2 - Easy Installation of Add--> | 套件
設定啟動 apache2 並預設開機啟動

#rcapache2  status
#rcapache2  start
#rcapache2  status

#chkconfig    apache2  --list
#chkconfig    apache2  on
#chkconfig    apache2  --list


安裝之前搜尋一下相關套件

# zypper  search  perl-MIME
正在載入儲存庫資料...
正在讀取已安裝的套件...

S | 名稱            | 摘要                                          | 類型      
--+-----------------+-----------------------------------------------+-----------
 | perl-MIME-tools | modules for parsing (and creating!) MIME en-> | 套件      
 | perl-MIME-tools | modules for parsing (and creating!) MIME en-> | srcpackage


# zypper   install   perl-MIME-tools

正在載入儲存庫資料...
正在讀取已安裝的套件...
正在解析套件相依性...

將會安裝下列新的套件:
 perl-IO-stringy perl-MailTools perl-MIME-tools

全部下載大小:396.0 K。 完成操作後,將使用額外的 837.0 K。
要繼續嗎? [是/否]:  y

使用 one Click Install 安裝 perl-Text-Iconv
# OneClickInstallUI   http://software.opensuse.org/ymp/home:computersalat:OpenXPKI/SLE_11/perl-Text-Iconv.ymp


下載 open webmail 套件 可以到 ( http://www.openwebmail.org/openwebmail/download/release/ 尋找最新的版本)

#wget  http://www.openwebmail.org/openwebmail/download/release/2.53/openwebmail-2.53.tar.gz
解開前先觀察 /srv/www 目錄
# ls   /srv/www/
cgi-bin  htdocs

解壓縮套件, 會解出 cgi-bin and data 目錄   
  • -C  指定目錄  (  放在 /srv/www 可以直接覆蓋 cgi-bin )
# tar  zxvf  openwebmail-2.53.tar.gz   -C   /srv/www/


# ls /srv/www/
cgi-bin  data  htdocs

移動 openwebmail 目錄到網站根目錄下
# mv   /srv/www/data/openwebmail/    /srv/www/htdocs/


修改 openwebmail.conf  對應到 相對路徑

# vi   /srv/www/cgi-bin/openwebmail/etc/openwebmail.conf
domainnames             auto
auth_module             auth_unix.pl
mailspooldir            /var/mail
ow_cgidir               /usr/local/www/cgi-bin/openwebmail
ow_cgiurl               /cgi-bin/openwebmail
ow_htmldir              /usr/local/www/data/openwebmail
ow_htmlurl              /openwebmail
logfile                 /var/log/openwebmail.log

改為
domainnames             auto
auth_module             auth_unix.pl
mailspooldir            /var/mail
ow_cgidir               /srv/www/cgi-bin/openwebmail
ow_cgiurl               /cgi-bin/openwebmail
ow_htmldir              /srv/www/htdocs/openwebmail
ow_htmlurl              /openwebmail
logfile                 /var/log/openwebmail.log


修改 dbm.conf 相關設定

# vi   /srv/www/cgi-bin/openwebmail/etc/defaults/dbm.conf
dbm_ext                 .db
dbmopen_ext             none
dbmopen_haslock         no

改為

dbm_ext                 .pag
dbmopen_ext             none
dbmopen_haslock         no

複製相關檔案
# cp  /srv/www/cgi-bin/openwebmail/etc/defaults/dbm.conf   /srv/www/cgi-bin/openwebmail/etc/


修改 auth_unix.conf 相關設定
# vi  /srv/www/cgi-bin/openwebmail/etc/defaults/auth_unix.conf
passwdfile_plaintext    /etc/passwd
passwdfile_encrypted    /etc/master.passwd
passwdmkdb              /usr/sbin/pwd_mkdb
check_expire            no
check_nologin           no
check_shell             no
check_cobaltuser        no
change_smbpasswd        no

改為

passwdfile_plaintext    /etc/passwd
passwdfile_encrypted    /etc/shadow
passwdmkdb              none
check_expire            no
check_nologin           no
check_shell             no
check_cobaltuser        no
change_smbpasswd        no

複製相關檔案
# cp   /srv/www/cgi-bin/openwebmail/etc/defaults/auth_unix.conf    /srv/www/cgi-bin/openwebmail/etc/

修改相關權限

# chmod  4555   /usr/bin/suidperl 
# chmod  4555   /srv/www/cgi-bin/openwebmail/openwebmail*.pl
# chown  root.mail   /srv/www/cgi-bin/openwebmail/openwebmail*.pl

建立 openwebmail_path.conf
# vi   /etc/openwebmail_path.conf

 /srv/www/cgi-bin/openwebmail

進行初始化
# /srv/www/cgi-bin/openwebmail/openwebmail-tool.pl   --init



連線測試

http://網站名稱/cgi-bin/openwebmail/openwebmail.pl



發現 openwebmail 的domain name 沒有抓到正確的 domain name

# vi /srv/www/cgi-bin/openwebmail/etc/openwebmail.conf

 #domainnames            auto
改成
 domainnames             mail.benesse.com.tw


透過 web 傳送信件 產生錯誤 訊息如下

Software error:

Wide character in subroutine entry at /srv/www/cgi-bin/openwebmail/modules/tool.pl line 160.

For help, please send mail to the webmaster ([no address given]), giving this error message and the time and date of the error.


解決方式

檢查版本

# perl -e 'use CGI; print "$CGI::VERSION\n";'
3.29

安裝 locate 套件

# zypper install findutils-locate

# find / -name CGI.pm
/usr/lib/perl5/5.10.0/CGI.pm

# vi /usr/lib/perl5/5.10.0/CGI.pm

#    my $utf8    = $charset eq 'utf-8';
改成
   my $utf8    = 0;

修正成功


參考資料



沒有留言: