QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6970|回复: 19

安装Qmail的一点心得

[复制链接]
发表于 2003-5-19 20:26:19 | 显示全部楼层 |阅读模式
安装Qmail+qmailadmin+sqwebmail+IGEUNS+smtp认证补丁的一点心得

作者:纪增雄
E-mail:[email protected]
    我是用iceblood的包来安装的,在安装过程中出了一些错误,得到了peng老大和gadfly老大还有论坛上很多朋友的帮忙,特把我安装过程中的一点心得在这里献丑了。文章中有一些是我参考论坛上的一些帖子的。
    本文是我在RH Linux 7.3+apache2+php4+mysql3.23.5x中成功实现的,以下提到的软件我

全部打成一个包,各位可以到这里下载:
http://www.haohaoo.com/qmail.tar.gz

    第一、请先安装好Apache+php+mysql,虽然iceblood的包里面有带apache,不过我还是建议自己安装apache比较好。还有,mysql尽量用新一点的版本,我听有的朋友说他安装iecblood包后mysql中老是没有生成vpopmail的库,后来换个新点的版本就可以了,我自己是用3.23.5x的。至于这个的安装方法我就不说了,你搜索一下论坛的帖子就知道了。

    第二、安装iceblood的包,我用的是Qmail_setup-v1.5.4a.stable.tar.gz版本,执行如

下命令:
#tar -zxvf Qmail_setup-v1.5.4a.stable.tar.gz
#cd Qmail_setup
#vi setup  //编辑setup安装文件,其各项设置解释如下:

[code:1]
# Please set your system,default is FreeBSD,more have Linux
_OS="FreeBSD"                     //设置你的系统为FreeBSD,其他还可以设置为Linux

# Please set your language,default is EN,more have CN
_LANG="EN"                      //设置你的语言为英语,其他还有

# If you don't need install apache
# Please set the _INSTALLAPACHE="NO"
# if you want change the apache install
# path, you can modify the _APACHEPATH
_INSTALLAPACHE="YES"            //这里设置你是否安装apache如果你不安装的话请
把"YES"该成"NO"。

# If Qmail Users Already exist
# Please set the ADDQMAILUSERS="NO"
_ADDQMAILUSERS="YES"           //这里是你是否添加qmail用户,有时linux系统因为
默认就有了qmail用户,所以可以把这个改成"NO"跳过用户的添加,不过您不知道是否添
加了,还是用"YES"为好。

# Domain Name
_DOMAIN=Domain.com                   //这里设置你的默认域名,我这里默认是

Domain.com,
如果你的域名是abcd.com你就把"Domain.com"改成abcd.com就行了。

# MailAdmin Password
_MAILPASSWD=1234    //这里设置你默认的域名的管理员密码,初使设置为1234,你也可
以修改,当然你也可以在安装后用/home/vpopmail/bin/vpasswd [email protected]来修改
管理员密码。

# set you CGI Path
_CGIBIN=/usr/local/apache/cgi-bin           //这里是设置你的CGI路径,在FreeBSD
下一般apache装在/usr/local/apache所以就是“/usr/local/apache/cgi-bin”这里你也可以
自己修改,比如linux默认是/var/www/cgi-bin如果你用在linux上,那么你就可以把这里改
成这个了。

# set you Html Path
_HTMLPATH=/usr/local/apache/htdocs          //同上这里是你的HTML文件存放的路径,
linxu的好象是/var/www/htdocs 。

现在我们再来看高级设置部分。(高级设置在一般情况下可以不必去动他)
高级设置在初级设置比较下面的位置。
###########--------Advanced set--------#################
# "n" disables quotas, or # where # is a number in bytes NOT y, do not use "Y",

"y" is BAD
_MAILSIZE=n                //这里是设置用户邮件大小的地方,默认是无限制,假如你想

限制
为2M那么你把“n”设置为2000000s就行了。这里千万不要用“y”这个字母,不然会出错的!


# enable virutal domain lookup via reverse ip address lookup for virtual domains.

"y" and "n"
_USERCRUISE=n    //这里是设置用户漫游的地方,由于有SMTP验证,所以在这里一般为"n"。
# qmail install path
_QMAILPATH=/var/qmail                   //一般情况安装qmail都安装在/var/qmail下,
但考虑到一部分人想修改一下,所以就加了这个选项。最好不要修改。
# apache install path
_APACHEPATH=/usr/local/apache        //这里是如果你安装apache的话,你可以修改

