基於虛擬帳號的郵件系統postfix+extmail+extman

利用郵箱收發信件已經成爲咱們平常生活不可或缺的一部分,而其基本的工做流程又是什麼樣的呢,帶着這樣的疑問,便對其基本的工做流程作了一下總結。 php

首先要明白鬚要那些包: html

httpd, php, php-mysql, mysql, mysql-server, mysql-devel, openssl-devel, dovecot, perl-DBD-MySQL, tcl, tcl-devel, libart_lgpl, libart_lgpl-devel, libtool-ltdl, libtool-ltdl-devel, expect mysql

可是在安裝前要關閉系統自帶的sendmail,並將它的隨系統自動啓動功能關閉 linux

service sendmail stop   chkconfig sendmail off web

而後利用 yum grouplist命令來檢查面的開發包組 sql

Development Libraries   Development Tools   Legacy Software Development  X Software Development 數據庫

若是沒有的話,利用以下命令來安裝上便可:yum groupinstall "packge_group_name" apache

下面來安裝這些包。爲了能夠使用到各模塊的最新功能,mysql apache採用源碼來安裝。而Mysql的源碼安裝,其官方還爲咱們提供了二進制版的,爲咱們省去了很多「麻煩」,對於我這樣的懶人,固然不會「自找麻煩了」,這裏就採用二進制版來安裝。 vim

首先來進行拆包: tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/切換到解壓的目錄能夠看到解壓出的目錄名字很長,爲了操做的方便,這裏爲其作一個軟鏈接: ide

ln -s mysql-5.5.15-linux2.6-i686/  mysql

而後切換到mysql目錄下,能夠看到官方提供的安裝文檔INSTALL-BINARY,根據裏面的步驟作就好

建立組:groupadd -r mysql

建立用戶:useradd -r -g mysql mysql -M

改變全部者:chown -R mysql .

改變所屬組:chgrp -R mysql .

初始化:scripts/mysql_install_db --user=mysql

而後把權限改回來:  chown -R root .   chown -R mysql data

而後拷貝並生成mysql配置文檔:cp support-files/my-medium.cnf /etc/my.cnf

拷貝並生成mysql的控制文件:cp support-files/mysql.server /etc/init.d/mysqld,賦予其可執行權限:chmod a+x /etc/init.d/mysqld

利用 chkconfig --add mysqld來把其加入開機啓動進程。

啓動mysql

profile文件中加入mysql環境變量

而後執行: . /etc/profile

把庫文件的路徑加入變量裏vim /etc/ld.so.conf.d/mysql.conf/usr/local/mysql/lib

而後執行ldconfig命令來刷新,接着來看能不能找到庫文件

而後對頭文件include作一個軟鏈接:ln -s include /usr/include/mysql

啓動mysql,且爲root用戶設置密碼:mysqladmin -u root -p password 'wgz0224gz'

到此,mysql的搭建就完成了。

接下來安裝apache,這裏我下載的是httpd-2.4.4,要安裝須要額外安裝另外兩個文件aprapr-util,因此先來安裝這兩個包(注意:若是系統裏安裝的有apache的話是要先卸載的)

tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src/

 cd /usr/local/src/apr-1.4.6/

./configure --prefix=/usr/local/apr(有可能提示缺乏gcc,這時用光盤提供的rpm裝上而後再執行./configure便可

 make

 make install

   tar -zxvf apr-util-1.4.1.tar.gz -C /usr/local/src/

   cd /usr/local/src/apr-util-1.4.1/

   ./configure --with-apr=/usr/local/apr/bin/apr-1-config 

   make

make install

此外,還要安裝一個pcre-devel的包,這裏我利用yum裝的rpm

接下來就來安裝apache,這裏我下載的版本爲httpd-2.4.4,

 tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/

切換到剛解壓的目錄

 ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-rewrite apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-pcre -with-z --enable-mpms-shared=all

(執行過程當中可能出現這個錯誤:

checking for OpenSSL version >= 0.9.7... FAILED

configure: WARNING: OpenSSL version is too old

no

checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

這時要安裝一個包:yum install openssl-devel而後再執行以上命令便可)

make

make install

接着要把apachectl的路徑放到man的路徑當中去vim /etc/man.config

而後對apacheinclude作一個符號連接

ln -s /usr/local/apache/include  /usr/include/apache

接下來就要去作apache的腳本了,並把其拷貝到/etc/init.d/目錄下,並附加其可執行的權限

root@localhost ~]# cp httpd /etc/init.d/

[root@localhost ~]# chmod a+x /etc/init.d/httpd

service httpd start

chkconfig --add httpd

chkconfig httpd on

而後就是安裝其餘的包了,這裏直接用yum來安裝便可。

yum install dovecot  tcl  tcl-devel  libart_lgpl  libart_lgpl-devel libtool-ltdl  libtool-ltdl-devel  expect

