一、实验所需要的源码包
httpd-2.2.19.tar.bz2                                           安装源码包apache
mysql-5.0.81.tar.gz                                        安装源码包mysql
php-5.3.7.tar.bz2                                          安装php软件 
postfix-2.6.2.tar.gz                                          postfix主程序
postfix-2.6.2-vda-ng.patch.gz                                 postfix的补丁包
dovecot-1.1.4.tar.gz                                    IMAP和POP3邮件服务器软件
squirrelmail-1.4.13.tar.bz2                                    web界面邮件管理
zh_CN-1.4.13-20071220.tar.bz2                               汉化包
extman-0.2.5.tar.gz                                         邮件后台管理程序
extmail-1.0.5.tar.gz                                          web界面邮件管理
courier-authlib-0.62.4.tar.bz2                                  SMTP发信认证
Unix-Syslog-1.1.tar.gz
DBI-1.616.tar.gz
DBD-mysql-4.020.tar.gz                                     以上三个包为extmail的倚赖包
GD-2.46.tar.gz
File-Tail-0.99.3.tar.gz
rrdtool-1.2.23-3.el5.i386.rpm
rrdtool-perl-1.2.23-3.el5.i386.rpm                             以上四个包为extman的倚赖包
二、搭建LAMP环境
[root@mail ~]#  yum -y groupinstall  "Development Libraries"  "Development Tools" "X Software Development"
[root@mail ~]# yum grouplist
[root@mail ~]#  yum list  all  |grep  -E  "mysql|httpd|php"  #查看是否已经安装相关软件,若安装了需要卸载掉
(1)安装mysql
[root@mail mysql-5.0.81]# useradd  -M  -s  /sbin/nologin  mysql
[root@mail mysql-5.0.81]# tar -zxvf mysql-5.0.81.tar.gz -C /usr/local/src/
[root@mail mysql-5.0.81]# cd /usr/local/src/mysql-5.0.81/
[root@mail mysql-5.0.81]# ./configure  --prefix=/usr/local/mysql
[root@mail mysql-5.0.81]# make
[root@mail mysql-5.0.81]# make install
[root@mail mysql-5.0.81]# cp  support-files/my-medium.cnf  /etc/my.cnf  #复制主配置文件
[root@mail mysql-5.0.81]# /usr/local/mysql/bin/mysql_install_db  --user=mysql #初始化
[root@mail mysql-5.0.81]# chown  -R  root:mysql  /usr/local/mysql
[root@mail mysql-5.0.81]# chown  -R  mysql  /usr/local/mysql/var
[root@mail mysql-5.0.81]# echo  "/usr/local/mysql/lib/mysql"   >> /etc/ld.so.conf  #添加库文件路径
[root@mail mysql-5.0.81]# ldconfig   #刷新库文件存放路径
[root@mail mysql-5.0.81]# /usr/local/mysql/bin/mysqld_safe  --user=mysql  &  #后台安全启动,卡住不动,按回车键
[root@mail mysql-5.0.81]# cp  support-files/mysql.server  /etc/init.d/mysqld  #复制启动脚本
[root@mail mysql-5.0.81]# chmod  +x  /etc/init.d/mysqld
[root@mail mysql-5.0.81]# chkconfig  --add  mysqld   #添加到系统自动启动服务中
[root@mail mysql-5.0.81]# chkconfig  mysqld  on    #默认启动
[root@mail mysql-5.0.81]# echo  "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile  #设置系统全局的环境变量PATH值,方便使用mysql数据库命令
[root@mail ~]# /usr/local/mysql/bin/mysql  #测试mysql是否安装成功(未安装客户端所以只能以这种方式连接mysql进行测试 ,安装好后运行: /etc/rc.d/init.d/mysqld start 再输入mysql命令就行了 )
说明:已经成功了。
(2)安装apache
[root@localhost ~]# tar -jxvf  httpd-2.2.19.tar.bz2 -C /usr/local/src
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# ll
[root@localhost src]# cd httpd-2.2.19/
[root@localhost httpd-2.2.19]# ./configure --prefix=/usr/local/apache  --sysconfdir=/etc/httpd --enable-ssl  --enable-so --with-z
[root@localhost httpd-2.2.19]# make  (时间会长点)
[root@localhost httpd-2.2.19]# make  install
[root@localhost httpd-2.2.19]# cd /etc/httpd/
[root@localhost httpd]# ll
[root@localhost httpd]# vim httpd.conf   (不用修改只是为了查看有什么不同之处)
测试一下apache是否可用
[root@localhost httpd]# cd /usr/local/apache/htdocs/
[root@localhost htdocs]# vim index.html
[root@localhost htdocs]# cd /usr/local/apache/
[root@localhost apache]# ./bin/apachectl  start  #启动http服务
[root@localhost apache]# netstat -tupln |grep http   #查看端口是否开了
已经开了
http://192.168.6.100/
说明:http服务已经可用
为了能够像mysqld一样方便的进行管理,我们还需要做类似上述mysqld的相关配置:
[root@localhost apache]# vim /etc/rc.local
[root@localhost apache]# vim /etc/profile
[root@localhost apache]# . /etc/profile
[root@localhost apache]# echo $PATH
[root@localhost apache]# cd  /usr/include/
[root@localhost include]# ln -s /usr/local/apache/include/  apache
[root@localhost include]# cd /etc/ld.so.conf.d/
[root@localhost ld.so.conf.d]# vim apache.conf
[root@localhost ld.so.conf.d]# ldconfig -v |grep apache
[root@localhost ld.so.conf.d]# apachectl restart
Apache到此安装完毕
(3)安装php
[root@localhost ~]# tar  -jxvf php-5.3.7.tar.bz2  -C  /usr/local/src
[root@localhost ~]# cd /usr/local/src/php-5.3.7/
[root@localhost php-5.3.7]# ./configure   --prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
[root@localhost php-5.3.7]# make
[root@localhost php-5.3.7]# make  install
[root@localhost php-5.3.7]# cd /usr/local/apache/htdocs/
[root@localhost htdocs]# mv  index.html index.php
[root@localhost htdocs]# vim index.php
[root@localhost htdocs]# vim  /etc/httpd/httpd.conf
[root@localhost htdocs]# apachectl  restart
下面测试以下php是否能够使用
说明:php已经可用
[root@localhost htdocs]# vim index.php
[root@localhost htdocs]# apachectl  restart
下面我们进行php与mysql的连接测试:
http://192.168.6.100/
[root@localhost htdocs]# service  mysqld stop
[root@localhost htdocs]# service  mysqld start
说明:php与mysql连接成功。
至此,×××lamp环境已经完全实现了,可以进行应用了
三、安装postfix
        安装postfix之前首先停止掉系统自带的sendmail软件