apache的
安装路径,一旦修改了前面的CGI和HTML路径也请随之修改。建议不要修改。

# do you use system password. "y" and "n"
_SYSTEMPASS=n             //这里是设置qmail是否使用系统帐号的地方,如果使用改成y的

话,
那么你的qmail就不再是虚拟用户了,而切该包的很多功能也将丢失。(说实话我也没用过,


果如何我也不知道~ :P)
# install vpopmail "YES" or "NO"
_VPOPMAIL="YES"              //这里设置是否安装VPOPMAL
# install ezmlm "YES" or "NO"
_EZMLMIN="YES"                //这里设置是否安装邮件列表软件
# ezmlm coding
_EZMLM=ch_GB                   //这里设置邮件列表的语言
# install autorespond "YES" or "NO"
_AUTORESPOND="YES"              //这里设置是否安装自动回复
# install QmailAdmin "YES" or "NO"
_QMAILADMIN="YES"               //这里设置是否安装QmailAdmin

###########------sqwebmail set-----------##################
# install webmail "YES" or "NO"
_WEBMAIL="YES"            //这里是设置是否使用webmail的地方,考虑到很多朋友不需要


到webmail,或有更好的,所以就加了这个选项,如果不想用该成NO就可以了。
# webmail coding set.have "iso","gb2312","big5" and more.
_MIMESET=gb2312          //这里设置webmail的语言。


数据库设置部分,数据库本人使用的是使用mysql数据库,由于条件的限制,所以还没有把

sybase、oracle
等其他大型数据库也集成进去。有兴趣的朋友们可以尝试着试试。
##########--------SQL set---------################
# use mysql,default is no,if you use mysql for set "y"
_SQL=n             //这里是设置是否支持数据库,把n改成y的话就可以使用数据库了,并

切也请
设置以下数据库参数。
# mysql host
_SQLHOST=localhost        //数据库做在的位置,一般为本地也就是localhost。
# mysql user
_SQLUSER=root         //数据库用户名。
# mysql passwd
_SQLPASS=123456        //数据库密码。
# include path
_INCDIR=/usr/local/mysql/include/mysql      //mysql数据库的include文件路径。
# lib file path
_LIBDIR=/usr/local/mysql/lib/mysql           //mysql数据库的lib文件路径。

[/code:1]
    以上设置完毕后保存,输入chmod 755 setup 设置setup为可运行。(默认应该就是)然

后再./setup
就开始安装了。最好用./setup >install.log来进行安装,安装的整个过程都会记录在

install.log
这个文件里。
    执行setup安装后会出现如下的错误信息,不过不要管他,可以照用
