歡迎您光臨本站 註冊首頁

Redhat9.0下安裝qmail+igenus實錄

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Redhat9.0下安裝qmail+igenus實錄

在REDHAT9.0下安裝igenus
bluelotus 2003.06.16
Redhat9.0+Qmail+smtp-auth+Vpopmail+MySQL+Igenus,實例:http://0874.cn/mail

一、安裝環境及準備工作
安裝Redhat9.0,安裝時選取安裝apache、php、mysql,可省去以後自已編譯安裝的麻煩,mysql要注意選取mysql-devel開發包,mysql的頭文件和庫文件分別在/usr/include/mysql和/usr/lib/mysql。
安裝完Redhat9.0后,修改/etc/httpd/conf/httpd.conf,使web服務正常啟用,為mysql添加root用戶的密碼。如果設置了防火牆,要打開伺服器的smtp 25和pop3 110兩個埠。

二、安裝ucspi-tcp-0.88
1.下載相應軟體及補丁,由於redhat9.0的glibc的版本問題,必須打補丁才能正常編譯。
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.a_record.patch
wget http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
wget http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.nobase.patch
2.安裝ucspi-tcp-0.88
#tar zxvf ucspi-tcp-0.88.tar.gz
#cd ucspi-tcp-0.88
#patch -p1 < ../ucspi-tcp-0.88.a_record.patch
#patch -p1 < ../ucspi-tcp-0.88.errno.patch
#patch -p1 < ../ucspi-tcp-0.88.nobase.patch
#make
#make setup check

三、安裝qmail
1.下載軟體及補丁:
wget http://cr.yp.to/software/qmail-1.03.tar.gz
wget http://www.ckdhr.com/ckd/qmail-103.patch
wget http://www.qmail.org/qmailqueue-patch
wget http://www.shupp.org/patches/qmail-maildir++.patch
wget http://qmail.te8.com/rpms/glibc-2.3.1/qmail-1.03.errno.patch
wget http://qmail.te8.com/rpms/glibc-2.3.1/qmail-1.03.qmail_local.patch
wget http://members.elysium.pl/brush/qmail-smtp-auth/dist/qmail-smtpd-auth-0.31.tar.gz
2.建立目錄:
# mkdir /var/qmail
# mkdir /var/qmail/alias
3.建組及用戶:
# groupadd nofiles
# groupadd qmail
# useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
# useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
# useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
# useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
# useradd qmailq -g qmail -d /var/qmail -s /nonexistent
# useradd qmailr -g qmail -d /var/qmail -s /nonexistent
# useradd qmails -g qmail -d /var/qmail -s /nonexistent
4.打補丁及編繹安裝qmail
#tar zxvf qmail-1.03.tar.gz
#tar zxvf qmail-smtpd-auth-0.31.tar.gz
#cp qmail-smtpd-auth-0.31/base64.* qmail-1.03  //安裝smtp-auth補丁,支持smtp認證
#patch -d qmail-1.03 < qmail-smtpd-auth-0.31/auth.patch
#cd qmail-1.03
#patch -p1 < ../qmail-103.patch
#patch -p1 < ../qmailqueue-patch
#patch -p1 < ..qmail-maildir++.patch
#patch -p1 < ..qmail-1.03.errno.patch
#patch -p1 < ..qmail-1.03.qmail_local.patch
#vi qmail-smtpd.c  //將函數straynewline中的451改為553
# make setup check
# ./config-fast test.mydomain.com
5.添加別名用戶:
# touch /var/qmail/alias/.qmail-root
# touch /var/qmail/alias/.qmail-postmaster
# touch /var/qmail/alias/.qmail-mailer-daemon
6.如果存在postfix和sendmail,停用現在的mail服務
#/etc/rc.d/init.d/sendmail stop
#cp /var/qmail/bin/sendmail /usr/sbin/qmail.sendmail
#rm -f /etc/alternative/mta
#ln -s /usr/sbin/qmail.sendmail /etc/alternative/mta
Redhat9.0已經考慮到了使用其它郵件伺服器代替sendmail的情況,因為本身就提供postfix和sendmail兩種選擇。

四、安裝vpopmail
1.下載vpopmail的穩定版
wget http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz
2.建立目錄:
#mkdir /home/vpopmail
#mkdir /home/vpopmail/etc
3.添加用戶和組:
#groupadd  vchkpw
#useradd -g vchkpw vpopmail
4.添加mysql的vpopmail用戶,用於操作vpopmail資料庫
#mysql -u root -p    //進入mysql命令行
mysql>;create database vpopmail;
mysql>; grant all on vpopmail.* to vpopmail@localhost identified by "密碼";
5.編譯安裝vpopmail
#tar zxvf vpopmail-5.2.1.tar.gz
#cd vpopmail-5.2.1
#vi vmysql.h
/*  =========================== vmysql.h ============================== */
#define MYSQL_UPDATE_SERVER "localhost" (mysql伺服器名)
#define MYSQL_UPDATE_USER "vpopmail" (用戶名)
#define MYSQL_UPDATE_PASSWD "12345678" (改成你設置的密碼)