接下來來安裝DNS

yum install bind bind-chroot caching-nameserver

而後執行以下命令:

而後編輯配置文件:vim named.conf

接着編輯區域的聲明文件: vim named.rfc1912.zones 

接着生成a.com.zone文件:

編輯該文件vim a.com.zone192.168.2.100爲機器的地址)

啓動DNS

DNS指向vim /etc/resolv.conf 

修改主機名:

 vim /etc/sysconfig/network

vim /etc/hosts

這時能夠不重啓機器,直接執行hostname mail.a.com命令便可。

測試一下DNS

到此,準備工做已經就緒了。

接着來安裝postfix

解壓縮:tar -zxvf postfix-2.8.2.tar.gz -C /usr/local/src/

到解壓目錄:cd /usr/local/src/postfix-2.8.2/

建立用戶和組:

而後執行以下命令:

 make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl  -DUSE_TLS ' 'AUXLIBS=-L/usr/local/mysql/lib/ -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2   -lssl -lcrypto'

 make && make install

而後執行:/usr/bin/newaliases 

而後產生配置文件:

要想使postfix能正常工做,須要編輯一個文件:vim /etc/postfix/main.cf

 

 

啓動postfixservice postfix start

接着cd /usr/lib/sasl2/

啓動sasl

安裝courier-authlib

tar -jxvf courier-authlib-0.63.0.tar.bz2 -C /usr/local/src/

切換到解壓目錄執行以下命令

./configure  \

--prefix=/usr/local/courier-authlib \

 --sysconfdir=/etc \

  --with-authmysql  \

  --with-mysql-libs=/usr/local/mysql/lib \

  --with-mysql-includes=/usr/local/mysql/include \

   --with-redhat \

   --with-authmysqlrc=/etc/authmysqlrc \

   --with-authdaemonrc=/etc/authdaemonrc \

   --with-ltdl-lib=/usr/lib \

   --with-ltdl-include=/usr/include

make &&  make install

接着作以下操做

而後編輯文件:vim authdaemonrc

 

而後編輯文件:vim authmysqlrc

生成控制腳本:

啓動服務:

對頭文件和庫文件作相應的操做

cd /usr/local/courier-authlib/

 vim /etc/ld.so.conf.d/courier-authlib.conf

postfix支持虛擬域和虛擬用戶

編輯/etc/postfix/main.cf,添加以下內容:

使用extman源碼目錄下docs目錄中的extmail.sqlinit.sql創建數據庫

# tar zxvf  extman-1.1.tar.gz

cd extman-1.1/docs

mysql -u root -p <extmail.sql

mysql -u root -p <init.sql

 cp mysql*  /etc/postfix/

授予用戶extmail訪問extmail數據庫的權限

重啓postfixservice  postfix  restart

vim /usr/lib/sasl2/smtpd.conf 

從新啓動下各個服務。

配置dovecot

首先建立目錄:

vim /etc/dovecot.conf 

建立/etc/dovecot-mysql.conf

vim /etc/dovecot-mysql.conf

接下來啓動dovecot服務:

service dovecot start

chkconfig dovecot on

安裝Extmail

tar -zxvf extmail-1.2.tar.gz 

extmailextman建立主目錄:

mkdir -pv /var/www/extsuite/

把解壓出來的extmailextman移到該主目錄下

 mv extmail-1.2 /var/www/extsuite/extmail 

mv extman-1.1 /var/www/extsuite/extman

進入extmail目錄:

cp webmail.cf.default webmail.cf 

編輯此文件vim webmail.cf

編輯apache的配置文件vim /etc/httpd/httpd.conf

修改 cgi執行文件屬主爲apache運行身份用戶:

chown -R postfix.postfix /var/www/extsuite/extmail/extmail-1.2/cgi/

依賴關係的解決

extmail將會用到perlUnix::syslogd功能,能夠去http://search.cpan.org搜索下載原碼包進行安裝。

tar -zxvf Unix-Syslog-0.100.tar.gz -C /usr/local/src/

perl Makefile.PL

make

make install

配置Extman-1.1

 cd /var/www/extsuite/extman/

cp webman.cf.default webman.cf

編輯給文件vim webman.cf

修改cgi目錄的屬主:

chown -R postfix.postfix /var/www/extsuite/extman/cgi/

apache的主配置文件中Extmail的虛擬主機部分,添加以下兩行:

ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

Alias /extman /var/www/extsuite/extman/html

建立其運行時所需的臨時目錄,並修改其相應的權限:

#mkdir  -pv  /tmp/extman

#chown postfix.postfix  /tmp/extman

此時,還要編輯一文件vim /etc/postfix/main.cf註釋掉開始時打開的那一行

重啓各個服務。下面就能夠測試了。

Extmail 登陸頁面

登錄進去

添加

註冊新用戶

發信:

相關文章
相關標籤/搜索