[code:1]
./setup: [Linux: command not found
./setup: line 270:  9712 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd: /tmp/iceblood/Qmail_setup)
./setup: line 290: 11969 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd: /tmp/iceblood/Qmail_setup)
./setup: line 349: 12819 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 350: 12849 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 400: 14308 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
mv: cannot stat `/usr/include/string.h.bak': No such file or directory
./setup: line 401: 15760 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 449: 15788 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 450: 16641 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd: /tmp/iceblood/Qmail_setup)
[/code:1]
到这里iceblood的包就基本安装好了,你可以用
http://mail.domain.com/cgi-bin/qmailadmin
http://mail.domain.com/cgi-bin/sqwebmail
来用你的mail系统了,不过这样还很简陋。

    第三、安装IGEUNS,把IGEUNS包解开后修改config目录下的config_inc.php文件,其中各

项解释如下:
[code:1]
$CFG_BASEPATH = "/home/email";
$ CFG_BASEPATH -----是iGNEUS webmail安装在系统的路径。

$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_HOST -----是mysql服务器的地址。

$CFG_MYSQL_USER = 'root';
$CFG_MYSQL_USER -----是mysql服务器的用户名。

$CFG_MYSQL_PASS = '123456';
$CFG_MYSQL_PASS -----是mysql服务器的密码,根据你的实际填写

$CFG_HOSTNAME = "http://mail.haohaoo.com/";
$CFG_HOSTNAME-----是服务器的主机名,根据你的实际填写

$CFG_LANGUAGE = gb;
$CFG_LANGUAGE-----是系统默认语言,可有中英日可选。

$CFG_GMT = +8; // GMT time local
$CFG_GMT----是时区设置,中国选+8。

$CFG_TEMP = $CFG_BASEPATH."/../temp";
$CFG_TEMP----临时文件的位置,一般是/tmp,
则修改为:$CFG_TEMP = "/tmp";你也可以自己设置一个。
[/code:1]

修改login.php文件
[code:1]
<INPUT CLASS=myinput2 TYPE="text" NAME="name" VALUE="news"
SIZE="10" STYLE="font-family: Tahoma">
@
<INPUT TYEP="test" NAME="domain" VALUE="<?php echo $ Cookies_Domain;?>" SIZE="19"

CLASS="myinput2" STYLE='font-family:Tahoma'> ----删除@后面的句子,改变成以下:

<SELECT name=domain> <OPTION class=myinput2 selected
                    value=domain.com SIZE="19"

STYLE='font-family:Tahoma'>domain.com</OPTION></SELECT>
[/code:1]
login.php文件也可以不用修改,不过这样修改是为以后登陆方便点,其中domain.com修改为你的域名。

在mysql中创建address表,具体表结构如下:
[code:1]
create table address
(
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) unsigned NOT NULL default '0',
name varchar(64) NOT NULL default '',
email varchar(128) NOT NULL default '',
UNIQUE KEY id (id),
KEY pw_id (pw_id)
);
[/code:1]
修改原来的vpopmail表,方法如下:
[code:1]
use vpopmail;
alter table vpopmail drop primary key;
alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;
[/code:1]
(注:添加address table,是因为要使用igenus中的个人通讯录,添加pw_id是因为igenus用它来标识用户的唯一性的,但vpopmail用的是pw_uid)

    接下来更改你的apache的启动用户为:vpopmail 组为: vchkpw,不然你登陆IGEUNS就会出现下面的错误信息
[code:1]Warning: is_file() [function.is-file]: Stat failed for

/home/vpopmail/domains/haohaoo.com/test/.config (errno=13 - Permission denied) in

/home/email/config/config_inc.php on line 73
[/code:1]

    还有要修改一下/usr/local/qmail/bin/sendmail文件的权限为755,不然你的IGEUNS就不能发信了,因为qmail安装后把/usr/sbin/sendmail这个文件连接到他自己那里去了,可是权限默认全为700。


    第四、为qmail打补丁,默认安装好iceblood包后用smtp发信好像认证有点问题,打补丁

步骤如下:
[code:1]
#tar -zxvf Qmail_setup-v1.5.4a.stable.tar.gz  //解开iceblood包
#cd Qmail_setup
#tar -zxvf qmail-1.03.tar.gz  //解开qmail源码包
#cp ../qmail-smtpd.c qmail-1.03  //复制qmail-smtpd.c到qmail源码包里,默认这个文件

是和Qmail_setup在同一目录下的,输入命令后会出现一个提示,问你是否覆盖文件,选y。
#patch <qmail-103.patch //这个输入后就会提示叫你输入补丁路径,
输入路径:qmail-1.03/qmail-smtpd.c
输入完后就生成可编译文件
#cd qmail-1.03  //进入qmail源码目录
#make qmail-smtpd  //编译出qmail-smtpd这个补丁
[/code:1]

把qmail-1.03里面的qmail-smtpd复制到/usr/local/qmail/bin里面覆盖掉旧的文件,到这里我们补丁就打好了,你可以用outlook或者foxmail测试一下,不过向本域发信是不用认证的哦。

    好了,下课咯,如果有什么错误的地方,请各位指出。
发表于 2003-5-20 12:23:14 | 显示全部楼层
哈哈,又在这里碰到你了
我也装得好辛苦哦(我是一个个部件装的)
也多亏了
peng老大和gadfly老大

本贴建议得精华
回复

使用道具 举报

发表于 2003-5-20 12:31:34 | 显示全部楼层
另外,楼主的http://www.haohaoo.com/好像没设置好把^_^
回复

使用道具 举报

 楼主| 发表于 2003-5-22 12:39:00 | 显示全部楼层
我的haohaoo.com前段时间换空间了,以前是用asp的,现在换到linux服务器上去,网站还有没有时间去调整好
回复

使用道具 举报

发表于 2003-5-23 20:50:59 | 显示全部楼层
真的不错...
回复

使用道具 举报

发表于 2003-6-24 16:54:54 | 显示全部楼层
代码:

./setup: [Linux: command not found
./setup: line 270:  9712 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd: /tmp/iceblood/Qmail_setup)
./setup: line 290: 11969 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd: /tmp/iceblood/Qmail_setup)
./setup: line 349: 12819 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 350: 12849 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 400: 14308 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
mv: cannot stat `/usr/include/string.h.bak': No such file or directory
./setup: line 401: 15760 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 449: 15788 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 450: 16641 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd: /tmp/iceblood/Qmail_setup)

