URN Logo
UNIX Resources » BSD » FreeBSD » FreeBSD China » mail系统 » 5 » qmail+vpopmail+mysql+igenus详细安装过程
announcement 声明: 本页内容为FreeBSD China的内容镜像,文章的版权以及其他所有的相关权利属于FreeBSD China和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
freebsdchina.org
  中文文档计划
  Chinese Ports 讨论
  初学指南
  技术交流
  设备驱动
  WEB服务
  Proxy服务
  JAVA平台
  软件发布
  休闲话题
  静语轩
  系统编程
  脚本编程
  内核开发技术
  网络安全
  mail系统
  X-Win系统
  信息交流
  历史-文化-设计-实现
  安装-配置-优化-安全
  中文-桌面-开发-调试
   
qmail+vpopmail+mysql+igenus详细安装过程
Subject: qmail+vpopmail+mysql+igenus详细安装过程
Author: PharaohNie    Posted: 2004-08-09 17:42:45    Length: 15788 byte(s)
[Original] [Print] [Top]
操作过程已经写的很细了,以后会再把一些原理添加进去,以及vqadmin,vqregister和防垃圾邮件和防病毒模块的安装过程


说明:我使用的是freebsd 4.10,安装之前记得先把ports更新,这里所有的软件基本都是在ports中使用make fetch下载的,所有下载的文件都在/usr/ports/distfiles中,非常方便。

QMAIL
-----------------------------------
1、下载
cd /usr/ports/mail/qmail
make fetch
cd /usr/ports/distfiles
tar xzvf qmail-1.03.tar.gz
去这里下载这个叫spamcontrol基本上把qmail的所有补丁都集成进来了,安装也很方便
http://linux.dalouis.com/download/source/qmail/patches/spamcontrol-2212/
把其中的文件都下载到/usr/ports/distfiles/spamcontrol里,更详细的使用文档看
http://www.fehcom.de/qmail/spamcontrol/README_spamcontrol.html
其他两个补丁是通过ports下载的