首先,配置dns相关内容
[root@mail ~]# yum install  bind  bind-chroot caching-nameserver
[root@mail ~]# cd /var/named/chroot/etc/
[root@mail etc]# cp -p named.caching-nameserver.conf   named.conf
[root@mail etc]# vim /etc/resolv.conf
[root@mail etc]# vim named.rfc1912.zones
[root@mail etc]# cd ../var/named/
[root@mail named]# cp -p localhost.zone  cyz.com.db
[root@mail named]# dig -t mx cyz.com
[root@mail named]# vim /etc/sysconfig/network
[root@mail named]# chkconfig --add named
[root@mail named]# chkconfig named on
[root@mail named]# service named restart
DNS的相关配置完成。
[root@mail htdocs]# service  sendmail stop
[root@mail htdocs]# chkconfig  sendmail off
[root@mail htdocs]# mysqladmin -u root password 'redhat'   #为root用户设置密码
[root@mail htdocs]# mysql -u root -p  #输入密码
mysql> SET  PASSWORD FOR root@'localhost'=PASSWORD('redhat'); 
mysql> SET  PASSWORD FOR         #以上授权本地用户
mysql> GRANT  ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'redhat';  #授权远程用户
mysql> FLUSH PRIVILEGES;              # 刷新配置
[root@mail ~]# groupadd -g 2525 postfix
[root@mail ~]# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
[root@mail ~]# groupadd -g 2526 postdrop
[root@mail ~]# useradd -g postdrop -u 2526 -s /bin/false -M postdrop
[root@mail postfix-2.6.2]# tar -zxvf postfix-2.6.2.tar.gz  -C /usr/local/src/
[root@mail postfix-2.6.2]# cd /usr/local/src/postfix-2.6.2/
[root@mail postfix-2.6.2]# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl  -DUSE_TLS ' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2   -lssl -lcrypto'
[root@mail postfix-2.6.2]# make
[root@mail postfix-2.6.2]# make install
[root@mail postfix-2.6.2]# newaliases
[root@mail postfix-2.6.2]# vim /etc/postfix/main.cf
[root@mail postfix-2.6.2]# postfix start
[root@mail ~]# cd abc/
[root@mail abc]# cp /mnt/cdrom/Server/postfix-2.3.3-2.1.el5_2.i386.rpm ./
[root@mail abc]# rpm2cpio postfix-2.3.3-2.1.el5_2.i386.rpm |cpio -id
[root@mail abc]# cd etc/rc.d/init.d/
[root@mail init.d]# cp postfix /etc/init.d/postfix
[root@mail init.d]# service postfix start    #可以使用service管理了
可以通过telnet 进行测试以下
[root@mail postfix-2.6.2]# telnet  localhost 25
四、安装dovecot
    [root@mail ~]# useradd  -M  -s  /sbin/nologin  dovecot
