發新話題
打印

extmail 升級方法

extmail 升級方法

http://wiki.extmail.org/extmail_upgrade_howto

 

一、版权声明:

  • 本文版权归作者所有,如其他个人、第三方网站或媒体报刊等需转载全文或节选,为支持我们的工作,请务必注明如下信息:
  • 文档所有者:Extmail Dev Team;
  • 项目首页:http://www.extmail.org
  • 如果因此而给您带来麻烦,请您原谅,谢谢合作。

二、关于此文

  • 版  本:0.10
  • 作  者:wxd5981 <wxd5981 (at) gmail (dot) com , Liushaobo <Liushaobo (at) extmail (dot) org>
  • 最后更新:2009-11-10
  • 创建日期:2008-10-13

本文档用于升级ExtMailExtMan版本。

本文档只能适用于数据库是mysql的版本,假设安装邮局的域名为extmail.org,请根据自身实际情况予以修改。

三、升级步骤

1、停止Apache服务:

shell

# service httpd stop

2、备份邮件数据:

shell

# mkdir -p /home/domains/mailbackup
# mkdir -p /opt/extmailbak   #存放此次升级过程中的备份文件,确保此分区有足够空间
# mv /home/domains/extmail.org  /home/domains/mailbackup
# cd /home/domains           #确保此分区有足够空间
# tar cvf mailbackup.tar extmail.org
# mv mailbackup.tar /opt/extmailbak

3、备份Mysql:

shell

# cd /var/lib/mysql
# tar cvf extmail.tar extmail
# mv extmail.tar /opt/extmailbak

4、备份extmail,extman

shell

# cd /var/www/extsuite
# mv extmail extmail.bak
# mv extman extman.bak

四、转换编码格式:

从gb2312转成utf-8

注意事项:如您的ExtMail版本已经在1.0版本之后,则不需要执行这一步骤。
因ExtMail1.0版本以后的字符编码使用了utf-8,ExtMail1.0版本之前使用的是gb2312,因此要对编码进行转换:

1、使用Extmail项目组负责编写的一个升级脚本: maildir_upgrade_mysql-1.0
下载地址是: http://www.extmail.org/cgi-bin/download.cgi
在此我们将其下载到/opt目录下,解压。

2、编辑functions文件: 将下面三行:

BASEDIR="/home/domains"
ICONV="/usr/bin/iconv -f gb2312 -t utf-8"
FROMCHAR="gb2312" 

更改为:

BASEDIR="/home/domains/mailbackup"
ICONV="/usr/bin/iconv -f gbk -t utf-8"
FROMCHAR="gbk" 

注意:此步骤很重要,请确保function文件配置如上面所视,即将gb2312全部更改为gbk,否则某些中文转换会报错。

3、执行start.sh脚本:

shell

# /opt/maildir_upgrade_mysql-1.0/start.sh

将提示你是否要进行?如果要请输入大写Y,然后回车,即进行转换。转换完后,默认在/tmp/extmail_upgrade 下保存有转换的log(conversion.log),除此外,转换失败的域名还将记录详细的日志到/tmp/extmail_upgrade/your-domain.txt (域名.txt)。全过程有彩色的记录提示,例如成功则显示[OK],失败红色显示[FAILED],跳过则[IGNORED]。
凡是转换成功的域名,如果下一次再执行转换将被忽略。
备注:gb2312编码转换到utf-8编码.具体解释请参考:http://www.extmail.org/forum/thread-3109-1-1.html

4、转换成功后,将mail存储目录移动到/home/domains文件夹下

shell

# mv /home/domains/mailbackup/* /home/domains 

五、升级ExtMail,ExtMan版本

使用updatecf.pl(fengyong提供) 程序升级extmail/extman ,此脚本从旧配置文件中读取参数,再替换新配置文件的参数。如果有新的参数将会保留默认值,以保正程序不会出错。

  • 备注:-old和-def参数在实际操作时请多加一个“中划线”,这是wiki显示不了两个“中划线”,因为对wiki的代码还不熟悉,不知道怎么设置,有知道的朋友请指点一下,谢谢;

1、配置extman最新版本:

shell

# cd /var/www/extsuite
# tar -zxvf /root/src/extman-1.1.tar.gz
# mv extman-1.1 extman
# mv ./extman/webman.cf ./extman/webman.cf.default
# chmod +x ./extman/contrib/updatecf.pl
# ./extman/contrib/updatecf.pl start –old=./extman.bak/webman.cf –def=./extman/webman.cf.default > ./webman.cf

2、配置extmail最新版本:

shell

# cd /var/www/extsuite
# tar -zxvf /root/src/extmail-1.2.tar.gz
# mv extmail-1.2 extmail
# cd /var/www/extsuite
# ./extman/contrib/updatecf.pl start –old=./extmail.bak/webmail.cf –def=./extmail/webmail.cf.default > ./webmail.cf

3、升级ExtMan的mysql脚本:

注意事项:这里是从低到高依次执行sql脚本。

ExtMan版本目前是0.2beta3 ,那么就需要执行:

upgrade_0.2beta3_to_0.2.0.sql
upgrade_0.2.0_to_0.2.1.sql
upgrade_0.2.1_to_0.2.2.sql
upgrade_0.2.3_to_0.2.4.sql

例:当ExtMan版本目前是0.2.3
导入sql脚本的方法,执行以下命令导入sql脚本,默认root密码为空:

shell

# mysql -u root -p < /var/www/extsuite/extman/docs/upgrade_0.2.3_to_0.2.4.sql

4、更改ExtMailExtMan的cgi目录权限

shell

# chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/
# chown -R vuser:vgroup /var/www/extsuite/extman/cgi/

六、更新mailgraph_ext

说明:mailgraph_ext的qmonitor功能集成到mailgraph

shell

# mv /usr/local/mailgraph_ext /usr/local/mailgraph_ext.bak
# cp -r /var/www/extsuite/extman/addon/mailgraph_ext /usr/local/
# /usr/local/mailgraph_ext/mailgraph-init restart

说明:extman自1.0后加入了系统状态功能cmdserver

shell

# /var/www/extsuite/extman/daemon/cmdserver --daemon
# echo "/var/www/extsuite/extman/daemon/cmdserver -v -d" >> /etc/rc.d/rc.local

七、启动服务并验证

shell

# service httpd start

服务启动后,使用测试账号验证.到此ExtMail/ExtMan的升级结束.

TOP

發新話題