首先感谢gadfly老大的帮助,没有他的大力帮忙,我的qmail就做不下去。谢谢!!!谢谢!!!!!!!
还要感谢peng姐的安装文档和帮助,没有他的文档和帮助,我也做不了,谢谢!!!谢谢!!!!!!!
还要感谢所有写过安装指南、FAQ的人,他们的资料是我在迷雾中的指明灯。谢谢!!!!!
偶D文档修改了部分peng姐D错误。
有问题需要我帮忙的话可以找我,QQ:298613,hojo,身份认证写上chinaunix。
操作系统是trustix linux。
1、安装mysql
groupadd mysql
useradd –g mysql mysql
tar –xzvf mysql-xxxxx.tar.gz
cd mysql-xxxxx
./configure –prefix=/usr/local/mysql
make
make install
/usr/local/mysql/bin/mysql_install_db
chown -R root:mysql /usr/local/mysql
chmod -R 640 /usr/local/mysql
chmod -R u+X,g+X /usr/local/mysql
chmod -R ug+x /usr/local/mysql/bin
chmod -R g+w /usr/local/mysql/data
(# chmod -R g+w /usr/local/mysql/var)
chmod 755 /usr/local/mysql/libexec/mysqld
/usr/local/mysql/bin/safe_mysqld --user=mysql &
修改mysql密码
usr/local/mysql/bin/mysqladmin -u root password 'password'
修改启动:
vi /etc/rc.d/rc.local
/usr/local/mysql/bin/safe_mysqld --user=mysql &
/usr/local/apache/bin/apachectl start & (启动apache,装完apache才写)
2 、安装apache 2
cd apache-2.xxx
groupadd vchkpw
useradd -g vchkpw -d /home/vpopmail vpopmail
./configure --prefix=/usr/local/apache --enable-cgi --enable-cgid --enable-so
make
make install
修改/usr/local/apache/conf/httpd.conf
启动apache用户、组改为:
User vpopmail
Group vchkpw
增加cgi头
AddHandler cgi-script .cgi .pl
启动apache:
/usr/local/apache/bin/apache start
访问:http://x.x.x.x/index.html.en测试
访问:http://x.x.x.x/cgi-bin/test-cg 测试cgi
3、安装Qmail
设定qmail用户和组
mkdir /usr/local/qmail
groupadd nofiles
useradd -g nofiles -d /usr/local/qmail/alias alias
useradd -g nofiles -d /usr/local/qmail qmaild
useradd -g nofiles -d /usr/local/qmail qmaill
useradd -g nofiles -d /usr/local/qmail qmailp
groupadd qmail
useradd -g qmail -d /usr/local/qmail qmailq
useradd -g qmail -d /usr/local/qmail qmailr
useradd -g qmail -d /usr/local/qmail qmails
chmod 755 /usr/local/qmail
chgrp qmail /usr/local/qmail
# tar xzf qmail-1.03.tar.gz
# patch -p0 < qmail-103.patch
(用ls命令要可以看到 qmail-1.03(目录)和qmail-103.patch(文件))
cd qmail-1.03
make setup check
./config-fast test.domain.com
建立系统别名
cd /usr/local/qmail/alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 /usr/local/qmail/alias/.qmail*
cp /usr/local/qmail/boot/home /usr/local/qmail/rc
chmod 755 /usr/local/qmail/rc
ln -s /usr/local/qmail/bin/sendmail /usr/lib/sendmail
ln -s /usr/local/qmail/bin/sendmail /usr/sbin/sendmail
chmod 755 /usr/local/qmail/bin/sendmail
vi /usr/local/qmail/rc
修改其中./Mailbox为./Maildir/
设定qmail自启动
mkdir /etc/qmail
touch /etc/qmail/startvi /usr/local/qmail/rc
echo "csh -cf '/usr/local/qmail/rc &'">/etc/qmail/start
echo "/etc/qmail/smtp.sh">>/etc/qmail/start
3、安装php
cd php-4.3.2RC3
./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs
--enable-track-vars --enable-force-cgi-redirect --enable-pic --enable-inline-optimiation
--enable-memory-limit --enable-bcmath --enable-shmop --enable-versioning -enable-calendar
--enable-dbx --enable-dio --enable-mcal --with-config-file-path=/usr/local/apache/conf
make
make install
cp php.ini-dist /usr/local/apache/conf/php.ini
vi /usr/local/apache/conf/httpd.conf
让apache识别php
AddType application/x-httpd-php .php
# 加入以下行(装载php4模块并指定.php 文件)
# LimitRequestBody (指定php处理的请求数据大小,以下指定为 20M)
LoadModule php4_module modules/libphp4.so
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 20971520
</Files>
#注解以下行(在文本前加#),使apache显示中文,具体原因未知
ForceLanguagePriority Prefer Fallback
修改AddDefaultCharset ISO-8859-1为:
AddDefaultCharset gb2312
#加入默认的引导文件index.php(找到DirectoryIndex,修改如下:)
DirectoryIndex index.html index.html.var index.php
#指定网站目录(假设为 /apache 目录)
DocumentRoot "/apache"
vi /usr/local/apache/conf/php.ini
#找到并修改以下参数
max_execution_time = 600 ;最大运行时间 600 秒
max_input_time = 600 ;最大输出时间 600秒
memory_limit = 20M ;最大内存限制 20M
file_uploads = On ;允许上载文件
upload_max_filesize = 20M ;最大文件大小 20M
post_max_size = 20M ;php可接受的 post 方法大小 20M
session.auto_start = 1 ;session自动启动
把register_globals = Off 改为register_globals = On
测试php,写个test.php文件放到html目录下:
<?
phpinfo();
?>
chmod 555 test.php
5、安装ucspi-t
# tar zxvf ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
# make
# make setup check
执行档将被安装于 /usr/local/bin 中
touch /etc/qmail/smtp.sh
chmod 755 /etc/qmail/smtp.sh
smtp.sh装完vpopmail再编辑
编写tcp.smtp规则
touch /etc/qmail/tcp.smtp
echo "127.0.0.1:allow,RELAYCLIENT=""" > /etc/qmail/tcp.smtp
echo ":allow" >> /etc/qmail/tcp.smtp
编译tcp.smtp规则
/usr/local/qmail/bin/tcprules /etc/qmail/tcp.smtp.cdb /etc/qmail/tcp.smtp.tmp <
/etc/qmail/tcp.smtp
echo “/etc/qmail/start” >> /etc/rc.d/rc.locad
7、安装vpopmail
增加vpopmail用户、组(前面装apache的时候已经做了,现在可以省略,没有做的一定要增加
vpopmail用户、组)
# groupadd vchkpw
# useradd -g vchkpw -d /home/vpopmail vpopmail
tar vpopmail-5.2.tar.gz
cd vpopmail-5.2
vi vmysql.h
根据你的MYSQL的设置,更改下面的配置
#define MYSQL_SERVER "localhost"
#define MYSQL_USER "root"
#define MYSQL_PASSWD "123456"
#define MYSQL_SERVER "localhost"
#define MYSQL_USER "root"
#define MYSQL_PASSWD "123456"
编译、安装vpopmail
./configure --prefix=/home/vpopmail --enable-default-domain=test.domain.com
--enable-passwd=n --enable-ip-alias-dmains=n --enable-defaultquota=52428800s
--enable-sqwebmail-pass=y --enable-mysql=y --enable-incdir=/usr/local/mysql/include/mysql
--enable-libdir=/usr/local/mysql/lib/mysql --enable-libs=/usr/local/mysql/lib/mysql
--enable-tcprules-prog=/usr/local/qmail/bin/tcprules
--enable-tcpserver-file=/etc/qmail/tcp.smtp --enable-vpopuser=vpopmail
--enable-vpopgroup=vchkpw --enable-qmaildir=/usr/local/qmail
修改默认域名和邮箱容量,一些注释:
--prefix=/home/vpopmail \\指定安装路径
--enable-mysql=y \\是否应用Mysql数据库
--enable-incdir=/usr/local/mysql/include/mysql \\Mysql数据库include文件所在目录
--enable-libdir=/usr/local/mysql/lib/mysql \\Mysql数据库lib文件所在目录
--enable-default-domain=test.domain.com \\定义虚拟域名
--enable-passwd=n \\是否使用系统密码验证方式
--enable-defaultquota=52428800s \\定义缺省邮箱大小,n为不限制,10485760为10MB,20971520为
20MB,52428800s为50MB
--enable-tcprules-prog=/usr/local/qmail/bin/tcprules \\指定tcprules目录
--enable-tcpserver-file=/etc/qmail/tcp.smtp \\指定tcprules应用规则文件
--enable-vpopuser=vpopmail \\vpopmail的用户
--enable-vpopgroup=vchkpw \\vpopmail的组
--enable-ip-alias-domains=n \\在虚拟域中允许通过反向IP地址查找虚拟域名
--enable-sqwebmail-pass=y \\sqwebmail的密码支持
make
make install-strip
chmod 6755 /home/vpopmail/bin/vchkpw
编写qmail启动pop、smtp启动文件
touch /etc/qmail/pop.sh
chmod 755 /etc/qmail/pop.sh
echo “/usr/local/qmail/bin/tcpserver -c 100 -v -l test.domain.com -U -H -R 0 pop3
/usr/local/qmail/bin/qmail-popup test.domain.com /home/vpopmail/bin/vchkpw
/usr/local/qmail/bin/qmail-pop3d Maildir 2>&1 | /usr/local/qmail/bin/splogger & “ >>
/etc/qmail/pop.sh
echo “/usr/local/qmail/bin/tcpserver -H -R -l test.domain.com -t 1 -c 100 -v -p
-x/etc/qmail/tcp.smtp.cdb -u 581 -g 523 0 smtp /usr/local/qmail/bin/qmail-smtpd
/home/vpopmail/bin/vchkpw /bin/true /usr/local/qmail/bin/cmd5checkpw /bin/true 2>&1 |
/usr/local/qmail/bin/splogger &” >> /etc/qmail/smtp.sh
(注:581 and 523换成系统上的qmaild与nofiles的uid and gid的值。)
vi /etc/qmail/start
csh -cf '/usr/local/qmail/rc &'
/etc/qmail/pop.sh
/etc/qmail/smtp.sh
最后写完应该是这样
chmod –R 755 /etc/qmail
添加域:
# /home/vpopmail/bin/vadddomain test.domain.com
(回车:输入两遍密码)
添加用户:
# /home/vpopmail/vadduser xmy@test.domain.com
如果运行命令出现:error in loading shared libraries: libmysqlclient.so.10: cannot open
shared object file: No such file or directory
则:cp libmysqlclient.so * /usr/lib
chmod 755 /usrl/ib/ libmysqlclient.so
注意目录权限:
/home/vpopmail/domains 的权限应该是700
/home/vpopmail/domains/domail.com/.qmail-default 应该是600
/usr/lib/libmysqlclient.so.10.0.0应该是755
8、安装 ezmlm
zmlm and ezmlm-idx with MySQL support!
注意:为了启用maillist的MySQL支持,你必须首先:
建立mysql管理用户:(Ex:user:ezmlm,pass:ezmlm)
# mysql -u root –pmysql2003
>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 -pXXXXX create ezmlm
ezmlm-idx包含有对ezmlm的修正和补充,他们是一个整体。
#cd /root/Qmail_setup
# tar -zxvf ezmlm-0.53.tar.gz
# tar -zxvf ezmlm-idx.0.40.tar.gz
# mv ezmlm-idx-0.40/* ezmlm-0.53/
# cd ezmlm-0.53
# patch < idx.patch
# make mysql #MySQL 支持
# make clean
# make man
# make ch_GB #汉字GB2312支持
# make setup
在你建立一个基于MySQL的maillist之前,你必须保证ezmlm库中已存在一个对应的表:
Ex:你想建一个基于MySQL的maillist:testlist
/usr/local/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 -pXXXX ezmlm
9、安装autorespond
(对于qmailadmin-0.74版以上,必须使用2.0以上的版本)
# tar zxvf autorespond-2.0.0.tar.gz
# cd autorespond-2.0.0
# make
# make install
# cp autorespond /usr/local/bin
#./vdeldomain test.domain.com
10、重新编译mysql数据库
#cd /home/vpopmail/bin
#./vadddomain test.domain.com
如果添加失败一定要删除虚拟域,然后查看mysql数据库是否有安装vpopmail时自动添加的数据库,如
果没有请检查mysql用户vpopmail是否拥有对数据库拥有全部权限,然后重新安装vpopmail程序。
#/home/vpopmail/bin/vdeldomain test.domain.com
#/usr/local/bin/mysql –u root –p
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;
(或者
use vpopmail;
alter table vpopmail drop primary key;
alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;
)
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(12 NOT NULL default '',
UNIQUE KEY id (id),
KEY pw_id (pw_id)
) TYPE=MyISAM;
//*
peng的是(可供参考)
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(12 NOT NULL default '',
UNIQUE KEY id (id),
KEY pw_id (pw_id)
);
修改原来的vpopmail表,方法如下:
use vpopmail;
alter table vpopmail drop primary key;
alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;
*//
quit;
退去数据库:quit
重新添加虚拟域和用户
#cd /home/vpopmail/bin
#./vadddomain test.domain.com 输入postmaster密码,这是以后使用qmailadmin管理虚拟域
test.domain.com的密码
#./vadduser test@test.domain.com 输入密码test
检查数据库vpopmail的vpopmail表是否有你添加的用户。
11、 安装igenus
# cd /home/software
# cp igenus_2_20030311.tgz /var/www
# cd /var/www
# mkdir temp
# chown vpopmail.vchkpw temp
# tar zxvf igenus_2_20030311.tgz
修改config/config_inc.conf文件。config_inc.conf是igenus的配置文件,必须正确设置,具体设置
如下:
# vi /var/www/igenus
$CFG_BASEPATH = "/var/www/igenus";
$ CFG_BASEPATH -----是iGNEUS webmail安装在系统的路径。
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_HOST -----是mysql服务器的地址。
$CFG_MYSQL_USER = 'root';
$CFG_MYSQL_USER -----是mysql服务器的用户名。
$CFG_MYSQL_PASS = 'mysql2003';
$CFG_MYSQL_PASS -----是mysql服务器的密码,根据你的实际填写
$CFG_LANGUAGE = gb;
$CFG_LANGUAGE-----是系统默认语言,可有中英日可选。
$CFG_GMT = +8; // GMT time local
$CFG_GMT----是时区设置,中国选+8。
$CFG_TEMP = $CFG_BASEPATH."/../temp";
$CFG_TEMP----临时文件的位置。
3、修改默认登录域的设置,编辑login.php,查找以下字符,可设置你默认的邮件主机地址,可以设置
多个。当然了,不改也可以的,略过这一步。
# vi /var/www/igenus/login.php
<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=test.domain.com SIZE="19"
STYLE='font-family:Tahoma'>test.domain.com</OPTION></SELECT>
修改logout.php(原来的文件退出有点问题)
session_unset();
改为:session_destroy()
12、qmailadmin
在安装之前先确认:
你是否已经安装了vpopmail,并使用vchkpw 。
是否已经安装ezmlm。
是否已经安装autorespond。
确认以上的工作已完成,可以开始安装qmailadmin。
# cd /home/software
# tar zxvf qmail-setup.1.5.3.tar.gz
# tar xvzf qmailadmin-1.0.6.tar.gz
# cd qmailadmin-1.0.6
# cp iceblood/en-us qmailadmin-1.0.6/html/en
# cp iceblood/en-us qmailadmin-1.0.6/html/en-us
(注:以上两步,是为了汉化qmailadmin,用iceblood的qmail-setup的汉化文件。)
# cd qmailadmin-1.0.6
./configure --with-htmllibdir=/usr/local/apache/cgi-bin/qadm
--enable-qmaildir=/usr/local/qmail --enable-autoresponder-bin=/usr/local/qmail/bin
--enable-ezmlmdir=/usr/local/qmail/bin/ezmlm --enable-cgibindir=/usr/local/apache/cgi-bin
--enable-htmldir=/usr/local/apache/htdocs
make
make install-strip
chown –R vpopmail:vchkpw /usr/local/apache/cgi-bin/qadm
chown –R vpopmail:vchkpw /usr/local/apache/htdocs/images/qmailadmin