那位老大能够告诉我为什么会出现上面的错误呢?
回复

使用道具 举报

发表于 2003-6-28 08:06:37 | 显示全部楼层
非常不错
回复

使用道具 举报

发表于 2003-6-30 19:25:54 | 显示全部楼层

执行./qmail start 的其它错误信息

在运行 [root@tiger Qmail_setup]#./qmail start 过程中出现了以下错误:
     Starting Qmail services.......  
     http: Could not determine the server''s fully qualified domain name, using 127.0.0.1 for ServerName  
     httpd (pid 1235) already running  
     /usr/local/qmail/rc: Command not found.  
     [1]2104  
     [1] Exit 1 /usr/local/qmail/rc  
     /etc/qmail/smtp.sh:line 1: /usr/local/qmai/bin/splogger: No such file or directory  
     /etc/qmail/pop.sh:line 1: /usr/local/qmai/bin/splogger: No such file or directory  
     /etc/qmail/start:line5: /usr/local/qmail/webmail/libexec/authlib/authdaemond: No such file or directory
回复

使用道具 举报

发表于 2003-7-18 16:51:01 | 显示全部楼层
我安装完IGEUNS后,在login以后下面出现如下错误,请问是哪里的问题?
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
回复

使用道具 举报

发表于 2003-7-18 17:31:08 | 显示全部楼层
smtp补丁已经打过了,
不用打了.
是的PHP 的问题.
你可以这样试试:
大多数都是SESSION的问题
但是如果你PHP的register_globals = Off的
把login.php这段原来的代码
$G_USERNAME = $name;
$G_HOME = $home;
$G_DOMAIN = $domain;
$G_TIME = time();
$G_LANG = $Lang;
$G_ID = $pw_id;
$G_QUOTA = $pw_shell;
$G_NICKNAME = $pw_gecos;

换成如下:
$_SESSION[G_USERNAME] = $name;
$_SESSION[G_HOME] = $home;
$_SESSION[G_DOMAIN] = $domain;
$_SESSION[G_TIME] = time();
$_SESSION[G_LANG] = $Lang;
$_SESSION[G_ID] = $pw_id;
$_SESSION[G_QUOTA] = $pw_shell;
$_SESSION[G_NICKNAME] = $pw_gecos;

再把以下这段注释了.
/*
session_register(G_ID);
session_register(G_USERNAME);
session_register(G_HOME);
session_register(G_DOMAIN);
session_register(G_TIME);
session_register(G_LANG);
session_register(G_QUOTA);
session_register(G_NICKNAME);
*/
回复

使用道具 举报

 楼主| 发表于 2003-8-6 21:20:46 | 显示全部楼层
[quote:eaca2689cb="djzhi"]代码:

./setup: [Linux: command not found
./setup: line 270:  9712 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd: /tmp/iceblood/Qmail_setup)
./setup: line 290: 11969 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd: /tmp/iceblood/Qmail_setup)
./setup: line 349: 12819 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 350: 12849 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 400: 14308 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
mv: cannot stat `/usr/include/string.h.bak': No such file or directory
./setup: line 401: 15760 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 449: 15788 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 450: 16641 Terminated              sh

/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd: /tmp/iceblood/Qmail_setup)

那位老大能够告诉我为什么会出现上面的错误呢?[/quote]
这个我好像每次安装都会,不过没有问题
回复

使用道具 举报

 楼主| 发表于 2003-8-6 21:25:33 | 显示全部楼层
[quote:6872fce8d3="Axin"]smtp认证有没有问题?能不能向其它域名的通过邮件客户端发邮件?

我的那补丁好像有些问题!要把域名都加到rcphosts里面才可以![/quote]
我用过了啊,没有问题,不过你要测试smtp有没有验证的话用outlook比较好
回复

使用道具 举报

发表于 2003-9-5 20:17:36 | 显示全部楼层
运行./setup >install.log
没有出现错误
为什么http://127.0.0.1/cgi-bin/qmailadmin 却提示找不到这个页面
我想重装该怎么办啊
回复

使用道具 举报

发表于 2004-1-13 21:08:42 | 显示全部楼层
我太需要这个了!!!准备安装!!
回复

使用道具 举报

发表于 2004-3-10 23:40:50 | 显示全部楼层
我做qmail+vpopmail+sqlserver时,为什么虚拟域可以发送不可以接收啊,请问哪们高手帮帮忙.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-5-9 09:08 , Processed in 0.128107 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表