[root@mail ~]# tar -zxvf dovecot-1.1.4.tar.gz  -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/dovecot-1.1.4/
[root@mail dovecot-1.1.4]# ./configure  --sysconfdir=/etc  --with-mysql
[root@mail dovecot-1.1.4]# make
[root@mail dovecot-1.1.4]# make install
[root@mail dovecot-1.1.4]# cp  /etc/dovecot-example.conf  /etc/dovecot.conf 
[root@mail dovecot-1.1.4]# vim /etc/dovecot.conf
[root@mail dovecot-1.1.4]# vim /etc/pam.d/dovecot
[root@mail dovecot-1.1.4]# /usr/local/sbin/dovecot  -c  /etc/dovecot.conf  #启动
测试一下接收服务器
[root@mail dovecot-1.1.4]# telnet localhost 110
说明:dovecot安装成功。
五、安装Webmail软件
[root@mail ~]# tar -zxvf  squirrelmail-webmail-1.4.22.tar.gz -C /usr/local/apache/htdocs/
[root@mail ~]# cd /usr/local/apache/htdocs/
[root@mail htdocs]# mv squirrelmail-webmail-1.4.22 webmail
[root@mail htdocs]# cd webmail/
[root@mail webmail]# mkdir  -p  attach  data
[root@mail webmail]# chown  -R  daemon:daemon  attach/   data/
[root@mail webmail]# chmod  730  attach/
[root@mail webmail]# cp  config/config_default.php  config/config.php
[root@mail webmail]# vim config/config.php
[root@mail webmail]# /usr/local/apache/bin/apachectl  restart  
测试一下:
六、初始化 extman 软件
[root@mail ~]# tar -zxvf extman-0.2.5.tar.gz   -C  /usr/local/src/
[root@mail src]# cd /usr/local/src/extman-0.2.5/docs
[root@mail docs]# mysql  -u  root  -p  < extmail.sql   #需要输入密码,我的root的密码是redhat
[root@mail docs]# mysql  -u  root  -p  &lt;init.sql
配置 Postfix
[root@mail docs]# postconf  -m |grep  mysql  #返回值有mysql,说明可以支持mysql 数据库的查询表
让postfix支持虚拟域和虚拟用户:
[root@mail ~]# vim /etc/postfix/main.cf  
[root@mail docs]# cp mysql*  /etc/postfix/
[root@mail docs]# mysql -u root -p
mysql> GRANT all privileges on extmail.* TO extmail@localhost IDENTIFIED BY 'extmail';
mysql&gt; GRANT all privileges on extmail.* TO extmail@127.0.0.1 IDENTIFIED BY 'extmail';
mysql&gt; FLUSH PRIVILEGES;   #让设置的内容生效
七、虚拟用户设置SMTP发信认证
[root@mail ~]# tar -jxvf  courier-authlib-0.62.4.tar.bz2  -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/courier-authlib-0.62.4/
[root@mail courier-authlib-0.62.4]# ./configure  --prefix=/usr/local/courier-authlib  --without-stdheaderdir  --with-authmysql  --with-redhat --with-mysql-libs=/usr/local/mysql/lib/mysql  --with-mysql-includes=/usr/local/mysql/include/mysql
[root@mail courier-authlib-0.62.4]# make
[root@mail courier-authlib-0.62.4]# make  install
[root@mail courier-authlib-0.62.4]# make  install-configure #生成默认配置文件authmysqlrc 和 authdaemonrc
[root@mail courier-authlib-0.62.4]# vim /etc/ld.so.conf   #添加courier-authlib的库文件路径
[root@mail courier-authlib-0.62.4]# cd /usr/local/courier-authlib/etc/authlib/ 
[root@mail authlib]# cp  authmysqlrc  authmysqlrc.bak    #修改主配置文件,所以做个备份
[root@mail authlib]# vim authmysqlrc
相关的解释:
MYSQL_SERVER            localhost 数据库服务器位置
MYSQL_USERNAME          extmail 数据库管理员账户
MYSQL_PASSWORD          extmail 数据库管理员账户密码
MYSQL_SOCKET            /tmp/mysql.sock  文件位置
MYSQL_DATABASE          extmail  虚拟用户数据库
MYSQL_USER_TABLE        mailbox  从mailbox表获得邮件账户信息
MYSQL_CRYPT_PWFIELD     password 从password字段获得账户密码
MYSQL_UID_FIELD         uidnumber 从uidnumber字段获得映射的本地用户UID
MYSQL_GID_FIELD         gidnumber 从gidnumber字段获得映射的本地组GID
MYSQL_LOGIN_FIELD       username 从username字段获得账户名称,带@后缀
MYSQL_HOME_FIELD        concat('/mailbox/',homedir)合并出用户的宿主目录路径
MYSQL_NAME_FIELD        name 从name 字段获得账户名称,不带@后缀
MYSQL_MAILDIR_FIELD     concat('/mailbox/',maildir)合并出用户的邮件存储路径
设置启动脚本
[root@mail authlib]# cd  /usr/local/src/courier-authlib-0.62.4/
[root@mail courier-authlib-0.62.4]# cp  courier-authlib.sysvinit  /etc/init.d/courier-authlib
[root@mail courier-authlib-0.62.4]# chmod  755  /etc/rc.d/init.d/courier-authlib
[root@mail courier-authlib-0.62.4]# chkconfig courier-authlib  on
[root@mail courier-authlib-0.62.4]# chkconfig --add courier-authlib
[root@mail courier-authlib-0.62.4]# service  courier-authlib start
修改Cyrus sasl 设置
[root@mail courier-authlib-0.62.4]# vim /usr/lib/sasl2/smtpd.conf
修改Dovecot配置
[root@mail courier-authlib-0.62.4]# vim /etc/dovecot.conf
建立数据查询配置文件
[root@mail courier-authlib-0.62.4]# vim /etc/dovecot-mysql.conf
[root@mail courier-authlib-0.62.4]# vim /etc/postfix/main.cf
八、建立虚拟用户
[root@mail ~]# mkdir  -p  /mailbox/extmail.org/postmaster/Maldir
[root@mail ~]# cd  /mailbox/extmail.org/postmaster/Maildir
[root@mail Maildir]# chown  -R  postfix:postfix  /mailbox
[root@mail ~]# dovecot    #启动服务
九、ExtMail平台
  
