http://wiki.extmail.org/extmail_upgrade_howto
本文档用于升级ExtMail,ExtMan版本。
本文档只能适用于数据库是mysql的版本,假设安装邮局的域名为extmail.org,请根据自身实际情况予以修改。
1、停止Apache服务:
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
使用updatecf.pl(fengyong提供) 程序升级extmail/extman ,此脚本从旧配置文件中读取参数,再替换新配置文件的参数。如果有新的参数将会保留默认值,以保正程序不会出错。
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、更改ExtMail,ExtMan的cgi目录权限
shell
# chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/
# chown -R vuser:vgroup /var/www/extsuite/extman/cgi/
说明: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