歡迎您光臨本站 註冊首頁

安裝qmail vpopmail mysql的詳細過程

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

作者:artxing
QQ:artxing 5213598

一、準備工作
安裝solaris9,(這個不用我說了吧,在solaris版有很多貼子講這個.不會的可以去那裡找.)設置主機名為mail.wangxu.com.

然後去這裡下載安裝中需要用到的軟體包集合
http://info.868cn.com/download/solaris9-qmail.tar

由於solaris安裝后並沒有gcc,make等,必須安裝它們.安裝方法參考南非蜘蛛的這篇貼子.
http://chinaunix.net/jh/6/16434.html

gcc,make等安裝完之後要安裝patch-2.5.4-sol8-intel-local.gz(由於http: //sunfreeware.com沒有for solaris9的,我就下了個for solaris8的,也可以用) ,至於為什麼要裝它,我下面再說.
安裝完patch后,
#mv /usr/bin/patch /usr/bin/patch.bak
#cp /usr/local/bin/patch /usr/bin/patch (用新安裝的patch替換以前系統自帶的patch)

同時注意,我所提供的軟體包集合中的軟體都是已經gunzip過的,直接拿來pkgadd就可以了.

autoconf,automake,bison,最好也安裝,下面編譯mysql可能需要它們.

二、安裝mysql

1.安裝ncurses
# tar xvf ncurses-5.3.tar
# cd ncurses-5.3
# ./configure
# make
# make install
2.編譯安裝mysql
# tar xvf mysql-4.0.16.tar
# useradd -g mysql mysql
# cd mysql-4.0.13
# CC=gcc CFLAGS="-O3 -fomit-frame-pointer -DHAVE_CURSES_H"
CXX=gcc
CXXFLAGS="-O3 -fomit-frame-pointer -felide-constructors
-fno-exceptions
-fno-rtti -DHAVE_CURSES_H"
# ./configure --prefix=/usr/local/mysql
# make
# make install
# scripts/mysql_install_db
# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/var
# chgrp -R mysql /usr/local/mysql
# cp support-files/my-medium.cnf /etc/my.cnf

3.啟動mysql

# /usr/local/mysql/bin/mysqld_safe --user=mysql &
334
Starting mysqld daemon with databases from /usr/local/mysql/var
# ps
PID TTY TIME CMD
333 pts/1 0:00 sh
334 pts/1 0:00 mysqld_s
如果看到類似的信息,就說明mysql已經正常啟動了.

這裡可以把/usr/local/mysql/bin加到path中,方便下面運行mysql指令.

4.設置mysql啟動腳本

#cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
#ln -s /etc/init.d/mysqld /etc/rc2.d/Kmysqld
#ln -s /etc/init.d/mysqld /etc/rc2.d/Smysqld

5.修改mysql的root密碼
# mysqladmin -u root -p password wangxu(設置你的密碼)
Enter passwod:(直接回車)

6.mysql的include和lib文件的路徑,接下來編譯vpopmail時要指定它們
include文件:/usr/local/mysql/include/mysql
lib文件:/usr/local/mysql/lib/mysql


三、安裝ucspi-tcp-0.88
#tar xvf ucspi-tcp-0.88.tar
#cd ucspi-tcp-0.88
#patch -p1 < ../ucspi-tcp-0.88.a_record.patch (這裡如果之前沒有安裝patch包的話,你會無法打patch補定.)
#patch -p1 < ../ucspi-tcp-0.88.errno.patch


#patch -p1 < ../ucspi-tcp-0.88.nobase.patch
#make
#make setup check

四、安裝qmail

1.下載軟體及補丁:
2.建立目錄:
# mkdir /var/qmail
# mkdir /var/qmail/alias
3.建組及用戶:
# groupadd nofiles
# groupadd qmail
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaild
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
# useradd -g qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails

4.打補丁及編繹安裝qmail

#tar xvf qmail-1.03.tar
#tar xvf qmail-smtpd-auth-0.31.tar
#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-1.03.qmail_local.patch
#vi qmail-smtpd.c //將函數straynewline中的451改為553


# make setup check
# ./config-fast mail.wangxu.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服務

我是直接刪除了sendmail的
#pkginfo |grep sendmail //找到sendmail的pkg包的名稱
#pkgrm 包名

# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
#chmod 777 /usr/sbin/sendmail

五、安裝vpopmail
1.建立目錄:
#mkdir /home/vpopmail
#mkdir /home/vpopmail/etc

2.添加用戶和組:
#groupadd vchkpw
#useradd -g vchkpw vpopmail
3.添加mysql的vpopmail用戶,用於操作vpopmail資料庫
#mysql -u root -pwangxu //進入mysql命令行
mysql>create database vpopmail;
mysql>grant all on vpopmail.* to vpopmail@localhost identified by "wangxu(換成你的密碼)";
4.編譯安裝vpopmail
#tar xvf vpopmail-5.2.1.tar
#cd vpopmail-5.2.1
#vi vmysql.h

#define MYSQL_UPDATE_SERVER "localhost" (mysql伺服器名)
#define MYSQL_UPDATE_USER "vpopmail" (用戶名)
#define MYSQL_UPDATE_PASSWD "wangxu" (改成你設置的密碼)

#define MYSQL_READ_SERVER "localhost" (mysql伺服器名)
#define MYSQL_READ_USER "vpopmail" (用戶名)
#define MYSQL_READ_PASSWD "wangxu" (改成你設置的密碼)

同時注意vmysql.h的第54行和58行
#define TABLE_LAYOUT "pw_name char(32) not null,
pw_domain char(64) not null, <===== 54
pw_passwd char(40),
pw_uid int, pw_gid int,
pw_gecos char(48),
pw_dir char(160), <===== 58
pw_shell char(20),
primary key (pw_name, pw_domain ) "

這裡少了兩個 ,需要手動添加上,以後編譯時才能通過.但這裡有個問題,在linux和freebsd下是不需要修改這裡的.在這裡困擾了一段時間,後來在google搜索了一下,才找到處理辦法.




5.創建tcp.smtp文件(或者使用/etc/tcp.smtp)
# vi /home/vpopmail/etc/tcp.smtp

127.0.0.1:allow,RELAYCLIENT=""
:allow

#cd /home/vpopmail/etc
#tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

6.進行編譯:
# ./configure --prefix=/home/vpopmail --enable-mysql=y --enable-incdir=/usr/local/mysql/include/mysql --enable-libdir=/usr/local/mysql/lib/mysql --enable-default-domain=wangxu.com --enable-passwd=n --enable-defaultquota=5242880 --enable-tcprules-prog=/usr/local/bin/tcprules --enable-vpopuser=vpopmail --enable-vpopgroup=vchkpw --enable-ip-alias-domains=n

\下面是我使用的參數

--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=mydomain.com \定義虛擬域名
--enable-passwd=n \是否使用系統密碼驗證方式
--enable-defaultquota=5242880 \定義預設郵箱大小,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

7.創建虛擬域
# cd /home/vpopmail/bin
# ./vadddomain 域名 (密碼) (在mysql資料庫vpopmail中自動生成vpopmail表單)
(如果使用與機器名相同的虛擬域名,應先生成一個其它的虛擬域名,不然會有問題,無法自動生成vpopmail資料庫)
# ./vadduser 用戶名 密碼 (會自動往表vpopmail中添加用戶數據,用戶名要帶域名,如demo@demo.com)
如果不成功的話,則必須先刪除創建的域,./vdeldomain 域名

如果添加domain時,提示Domain already exists,但卻刪除domain又提示Domain does not exist.則採用下面的處理方法.
刪除/var/qmail/control目錄下rcpthosts,virtualdomains文件中有關domain的信息;同時刪除 /var/qmail/user目錄下assign文件中有關domain的信息;然後運行/var/qmail/bin/qmail-newu.這時候就可以正常添加domain了.


六、smtp-auth的設置

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

2.安裝cmd5checkpw
#tar xvf cmd5checkpw-0.22.tar
#cd cmd5checkpw-0.22
#make
#mkdir /usr/man/man8
#make install
注意,使用vpopmail,checkpassword不用安裝.


七、生成qmail的啟動腳本



#cp /var/qmail/boot/home /var/qmail/rc
# vi /var/qmail/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服務的啟動腳本

#!/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 mail.wangxu.com(換成你的主機名) /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1 | /var/qmail/bin/splogger smtpd 3 &


#vi /var/qmail/pop3 //編輯pop3服務的啟動腳本

#!/bin/sh

/usr/local/bin/tcpserver -l mail.wangxu.com(換成你的主機名) –U -H -R 0 pop3 /var/qmail/bin/qmail-popup mail.wangxu.com(換成你的主機名) /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 -ef | grep qmail //查看qmail的服務進程是否已完全正常啟動
如果qmail已正常啟動,用outlook測試qmail的smtp和pop3是否正常,注意由於vpopmail支持虛擬域名,在outlook中設置郵件帳號時,用戶名后要加上域名,如wangxu@wangxu.com.smtp是帶認證的.


文檔說明:

這份文檔,是我參考了大量的網友的文章而寫成的,在solaris9下測試通過.其間也請教了多位論壇中的朋友,謝謝他們.可能中間有什麼問題,請大家幫忙指正,有什麼問題請回復.

對於這篇文檔,網友可以轉載,轉載時請註明出處.

至於qmail系統中其他的qmailadmin,webmail等,我就不再羅列,有興趣話,大家自行安裝.


[火星人 ] 安裝qmail vpopmail mysql的詳細過程已經有564次圍觀

http://coctec.com/docs/linux/show-post-56456.html