#define MYSQL_READ_SERVER "localhost" (mysql伺服器名)
#define MYSQL_READ_USER "vpopmail" (用戶名)
#define MYSQL_READ_PASSWD "12345678" (改成你設置的密碼)
/*==================================================================*/
6.創建tcp.smtp文件(或者使用/etc/tcp.smtp)
# vi /home/vpopmail/etc/tcp.smtp
/*==================== tcp.smtp ================================ */
127.0.0.1:allow,RELAYCLIENT=""
:allow
/*========================================================== */
#cd /home/vpopmail/etc
#tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
7.進行編譯:
# ./configure \\下面是我使用的參數
--prefix=/home/vpopmail \\指定安裝路徑
--enable-mysql=y \\是否應用Mysql資料庫
--enable-incdir=/usr/include/mysql \\Mysql資料庫include文件所在目錄
--enable-libdir=/usr/lib/mysql \\Mysql資料庫lib文件所在目錄
--enable-default-domain=mydomain.com \\定義虛擬域名
--enable-passwd=n \\是否使用系統密碼驗證方式
--enable-defaultquota=52428800s \\定義預設郵箱大小,10485760為10MB,20971520為20MB,52428800s為50MB
--enable-tcprules-prog=/usr/local/bin/tcprules \\指定tcprules目錄
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \\指定tcprules應用規則文件
--enable-vpopuser=vpopmail \\vpopmail的用戶
--enable-vpopgroup=vchkpw \\vpopmail的組
--enable-ip-alias-domains=n \\在虛擬域中允許通過反向IP地址查找虛擬域名
# make
# make install-strip
8.創建虛擬域
# cd /home/vpopmail/bin
# ./vadddomain 域名 (密碼) (在mysql資料庫vpopmail中自動生成vpopmail表單)
(如果使用與機器名相同的虛擬域名,應先生成一個其它的虛擬域名,不然會有問題,無法自動生成vpopmail資料庫)
# ./vadduser 用戶名 密碼 (會自動往表vpopmail中添加用戶數據,用戶名要帶域名,如demo@demo.com)
如果不成功的話,則必須先刪除創建的域,./vdeldomain 域名

五、smtp-auth的設置
1.修改vchkpw的屬性
#chmod 4755 vchkpw
#chown root.root vchkpw
如果使用帶驗證的smtp,smtp進程要調用密碼驗證程序,則必須要使用 setuid 和setgid。提高vchkpw的許可權,才能完成setgid操作。
2.下載安裝cmd5checkpw
wget http://members.elysium.pl/brush/cmd5checkpw/dist/cmd5checkpw-0.22.tar.gz
#tar zxvf cmd5checkpw-0.22.tar.gz
#cd cmd5checkpw-0.22
#make
#make install
注意,因為使用vpopmail,所以checkpassword不用安裝。

六、生成qmail的啟動腳本
#cp /var/qmail/boot/home /var/qmail/rc
# vi /var/qmail/rc     //對rc文件進行修改,以決定投送方式:
/* ================= rc =========================*/
#!/bin/sh

# Using splogger to send the log through syslog.
# Using dot-forward to support sendmail-style ~/.forward files.
# Using qmail-local to deliver messages to ~/Mailbox by default.

exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail  &
/* ============================================*/
#vi /var/qmail/smtp        //編輯smtp服務的啟動腳本
/* ===================== smtp ============================= */
#!/bin/sh

QMAILDUID=qmaild
NOFILESGID=nofiles

/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /home/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd hostname /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>;&1 | /var/qmail/bin/splogger smtpd 3 &
/* ====================================================== */
#vi /var/qmail/pop3       //編輯pop3服務的啟動腳本
/* ====================== pop3 =========================== */
#!/bin/sh

/usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup hostname /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
/* ===================================================== */
#chmod 755 /var/qmail/rc
#chmod 755 /var/qmail/smtp
#chmod 755 /var/qmail/pop3

七、運行qmail並測試
#/var/qmail/rc
#/var/qmail/smtp
#/var/qmail/pop3
#ps aux | grep "qmail"       //查看qmail的服務進程是否已完全正常啟動
如果qmail已正常啟動,用outlook測試qmail的smtp和pop3是否正常,注意由於vpopmail支持虛擬域名,所以在outlook中設置郵件帳號時,用戶名后要加上域名,如demo@demo.com。smtp是帶認證的,在outlook中也要作相應設置。建議先將qmail測試正常后再安裝igenus,我在qmail正常工作后,安裝igenus只用了10分鐘,非常順利。如果qmail出現問題,可查看mysql中的vpopmail資料庫,/var/log下的mysqld和maillog日誌記錄,這樣容易很快找出問題。