先安装三个依赖包
[root@mail ~]# tar -zxvf Unix-Syslog-1.1.tar.gz  -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/Unix-Syslog-1.1/
[root@mail Unix-Syslog-1.1]# perl Makefile.PL
[root@mail Unix-Syslog-1.1]# make
[root@mail Unix-Syslog-1.1]# make install
[root@mail ~]# tar -zxvf DBI-1.616.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/DBI-1.616/
[root@mail DBI-1.616]# perl Makefile.PL
[root@mail DBI-1.616]# make
[root@mail DBI-1.616]# make install
[root@mail ~]# tar -zxvf DBD-mysql-4.020.tar.gz  -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/DBD-mysql-4.020/
[root@mail DBD-mysql-4.020]# perl Makefile.PL
[root@mail DBD-mysql-4.020]# make
[root@mail DBD-mysql-4.020]# make  install
安装extmail
[root@mail ~]# tar -zxvf extmail-1.0.5.tar.gz -C /usr/local/apache/htdocs/
[root@mail ~]# cd /usr/local/apache/htdocs/
[root@mail htdocs]# mv extmail-1.0.5 extmail
[root@mail extmail]# chown  -R  postfix:postfix  cgi
[root@mail extmail]# cp  webmail.cf.default  webmail.cf
[root@mail extmail]# vim webmail.cf    #修改主配置文件
修改apache服务,添加虚拟主机
[root@mail ~]# vim /etc/httpd/httpd.conf
这里由于前面我们并没有启用Suexec 所以我们没有在虚拟主机中添加 SuexecUerGroup  postfix  postfix
[root@mail ~]#  apachectl restart
十、安装EXTMAN
先安装四个依赖包
[root@mail ~]# tar -zxvf GD-2.46.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/GD-2.46/
[root@mail GD-2.46]# perl  Makefile.PL
[root@mail GD-2.46]# make
[root@mail GD-2.46]# make  install
[root@mail ~]# tar -zxvf File-Tail-0.99.3.tar.gz  -C /usr/local/src/
[root@mail ~]# cd  /usr/local/src/File-Tail-0.99.3
[root@mail File-Tail-0.99.3]# perl  Makefile.PL
[root@mail File-Tail-0.99.3]# make
[root@mail File-Tail-0.99.3]# make  install
[root@mail ~]# rpm  -ivh  rrdtool-1.2.23-3.el5.i386.rpm
[root@mail ~]# rpm  -ivh  rrdtool-perl-1.2.23-3.el5.i386.rpm
安装extman套件
[root@mail ~]# tar -zxvf extman-0.2.5.tar.gz -C /usr/local/apache/htdocs/
[root@mail ~]# cd /usr/local/apache/htdocs/
[root@mail htdocs]# mv extman-0.2.5 extman
[root@mail htdocs]# cd extman/
[root@mail extman]# chown  -R  postfix:postfix  cgi
[root@mail extman]# mkdir  /tmp/extman
[root@mail extman]# chown  -R  postfix:postfix  /tmp/extman
[root@mail extman]# vim webman.cf
调整apache主配文件。添加extman相关目录别名
[root@mail ~]# vim /etc/httpd/httpd.conf
[root@mail ~]# apachectl  restart    #重启apache服务
测试一下:
十一、设置邮件系统的图形化日志信息
[root@mail ~]# ln -sf /usr/local/apache/htdocs/extman/addon/mailgraph_ext/mailgraph-init /usr/sbin
[root@mail ~]# ln -sf  /usr/local/apache/htdocs/extman/addon/mailgraph_ext/qmonitor-init  /usr/sbin
[root@mail ~]# cp -a  /usr/local/apache/htdocs/extman/addon/mailgraph_ext /usr/local
[root@mail ~]#  mailgraph-init start
[root@mail ~]#  qmonitor start
[root@mail ~]# echo "usr/sbin/mailgraph-init start"&gt;&gt; /etc/rc.d/rc.local
[root@mail ~]# echo "usr/sbin/qmonitor-init start"&gt;&gt; /etc/rc.d/rc.local
十二、垃圾邮件过滤
1 根据客户端的主机名/地址过滤邮件
[root@mail ~]# vim /etc/postfix/main.cf
[root@mail ~]# vim /etc/postfix/access
[root@mail ~]# postmap /etc/postfix/access
2 根据客户机HELO 信息中的主机名地址过滤邮件
[root@mail ~]# postfix  reload
3 根据发件人的地址过滤邮件
[root@mail ~]# vim /etc/postfix/sendder_access
[root@mail ~]#  postmap /etc/postfix/sender_access
4 根据收件人的地址过滤邮件
[root@mail ~]# service postfix restart
5 基于邮件内容的过滤
 