2、打补丁
cd /usr/local/distfile/
patch -d qmail-1.03/ < qmail-103.patch
patch -d qmail-1.03/ < sendmail-flagf.patch
cp spamcontrol/* qmail-1.03/
cd qmail-1.03/
chmod u+x spamcontrol.sh
./spamcontrol.sh

3、安装qmail
mkdir /var/qmail

pw group add nofiles
pw user add alias -g nofiles -d /var/qmail/alias -s /nonexistent
pw user add qmaild -g nofiles -d /var/qmail -s /nonexistent
pw user add qmaill -g nofiles -d /var/qmail -s /nonexistent
pw user add qmailp -g nofiles -d /var/qmail -s /nonexistent
pw group add qmail
pw user add qmailq -g qmail -d /var/qmail -s /nonexistent
pw user add qmailr -g qmail -d /var/qmail -s /nonexistent
pw user add qmails -g qmail -d /var/qmail -s /nonexistent

cd /usr/ports/distfiles/qmail-1.03
make setup check

./config
注意,为确保这步能够顺利通过,DNS中必须有你的域名解析,MX记录,和反向解析。这个就让负责DNS的人去搞定吧。

cd ~alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 ~alias/.qmail*

4、关闭sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
(mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
#如果/usr/sbin/sendmail存在的话就做这个,然后再进行下面的操作)
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail


MYSQL
-----------------------------------------
1、下载
cd /usr/ports/data/mysql40-server
make fetch
cd /usr/ports/distfiles
tar xzvf mysql-4.0.20.tar.gz

2、安装MYSQL
pw group add mysql
pw user add mysql -g mysql

cd /usr/ports/distfiles/mysql-4.0.20
./configure –prefix=/usr/local/mysql
make
make install

3、设置mysql自动启动
cd /usr/ports/distfiles/mysql-4.0.20/support-files
make
make install
cd /usr/local/mysql/share/mysql
cp mysql.server /usr/local/etc/rc.d/mysql.server.sh

4、初始化mysql数据库
/usr/local/mysql/bin/mysql_install_db
重启一下

5、安全问题
(1)修改root密码
/usr/local/mysql/bin/mysql
USE mysql;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD ('你的密码');
SET PASSWORD FOR 'root'@'ur_domain' = PASSWORD ('你的密码');
\q

(2)只允许来自本机的连接
vi /usr/local/etc/rc.d/mysql.server.sh
查找
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file > /dev/null 2>&1 &
修改为
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file --bind-address=127.0.0.1 > /dev/null 2>&1 &

6、其他
(1)登陆mysql
/usr/local/mysql/bin/mysql -u root -p你的密码
注意:-p和你的密码之间没有空格

(2)查看所有数据库
show databases;

(3)查看所有的表
use 数据库;
show tables;

(4)查看表项
use 数据库
select * from 表;

有了这几个命令就足够了,可以对后面vpopmail建立的表做一个大概的了解。


TCPSERVER
----------------------------------------
1、下载
cd /usr/ports/sysutils/ucspi-tcp/
make fetch
cd /usr/ports/distfiles
tar xzvf ucspi-tcp-0.88.tar.gz
tar xzvf ucspi-tcp-0.88-man.tar.gz

2、打补丁
去http://linux.dalouis.com/download/source/qmail/patches/
下载ucspi-tcp-0.88.a_record.patch;ucspi-tcp-0.88.errno.patch;ucspi-tcp-0.88.nobase.patch这三个文件,放到/usr/ports/distfiles下
cd /usr/ports/distfiles
patch -d ucspi-tcp-0.88/ < ucspi-tcp-0.88.a_record.patch
patch -d ucspi-tcp-0.88/ < ucspi-tcp-0.88.errno.patch
patch -d ucspi-tcp-0.88/ < ucspi-tcp-0.88.nobase.patch

3、安装
cd /usr/ports/distfiles/ucspi-tcp-0.88/
make setup check

cd /usr/ports/distfiles/ucspi-tcp-0.88-man/
gzip *.1
cp *.1.gz /usr/share/man/man1/


VPOPMAIL
--------------------------------------
1、下载
cd /usr/ports/mail/vpopmail
make fetch
cd /usr/ports/distfiles
tar xzvf vpopmail-5.4.3.tar.gz

2、安装
(1)为vpopmail建立用户、组及mysql中的用户
pw group add vchkpw -g 89
pw user add vpopmail -u 89 -g 89

建立/tmp/vpopmail.mysql,其内容为
CREATE DATABASE vpopmail;
GRANT select,insert,update,delete,create,drop ON vpopmail.*
TO vpop用户名@localhost IDENTIFIED BY 'vpop密码';

/usr/local/mysql/bin/mysql -u root -p你的密码 < /tmp/vpopmail.mysql
这样就为vpopmail建立了一个用户,用户名、密码分别为vpop用户名、vpop密码,这个需要记住,下面要用到。

(2)开始安装
cd /usr/ports/distfiles/vpopmail-5.4.3
./configure \
--disable-roaming-users \
--enable-logging=p \
--disable-ip-alias-domains \
--disable-passwd \
--enable-clear-passwd \
--disable-domain-quotas \
--enable-auth-module=mysql \
--enable-many-domains \ #如果要使用igenus,必须这样设置
--enable-auth-logging \
--enable-mysql-logging \
--enable-valias \
--disable-mysql-limits
make
make install-strip

3、配置vpopmail
cd /home/vpopmail/etc/
修改vpopmail.mysql
localhost|0|vpop用户名|vpop密码|vpopmail
这里的用户名和密码就是刚才在mysql中设置的用户名和密码。

echo '你的域名' >defaultdomain

chmod 6755 /home/vpopmail/bin/vchkpw

ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.12 /usr/lib/libmysqlclient.so.12

下面这两个操作最好先不要做,做了一会也的删掉
/home/vpopmail/bin/vadddomain 你的域名
之后回提示输入域管理员的密码
/home/vpopmail/bin/vadduser 邮件用户@你的域名
之后回提示输入邮件用户的密码


APACHE
----------------------------------
1、下载
cd /usr/ports/www/apache13
make fetch
cd /usr/ports/distfiles
tar xzvf apache_1.3.31.tar.gz

2、安装
cd /usr/ports/distfiles/apache_1.3.31
./configure --prefix=/usr/local/apache --enable-module=so
make
make install


PHP4:
------------------------------------
1、下载
cd /usr/ports/lang/php4
make fetch
cd /usr/ports/distfiles
tar xjvf php-4.3.8.tar.bz2

2、安装
cd /usr/ports/distfiles/php-4.3.8
./configure --prefix=/usr/local/php4 --with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs
make
make install

3、配置
(1)配置php4
建立/etc/php.ini,其内容为
max_execution_time=60
memory_limit=20M
post_max_filesize=10M
file_uploads=on
upload_max_filesize=10M
register_globals=On
session.bug_compat_42=0
session.bug_compat_warn=0
Sendmail = /var/qmail/bin/qmail-inject

(2)配置apache以支持php
编辑/usr/local/apache/conf/httpd.conf (之前最好先备份一下)
LoadModule php4_module libexec/libphp4.so(可能已经有这句了)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html
User vpopmail
Group vchkpw


iGENUS:
-----------------------------------------------
1、下载
没办法,挺好的东西,可是ports里没有,这个igenus是大麻做的,感觉不错,只能去大麻的主页下了。http://www.igenus.org
下载igenus_2.0.1_20040713_release.tgz这个文件,先暂时放到/tmp下吧。

2、安装
rm -R /usr/local/apache/htdocs/*
cd /tmp
tar xzvf igenus_2.0.1_20040713_release.tgz
cp igenus\* /usr/local/apache/htdocs/
cd /usr/local/apache/htdocs/
mkdir temp/
chown -R vpopmail:vchkpw *
chmod -R 0755 *

3、配置
修改/usr/local/apache/htdocs/config/config_inc.php
$CFG_BASEPATH = "/usr/local/apache/htdocs";
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpop用户名';
$CFG_MYSQL_PASS = 'vpop密码';
$CFG_MYSQL_DB = 'vpopmail';
$CFG_TEMP = "/usr/local/apache/htdocs/temp";

如果以前添加了域,需要把添加过得域删掉
/home/vpopmail/bin/vdeldomain 你的域

建立/tmp/iGENUS.mysql,其内容为(有点长)
DROP DATABASE vpopmail;
CREATE DATABASE vpopmail;
USE vpopmail;

CREATE TABLE `address` (
`id` int(11) unsigned NOT NULL auto_increment,
`pw_id` int(5) 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`)
) TYPE=MyISAM PACK_KEYS=1 ;

CREATE TABLE `admin` (
`id` int(10) unsigned NOT NULL auto_increment,
`site_id` int(10) unsigned NOT NULL default '0',
`domain` varchar(128) NOT NULL default '',
`quota` smallint(5) unsigned NOT NULL default '0',
`total` smallint(5) unsigned NOT NULL default '0',
`createtime` timestamp(14) NOT NULL,
`login` char(1) NOT NULL default '',
`cur_total` smallint(5) NOT NULL default '0',
`cur_quota` smallint(5) NOT NULL default '0',
`gid` varchar(11) NOT NULL default '',
`expiration_time` timestamp(14) NOT NULL,
`flag` int(10) unsigned NOT NULL default '0',
`maxmsg` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `domain` (`domain`)
) TYPE=MyISAM PACK_KEYS=1 ;

CREATE TABLE `card` (
`id` int(5) unsigned NOT NULL auto_increment,
`pw_id` int(5) unsigned NOT NULL default '0',
`LinkMan` varchar(64) NOT NULL default '',
`CompanyName` varchar(100) NOT NULL default '',
`Address` varchar(255) NOT NULL default '',
`Position` varchar(32) NOT NULL default '',
`PhoneNumber` varchar(16) NOT NULL default '',
`Mobile` varchar(12) NOT NULL default '',
`Email` varchar(128) NOT NULL default '',
`Partaker` varchar(32) NOT NULL default '',
`Memo` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;

CREATE TABLE `lastauth` (
`user` char(32) NOT NULL default '',
`domain` char(64) NOT NULL default '',
`remote_ip` char(18) NOT NULL default '',
`timestamp` bigint(20) NOT NULL default '0',
PRIMARY KEY (`user`,`domain`)
) TYPE=MyISAM;

CREATE TABLE `logs` (
`pw_id` int(5) default '0',
`ip` varchar(15) NOT NULL default '',
`action` varchar(15) NOT NULL default '',
`time` datetime default NULL,
`content` varchar(64) NOT NULL default '',
`email` varchar(128) NOT NULL default ''
) TYPE=MyISAM;

CREATE TABLE `message` (
`id` int(5) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`body` text NOT NULL,
`createtime` datetime NOT NULL default '0000-00-00 00:00:00',
`updatetime` datetime NOT NULL default '0000-00-00 00:00:00',
`pw_domain` varchar(64) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) TYPE=MyISAM ;

CREATE TABLE `personal` (
`id` int(11) unsigned NOT NULL auto_increment,
`pw_id` int(5) NOT NULL default '0',
`truename` varchar(10) NOT NULL default '',
`fax` varchar(20) NOT NULL default '',
`telephone` varchar(15) NOT NULL default '',
`sex` int(1) NOT NULL default '0',
`year` int(4) NOT NULL default '0',
`MONTH` int(2) NOT NULL default '0',
`DAY` int(2) NOT NULL default '0',
`education` varchar(4) NOT NULL default '',
`marital` int(1) NOT NULL default '0',
`occupation` varchar(15) NOT NULL default '',
`companyname` varchar(30) NOT NULL default '',
`province` varchar(6) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM PACK_KEYS=1 ;

CREATE TABLE `scheduler` (
`id` int(11) unsigned NOT NULL auto_increment,
`begin_time` int(11) unsigned default NULL,
`end_time` int(11) unsigned default NULL,
`title` varchar(255) NOT NULL default '',
`body` varchar(255) NOT NULL default '',
`pw_id` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;

CREATE TABLE `stow` (
`id` int(5) unsigned NOT NULL auto_increment,
`pw_id` int(5) unsigned NOT NULL default '0',
`Name` varchar(128) NOT NULL default '',
`http` varchar(255) NOT NULL default 'http://',
`memo` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;

create table vpopmail (
pw_id int(5) unsigned NOT NULL auto_increment,
pw_name varchar(32) NOT NULL default '',
pw_domain varchar(64) NOT NULL default '',
pw_passwd varchar(40) NOT NULL default '',
pw_uid int(11) default NULL,
pw_gid int(11) default NULL,
pw_gecos varchar(64) default NULL,
pw_dir varchar(160) default NULL,
pw_shell varchar(20) default NULL,
pw_clear_passwd varchar(16) default NULL,
createtime timestamp(14) NOT NULL,
PRIMARY KEY (pw_id),
KEY pw_name (pw_name,pw_domain) )
TYPE=MyISAM PACK_KEYS=1 ;

之后建立数据库
/usr/local/mysql/bin/mysql -u root -p你的密码 < /tmp/iGENUS.mysql


配置启动脚本
----------------------------------
1、apache启动脚本
这个有现成的,直接拷贝就可以
cp /usr/local/apache/bin/apachectl /usr/local/etc/rc.d/apache.sh

2、qmail启动脚本
建立/usr/local/etc/rc.d/qmailrc.sh,其内容为
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail &

添加可执行属性
chmod u+x /usr/local/etc/rc.d/qmailrc.sh

3、pop3d启动脚本
建立/usr/local/etc/rc.d/pop3d.sh,其内容为
#!/bin/sh
/usr/local/bin/tcpserver -R -l 你的域名 -u 1003 -g 1001 0 pop3 \
/var/qmail/bin/qmail-popup 你的域名 /home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir &

(1003为qmail的uid,1001为qmail的gid,这两个id可以通过这两个命令得到
id -u qmail
id -g qmail )

添加可执行属性
chmod u+x /usr/local/etc/rc.d/pop3d.sh

4、smtpd启动脚本
(1)生成tcp.smtp.cdb文件
echo ':allow,RELAYCLIENT="",REQUIREAUTH=""' > /etc/tcp.smtp
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
说明:这个tcp.smtp.cdb是tcpserver中-x参数使用的,其意义为:给smtp进程接收到的所有mail定义RELAYCLIENT和REQUIREAUTH变量,这样才可实现邮件的转发及smtp验证。尤其是验证问题,因为打了spamcontrol补丁才需要定义这两个变量,以前许多同志说邮件客户端选择使用smtp后,smtp验证生效,如果不选择smtp验证,还是可以发邮件。这个就是因为打过补丁后没有定义REQUIREAUTH变量所造成的。

(2)smtpd启动脚本
建立/usr/local/etc/rc.d/smtpd.sh,其内容为
/usr/local/bin/tcpserver -R -l 你的域名 -x /etc/tcp.smtp.cdb
-u 1003 -g 1001 0 smtp /var/qmail/bin/qmail-smtpd \
/home/vpopmail/bin/vchkpw /usr/bin/true &

添加可执行属性
chmod u+x /usr/local/etc/rc.d/smtpd.sh
[Original] [Print] [Top]
Subject: (空)
Author: xiaohua    Posted: 2004-08-09 21:16:57    Length: 54 byte(s)
[Original] [Print] [Top]
文中有很多错误和多余的步骤。对于ports 的理解也严重不够
----
海鹰—FM机器人统治者▄︻┻┳═一
精神病人
FM robot:欢迎你使用 ===>
http://bsdroot.dns0755.net/freemail.php
[Original] [Print] [Top]
Subject: (空)
Author: PharaohNie    Posted: 2004-08-09 23:06:09    Length: 330 byte(s)
[Original] [Print] [Top]
xiaohua 写到:
文中有很多错误和多余的步骤。对于ports 的理解也严重不够


晕倒,我刚接触freebsd一个多月,将就一下吧
[Original] [Print] [Top]
Subject: (空)
Author: 游客    Posted: 2004-08-09 23:17:27    Length: 791 byte(s)
[Original] [Print] [Top]
PharaohNie 写到:
xiaohua 写到:
文中有很多错误和多余的步骤。对于ports 的理解也严重不够


晕倒,我刚接触freebsd一个多月,将就一下吧


http://www.freebsdchina.org/forum/viewtopic.php?t=13714&sid=e2c69f1c912f49bedbd98ecf0592207b
[Original] [Print] [Top]
Subject: (空)
Author: 游客    Posted: 2004-08-10 07:26:42    Length: 24 byte(s)
[Original] [Print] [Top]
怎么将就啊?会误人子弟的
[Original] [Print] [Top]
Subject: (空)
Author: 游客    Posted: 2004-09-04 23:31:17    Length: 461 byte(s)
[Original] [Print] [Top]
xiaohua 写到:
文中有很多错误和多余的步骤。对于ports 的理解也严重不够


为什么要卖关子.. Rolling Eyes
有错就说嘛, 哪里错, 给点意见, 互相学习, 尊重人家有分享的心..
谢谢楼主
[Original] [Print] [Top]
Subject: (空)
Author: xiaohua    Posted: 2004-09-05 02:16:04    Length: 364 byte(s)
[Original] [Print] [Top]
参见我我旧作品

http://www.freebsdchina.org/forum/viewtopic.php?t=4969&highlight=%D3%CA%BC%FE%B7%FE%CE%F1%C6%F7%B5%C4%C3%D4%BB%F3 Embarassed
----
海鹰—FM机器人统治者▄︻┻┳═一
精神病人
FM robot:欢迎你使用 ===>
http://bsdroot.dns0755.net/freemail.php
[Original] [Print] [Top]
« Previous thread
在安装sqwebmail时执行make 时出错,,请大家帮忙看看啊,万分感激!!!
mail系统
5
Next thread »
发送邮件时,却出现错误提示:Fatal error.Call to undefined function:mail()
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2007-07-26 13:39:57, cost 0.040549039840698 ms.