6天/每天12小时安装qmali的一点心得

12/3/2006来源:Qmail人气:8204

  啊,花了6*12=72小时,我的qmail终于搞定了,多谢xmy和peijun.jiang两位版主的热心帮助.下面是偶的一写心得.

安装过程中一定要细心.
我安装的时候同时参考了4份类似的不同高手写的功略,想对比着找出最好的安装方法,结果事与愿违,因为每个人安装的目录不通,我先按这篇文章的方法安装, 然后再按另一篇文章的方法配置,也没仔细去检查路径,结果就造成这个困扰了我近3天的难题.(最开始的3天安装了imap,twig等,均告失败)
安装过程很枯燥的,贵在坚持.

下面是我安装中遇到的一些问题及解决办法:

1.安装到vpopmail 时,make出现以下错误:

make
make all-recursive
make[1]: Entering directory `/home/mm/vpopmail-5.2.1'
Making all in cdb
make[2]: Entering directory `/home/mm/vpopmail-5.2.1/cdb'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/mm/vpopmail-5.2.1/cdb'
make[2]: Entering directory `/home/mm/vpopmail-5.2.1'
gcc -I. -I/usr/local/MySQL/include/mysql -g -O2 -Wall -c vauth.c
In file included from vauth.c:32:
vmysql.h:53:22: warning: multi-line string literals are dePRecated
gcc -I. -I/usr/local/mysql/include/mysql -g -O2 -Wall -c file_lock.c
gcc -I. -I/usr/local/mysql/include/mysql -g -O2 -Wall -c vpalias.c
rm -f libvpopmail.a
ar cru libvpopmail.a vpopmail.o md5.o bigdir.o vauth.o file_lock.o vpalias.o cd/*.o
ranlib libvpopmail.a
gcc -I. -I/usr/local/mysql/include/mysql -g -O2 -Wall -c vchkpw.c
gcc -g -O2 -Wall -o vchkpw vchkpw.o libvpopmail.a -L/usr/lib/mysql -lmysqlcient -lz -lnsl -lcrypt -lz -lm
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
make[2]: *** [vchkpw] Error 1
make[2]: Leaving directory `/home/mm/vpopmail-5.2.1'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mm/vpopmail-5.2.1'
make: *** [all-recursive-am] Error 2

错误信息显示 cannot find -lmysqlclient

解决办法,安装MySQL-devel-4.0.14-0.i386.rpm ,或更高版本的

2.ezmlm 建表时出错

# /usr/local/qmail/bin/ezmlm/ezmlm-mktab -d testlist | mysql -uezmlm
-pezmlm -f ezmlm
ERROR 1064 at line 2: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'This is the standard database version. You do not need to
creat

这个问题我没有搞定,xmy兄传了一个库给我解决的,现在尚为发现它往数据库里写数据,建这个库不成功对收发邮件没有影响,我把这个库用phpmyadmin导出,需要的导入就可以了

# phpMyAdmin MySQL-Dump
# version 2.4.0
# http://www.phpmyadmin.net/> (download page)
#
# 主机: localhost
# 建立日期: Sep 02, 2003 at 02:48 PM
# 伺服机版本: 4.0.14
# PHP 版本: 4.3.3
# 数据库 : `ezmlm`
# --------------------------------------------------------

#
# 数据表的结构 `maillist`
#