八、安裝並運行igenus
1.到http://www.igenus.org下載最新的安裝包,我用的是igenus_2_20030516_snap.tgz
#tar zxvf igenus_2_20030516_snap.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
3.修改httpd.conf
#vi /etc/httpd/conf/httpd.conf
Group Apache
User Apache
修改為:
Group vchkpw
User vpopmail
#/etc/rc.d/init.d/httpd restart   //重啟apache,使修改生效
4.修改config_inc.php文件
# cd /var/www/html/igenus/config
# vi config_inc.php
/* =============== config_inc.php ==================== */
$CFG_BASEPATH = "/var/www/html/igenus";

$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail';
$CFG_MYSQL_PASS = '12345678'; \\改成你的密碼
$CFG_MYSQL_DB = 'vpopmail';

$CFG_TEMP = $CFG_BASEPATh."/temp";
/* ============================================== */
5.重新編製Mysql資料庫表格
#mysql -u root -p
mysql>;use vpopmail;
mysql>;alter table vpopmail drop primary key;
mysql>;alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;
mysql>;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;
mysql>;quit;
6.如果需要,用vadddomain和vadduser添加新域名和新用戶。
最後打開瀏覽器,輸入http://你的網站/igenus,說Good Luck!吧。   

九、編輯qmail自啟動腳本
因為自己編寫的腳本比較簡陋,怕讓高手笑話,所以沒有寫到文章里,但既然有人一再問這個問題,也就厚著臉皮獻醜了。寫到這,應該算是比較完整了吧。
#vi /etc/rc.d/init.d/qmail //編輯自動運行腳本
===================== qmail ======================
#! /bin/sh
# chkconfig: 2345 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
OK,行了,現在只要你啟動系統就會自動運行了。只是腳本比較簡陋,所以不好意思拿出來,不過正常工作沒問題。
《解決方案》

Redhat9.0下安裝qmail+igenus實錄

1.修改vchkpw的屬性
#chmod 4755 vchkpw
#chown root.root vchkpw
如果使用帶驗證的smtp,smtp進程要調用密碼驗證程序,則必須要使用 setuid 和setgid。提高vchkpw的許可權,才能完成setgid操作。

我的做法是調整 smtpd 運行的 uid 和 gid 以適應 vpopmail 。
《解決方案》

Redhat9.0下安裝qmail+igenus實錄


#vi qmail-smtpd.c //將函數straynewline中的451改為553

這是什麼道理?
《解決方案》

Redhat9.0下安裝qmail+igenus實錄

將451改為553是為避免當其它伺服器給你發來無效格式的郵件時,你的伺服器陷入循環應答。當你的伺服器收到無效格式的郵件時,一般會發送:"I am not going to accept that message at the moment,you can try again later",對方伺服器收到后,幾秒鐘后又會發送同樣的郵件給你,造成多次的重複。改為553后,你的伺服器將直接發送:「I am not going to accept that message,don't try sending it again.",告訴對方的伺服器不要再發這封無效的信件。
《解決方案》

Redhat9.0下安裝qmail+igenus實錄

哦,理解了,將暫時錯誤改成永久錯誤
《解決方案》

Redhat9.0下安裝qmail+igenus實錄

不錯啊,強
《解決方案》

Redhat9.0下安裝qmail+igenus實錄

想請問一下樓主,你說安裝mysql時"要注意選取mysql-devel開發包",但我在自定義安裝rh9.0的時候,sql中只有一個mysql-server的包啊,安裝完成之後用rpm看了下,只有mysql-server,mod_auth_mysql,mysql,php-mysql四個,不知道這樣是不是算安裝完整啦,mysql-devel是不是需要再安裝過????
《解決方案》

Redhat9.0下安裝qmail+igenus實錄

還有你所說的mysql的頭文件在/usr/include/mysql下,而我安裝的rh9.0的/usr/include下根本沒有mysql是不是我沒安裝完整????
《解決方案》

Redhat9.0下安裝qmail+igenus實錄

到你的光碟上找找看吧。

最好把mysql-shared, mysql-devel和mysql-client都裝上
《解決方案》

Redhat9.0下安裝qmail+igenus實錄

不好意思,我安裝redhat9.0的時候也沒安裝mysql-devel,可能的確是沒這個選項,我記不清了。應該是在安裝完redhat9.0后,單獨安裝mysql-devel,你可以在第二張光碟上找到mysql-devel-3.23.54a.rpm。

[火星人 ] Redhat9.0下安裝qmail+igenus實錄已經有612次圍觀

http://coctec.com/docs/service/show-post-12338.html