|
|

楼主 |
发表于 2004-10-23 12:01:45
|
显示全部楼层
安装并运行igenus
1.到http://www.igenus.org下载最 ... 0040901_release.tgz
#tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/html //redhat下apache的缺省document root
2.建temp文件夹
cd /var/www/html/igenus
#mkdir temp
#chmod -R 0755 temp
#chown -R vpopmail:vchkpw temp
#mkdir /home/netdisk
#chmod -R 0755 /home/netdisk
#chown -R vpopmail:vchkpw /home/netdisk
#chmod -R 0755 /var/www/html/igenus
#chown -R vpopmail:vchkpw /var/www/html/igenus
3.修改httpd.conf
#vi /etc/httpd/conf/httpd.conf
Group Apache
User Apache
修改为:
Group vchkpw
User vpopmail
DocumentRoot "/var/www/html/igenus"
AddDefaultCharset ISO-8859-1
修改为
AddDefaultCharset GB2312 //使默认页面为中文
#/etc/rc.d/init.d/httpd restart //重启apache,使修改生效
4.修改config_inc.php文件
# cd /var/www/html/igenus/config
# vi config_inc.php
$CFG_BASEPATH = "/var/www/html/igenus"; \\改成你安装的目录
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail';
$CFG_MYSQL_PASS = 'xukixu'; \\改成你的密码
$CFG_MYSQL_DB = 'vpopmail';
$CFG_TEMP = $CFG_BASEPATh."/temp"; \\改成你安装的目录的当前目录下
5.重新编制Mysql数据库表格
删除之前创建的域名
#/home/vpopmail/bin/vdeldomain domain.com
# mysql -u root –pxukixu
mysql>use vpopmail;
drop table vpopmail;
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,
PRIMARY KEY (pw_id),
KEY pw_name (pw_name,pw_domain) )
TYPE=MyISAM;
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) )
TYPE=MyISAM;
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(1 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 ;
quit;
6. 设置igenus 定义允许上传下载的邮件的大小
编辑/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
7.编辑/etc/http/conf/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html
NameVirtualHost *
<VirtualHost *>
ServerName mail.domain.net
DocumentRoot /var/www/htdocs/igenus
</VirtualHost>
重启apache:
#service httpd restart
8. 修改index.php,signup.php,submit.php,help.php这几个文件中有关域名的地方,将它改成自己的域名.
9.如果需要,用vadddomain和vadduser添加新域名和新用户。
最后打开浏览器,输入http://domain.com/,就可以访问网站了。
10.Qmail限制附件的大小
在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。
smtp方式是以qmail的databytes作限制的
创建databytes并设置邮件最大为4m
# echo 4000000 >/var/qmail/control/databyte
11.限制单域的邮箱数量
vi /home/vpopmail/domains/domain.com/.qmailadmin-limits
maxpopaccounts 200
default_quota 52428800s
chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits
chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits
这样就把邮箱总数限制在200个,每个邮箱为50M了
12.用qmail封mailfrom
vi/var/qmail/control/badmailfrom
这个控制文件实现拒收邮件功能的,每一个地址要单独一行。而且,不用重起qmail就能生效。例如:
peng@96633.net -----限制一个特定的用户
@sina.com -----限制整个域中的邮件
--------------------------------------------------------------------------------
qmail自启动脚本
#vi /etc/rc.d/init.d/qmail
#! /bin/sh
# chkconfig: 2545 90 90
# description: qmail (include smtp and pop3) auto start/stop scripts.
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo -n "start qmail:"
/var/qmail/rc &
echo "."
echo -n "start smtp service:"
/var/qmail/smtp
echo "."
echo -n "start pop3 service:"
/var/qmail/pop3
echo "."
;;
stop)
echo "stop qmail:"
killproc qmail-send
killproc qmail-clean
killproc qmail-rspawn
killproc qmail-lspawn
killproc splogger
killproc tcpserver
;;
*)
exit 1
;;
esac
exit 0
#chmod 755 /etc/rc.d/init.d/qmail
#chkconfig --add qmail
--------------------------------------------------------------------------------
安装ezmlm and ezmlm-idx
安装ezmlm and ezmlm-idx
1.注意:为了启用maillist的MySQL支持,你必须首先:
建立mysql管理用户:(Ex:user:ezmlm,pass:ezmlm)
# mysql -u root –pxukixu
>use mysql;
>insert into user values('localhost','ezmlm','','y','y','y','y','y','y','y','y','y','y','y','y','y', 'y');
>update user set password=password('ezmlm') where user='ezmlm';
>FLUSH PRIVILEGES;
>exit;
建库:(Ex:database:ezmlm)
# mysqladmin -u root -pxukixu create ezmlm
2.ezmlm-idx包含有对ezmlm的修正和补充,他们是一个整体。
#cd /home/software
# tar -zxvf ezmlm-0.53.tar.gz
# tar -zxvf ezmlm-idx-0.40.tar.gz
# cp -rf ezmlm-idx-0.40/* ezmlm-0.53/ //将ezmlm-idx-0.40下的文件覆盖到ezmlm-0.53下
# cd ezmlm-0.53
# patch < idx.patch
# patch < ../ezmlm-idx-0.53.400.unified_41.patch
# make mysql #MySQL 支持
# make clean
# make man
# make ch_GB #汉字GB2312支持
修改conf-sqlcc文件
内容为:-I/usr/include/mysql
修改conf-sqlld
内容为: -L/usr/lib/mysql -lmysqlclient -lnsl -lm -lz
修改conf-bin
第一行:/var/qmail/bin/ezmlm
修改conf-man
第一行:/var/qmail/man
修改conf-qmail
第一行:/var/qmail
# make setup
3.在你建立一个基于MySQL的maillist之前,你必须保证ezmlm库中已存在一个对应的表:
Ex:你想建一个基于MySQL的maillist:testlist
# mkdir /var/qmail/bin/ezmlm
# cp ezmlm-mktab /var/qmail/bin/ezmlm
# /var/qmail/bin/ezmlm/ezmlm-mktab -d testlist | mysql -uezmlm -pezmlm -f ezmlm
这样就在ezmlm库中为testlist建立了一系列相关表格:
+------------------------+
| Tables |
+------------------------+
| testlist |
| testlist_allow |
| testlist_allow_slog |
| testlist_cookie |
| testlist_deny |
| testlist_deny_slog |
| testlist_digest |
| testlist_digest_cookie |
| testlist_digest_mlog |
| testlist_digest_slog |
| testlist_mlog |
| testlist_mod |
| testlist_mod_slog |
| testlist_slog |
+------------------------+
你可以用一下命令察看!
# mysqlshow -u root -pwangxu ezmlm
--------------------------------------------------------------------------------
安装autorespond
安装autorespond
#tar xzvf autorespond-2.0.4.tar.gz
#cd autorespond-2.0.4
#vi Makefile
将其中的INSTALL_DIR =修改为 /var/qmail/bin
#make
#make install
#cp autorespond /usr/local/bin
--------------------------------------------------------------------------------
安装qmailadmin
安装 qmailadmin-1.2.2.tar.gz
tar xzvf qmailadmin-1.2.2.tar.gz
cd qmailadmin-1.2.2
./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html --enable-ezmlmdir=/var/qmail/bin
make
make install-strip
再一次执行:
chmod -R 0755 /var/www/html/igenus
chmod -R 0755 /var/www/html/igenus/temp
chmod -R 0755 /var/www/html/images
chown -R vpopmail:vchkpw /var/www/html/igenus
chown -R vpopmail:vchkpw /var/www/html/igenus/temp
chown -R vpopmail:vchkpw /var/www/html/images
--------------------------------------------------------------------------------
测试
测试igenus
http://domain.com/
测试qmailadmin
http://domain.com/cgi-bin/qmailadmin
测试SMTP认证
# telnet localhost 25
Trying 127.0.0.1...
Connected to mail.domain.com (127.0.0.1).
Escape character is '^]'.
220 mail. domain.com ESMTP
EHLO hostname
250-mail.domain.com
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME
测试POP3
# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Hello there.
user xy.wang@domain.com
+OK Password required.
pass [password]
+OK logged in.
quit
+OK Bye-bye.
Connection closed by foreign host.
-------------------------------------------------------------------------------- |
|