5.1安装并配置MailScanner 扫描调度工具
[root@mail ~]# tar -zxvf MailScanner-4.84.3-1.rpm.tar.gz  -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/MailScanner-4.84.3-1/
[root@mail MailScanner-4.84.3-1]#  ./install.sh
[root@mail MailScanner-4.84.3-1]# vim /etc/MailScanner/MailScanner.conf
配置Postfix 支持调用MailScanner:
[root@mail ~]# vim /etc/postfix/main.cf
[root@mail ~]# vim /etc/postfix/header_checks
 
调整邮件过滤队列的目录属主、属组,并启动MailScanner 服务程序
[root@mail ~]# chown -R postfix.postfix     /var/spool/MailScanner/incoming
[root@mail ~]# chown -R postfix.postfix   /var/spool/MailScanner/quarantine
[root@mail ~]# service  MailScanner start
[root@mail ~]# chkconfig  MailScanner on
安装并配置SpamAssassin 垃圾邮件过滤器
[root@mail ~]# cd /mnt/cdrom/Server/
[root@mail Server]# yum install spamassassin-3.2.5-1.el5.i386.rpm
[root@mail ~]# service spamassassin start
[root@mail ~]# chkconfig spamassassin on
安装并配置F-Port 病毒查杀软件
安装F-Port 软件包安装过程中出现提示是按回车键接受默认设置
[root@mail ~]# tar -zxvf fp-Linux-i686-ws.tar.gz  -C /opt/
[root@mail ~]# cd /opt/f-prot/
[root@mail f-prot]#  ./install-f-prot.pl
升级F-Port 病毒库(服务器要能够访问Internet 互联网)
[root@localhost f-prot]# /opt/f-prot/fpupdate
[root@localhost f-prot]# crontab -e  #计划任务
[root@localhost f-prot]# service crond restart
[root@localhost f-prot]# chkconfig  crond on
十三、Extman后台管理设置