CREATE TABLE maillist (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_allow`
#

CREATE TABLE maillist_allow (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_allow_slog`
#

CREATE TABLE maillist_allow_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_cookie`
#

CREATE TABLE maillist_cookie (
msgnum int(10) unsigned NOT NULL default '0',
tai timestamp(14) NOT NULL,
cookie char(20) NOT NULL default '',
chunk tinyint(3) unsigned NOT NULL default '0',
bodysize int(10) unsigned NOT NULL default '0',
PRIMARY KEY (msgnum)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_deny`
#

CREATE TABLE maillist_deny (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_deny_slog`
#

CREATE TABLE maillist_deny_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_digest`
#

CREATE TABLE maillist_digest (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_digest_cookie`
#

CREATE TABLE maillist_digest_cookie (
msgnum int(10) unsigned NOT NULL default '0',
tai timestamp(14) NOT NULL,
cookie char(20) NOT NULL default '',
chunk tinyint(3) unsigned NOT NULL default '0',
bodysize int(10) unsigned NOT NULL default '0',
PRIMARY KEY (msgnum)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_digest_mlog`
#

CREATE TABLE maillist_digest_mlog (
msgnum int(10) unsigned NOT NULL default '0',
listno int(10) unsigned NOT NULL default '0',
tai timestamp(14) NOT NULL,
subs int(10) unsigned NOT NULL default '0',
done tinyint(4) NOT NULL default '0',
PRIMARY KEY (listno,msgnum,done)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_digest_slog`
#

CREATE TABLE maillist_digest_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_mlog`
#

CREATE TABLE maillist_mlog (
msgnum int(10) unsigned NOT NULL default '0',
listno int(10) unsigned NOT NULL default '0',
tai timestamp(14) NOT NULL,
subs int(10) unsigned NOT NULL default '0',
done tinyint(4) NOT NULL default '0',
PRIMARY KEY (listno,msgnum,done)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_mod`
#

CREATE TABLE maillist_mod (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_mod_slog`
#

CREATE TABLE maillist_mod_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `maillist_slog`
#

CREATE TABLE maillist_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist`
#

CREATE TABLE testlist (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_allow`
#

CREATE TABLE testlist_allow (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_allow_slog`
#

CREATE TABLE testlist_allow_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_cookie`
#

CREATE TABLE testlist_cookie (
msgnum int(10) unsigned NOT NULL default '0',
tai timestamp(14) NOT NULL,
cookie char(20) NOT NULL default '',
chunk tinyint(3) unsigned NOT NULL default '0',
bodysize int(10) unsigned NOT NULL default '0',
PRIMARY KEY (msgnum)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_deny`
#

CREATE TABLE testlist_deny (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_deny_slog`
#

CREATE TABLE testlist_deny_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_digest`
#

CREATE TABLE testlist_digest (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_digest_cookie`
#

CREATE TABLE testlist_digest_cookie (
msgnum int(10) unsigned NOT NULL default '0',
tai timestamp(14) NOT NULL,
cookie char(20) NOT NULL default '',
chunk tinyint(3) unsigned NOT NULL default '0',
bodysize int(10) unsigned NOT NULL default '0',
PRIMARY KEY (msgnum)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_digest_mlog`
#

CREATE TABLE testlist_digest_mlog (
msgnum int(10) unsigned NOT NULL default '0',
listno int(10) unsigned NOT NULL default '0',
tai timestamp(14) NOT NULL,
subs int(10) unsigned NOT NULL default '0',
done tinyint(4) NOT NULL default '0',
PRIMARY KEY (listno,msgnum,done)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_digest_slog`
#

CREATE TABLE testlist_digest_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_mlog`
#

CREATE TABLE testlist_mlog (
msgnum int(10) unsigned NOT NULL default '0',
listno int(10) unsigned NOT NULL default '0',
tai timestamp(14) NOT NULL,
subs int(10) unsigned NOT NULL default '0',
done tinyint(4) NOT NULL default '0',
PRIMARY KEY (listno,msgnum,done)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_mod`
#

CREATE TABLE testlist_mod (
hash tinyint(3) unsigned NOT NULL default '0',
address varchar(255) NOT NULL default '',
KEY h (hash),
KEY a (address(12))
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_mod_slog`
#

CREATE TABLE testlist_mod_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# 数据表的结构 `testlist_slog`
#

CREATE TABLE testlist_slog (
tai timestamp(14) NOT NULL,
address varchar(255) NOT NULL default '',
fromline varchar(255) NOT NULL default '',
edir char(1) NOT NULL default '',
etype char(1) NOT NULL default '',
KEY tai (tai)
) TYPE=MyISAM;

----


3.先想起来这么多,还有些好菜的问题,我就不贴上来献丑了.


装完后,我就该研究liunx下的安全问题了.