一:安装PHP

  1:安装

[root@redhat tmp]# tar zxvf php-5.2.3.tar.gz
 [root@redhat tmp]# cd php-5.2.3
 [root@redhat php-5.2.3]# ./configure --prefix=/usr/local/php \
--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-libxml-dir=/usr/include/libxml2/libxml --with-gd=/usr/local/gd/ \
--with-png=/usr/local/png/ --with-jpeg=/usr/local/jpeg/ --with-xpm \
--with-zlib --enable-debug --enable-magic-quotes --enable-libgcc \
--enable-ftp --enable-mbstring=all --enable-sockets --with-gnu-ld
 [root@redhat php-5.2.3]# make
 [root@redhat php-5.2.3]# make install
 [root@redhat php-5.2.3]# cp php.ini-recommended        /usr/local/php/etc/php.ini

  2:配置相关文件支持

//配置httpd.conf文件
 [root@redhat php-5.2.3]# vi /etc/httpd/httpd.conf
AddType application/x-httpd-php .php .phtml //第352行增加
AddType application/x-httpd-php-source .phps
<Directory "/var/www"> //第174行
 DirectoryIndex index.html index.html.var index.php index.htm //第209行
//第126行起增加以下内容
<VirtualHost *:80>
ServerName redhat.test.com
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
SuexecUserGroup vmail vmail //suexec用户执行权限
Alias /phpadmin /var/www/phpadmin //图形管理mysql
</VirtualHost>

//配置httpd-vhost.conff文件,以支持虚拟主机,先删除原有的27-43
行的内容,然后再最后增加以下内容
 [root@redhat php-5.2.3]# vi        /etc/httpd/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerName redhat.test.com
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
SuexecUserGroup vmail vmail
</VirtualHost>
3:配置phpmyadmin用于管理mysql,测试启动Apache
[root@redhat tmp]# tar zxvf phpMyAdmin-2.11.2-all-languages.tar.gz
[root@redhat tmp]# mv phpMyAdmin-2.11.2-all-languages /var/www/phpadmin
[root@redhat tmp]# cd /var/www/phpadmin/
 [root@redhat phpadmin]# cp ./libraries/config.default.php        ./config.inc.php
[root@redhat phpadmin]# vi config.inc.php
$cfg['Servers'][$i]['auth_type'] = 'http'; //修改144行

//建立测试文件,启动Apache
 [root@redhat www]# vi ./phpamin/phpinfo1.php
<?php phpinfo(); ?>
[root@redhat www]# /usr/local/httpd/bin/apachectl start
Warning: DocumentRoot [/var/www/extsuite/extmail/html/] does not exist
[root@redhat www]#//不存在的原因是还没建立相关文件,将在后面进行
二:安装Postfix

  1:安装

[root@redhat tmp]# tar zxvf postfix-2.5-20071006.tar.gz
[root@redhat tmp]# cd postfix-2.5-20071006
//make        -f这一句请去掉所有的'\',我这里是为了显示方便,因为其中含有单引号
[root@redhat postfix-2.5-20071006]# make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL \
-I/usr/local/sasl2/include/sasl -I/usr/local/BerkeleyDB/include -DUSE_TLS -I-DUSE_TLS        -I/usr/include/openssl' \
'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/local/sasl2/lib -lsasl2 \
-L/usr/local/BerkeleyDB/lib -L/usr/lib -lssl -lcrypto'
 [root@redhat postfix-2.5-20071006]# make
 [root@redhat postfix-2.5-20071006]# make install
install_root: [/]
tempdir: [/tmp/postfix-2.5-20071006]
config_directory: [/etc/postfix]
daemon_directory: [/usr/libexec/postfix]
command_directory: [/usr/sbin]
queue_directory: [/var/spool/postfix]
sendmail_path: [/usr/sbin/sendmail]
newaliases_path: [/usr/bin/newaliases]
mailq_path: [/usr/bin/mailq]
mail_owner: [postfix]
setgid_group: [postdrop]
html_directory: [no] /var/www/postfix_html
 manpage_directory: [/usr/local/man] /usr/local/postfix/man
readme_directory: [no]
[root@redhat postfix-2.5-20071006]# newaliases
  2:建立邮件存放目录及备份旧文件
[root@redhat postfix-2.5-20071006]# mkdir -pv /var/mailbox
[root@redhat postfix-2.5-20071006]# chown -R vmail.vmail /var/mailbox
[[root@redhat postfix-2.5-20071006]# mv /etc/postfix/main.cf        /etc/postfix/main.cf.old
[root@redhat postfix-2.5-20071006]# mv /etc/postfix/master.cf        /etc/postfix/master.cf.old
  3:配置main.cf文件
//main.cf中的注解太多了,不如重新新建来得直观
  [root@redhat postfix-2.5-20071006]# vi /etc/postfix/main.cf      
 queue_directory = /var/spool/postfix      
  command_directory = /usr/sbin      
  daemon_directory = /usr/libexec/postfix      
  mail_owner = postfix      
  myhostname = redhat.test.com      
  mydomain = test.com      
  myorigin = $mydomain      
  inet_interfaces = all      
  mydestination =      
  unknown_local_recipient_reject_code = 550      
  mynetworks = 192.168.44.0/24, 127.0.0.0/8
  ############################CYRUS-SASL########################
  broken_sasl_auth_clients = yes      
  smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,      
  reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,      
  reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,      
  reject_unauth_pipelining,reject_unauth_destination      
  smtpd_sasl_auth_enable = yes      
  smtpd_sasl_local_domain = $mydomain      
  smtpd_sasl_security_options = noanonymous      
  smtpd_sasl_application_name = smtpd      
  smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!      
  #############################SASL-END##############################
  #############################Virtual Mailbox Settings################
  virtual_mailbox_base=/var/mailbox      
  virtual_mailbox_maps=mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf      
  virtual_mailbox_domains=mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf      
  virtual_alias_domains=      
  virtual_alias_maps=mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf      
  virtual_uid_maps=static:1001      
  virtual_gid_maps=static:1001      
  virtual_transport=maildrop      
  maildrop_destination_recipient_limit=1      
  maildrop_destination_concurrency_limit=1      
  #################################Mailbox END###########################
  #################################Quota Settings########################
  message_size_limit=1433600      
  virtual_mailbox_limit=20791520      
  virtual_create_maildirsize=yes      
  virtual_mailbox_extended=yes      
  virtual_mailbox_limit_maps=mysql:/etc/postfix/mysql/virtual_mailbox_limit_override=yes      
  virtual_maildir_limit_message=User's maildir has overdrawn his diskspace quota,try again          later.      
  virtual_overquota_bounce=yes      
  ################################Quota END############################
  ################################Amavis Start##########################
  content_filter=amavisfeed:[127.0.0.1]:10024      
  max_use=10      
  ################################Amavis END###########################
  debug_peer_level = 2
  debugger_command =      
  PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin      
  xxgdb $daemon_directory/$process_name $process_id & sleep 5
  sendmail_path = /usr/sbin/sendmail      
  newaliases_path = /usr/bin/newaliases      
  mailq_path = /usr/bin/mailq      
  setgid_group = postdrop      
  html_directory = /var/www/postfix_html      
  manpage_directory = /usr/local/postfix/man      
  sample_directory = /etc/postfix
  4:配置master.cf文件
//注意此文件中的有空格的地方
[root@redhat postfix-2.5-20071006]# vi /etc/postfix/master.cf
 smtp inet n - n - - smtpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o fallback_relay=
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/bin/maildrop -w 90 -d ${recipient}
old-cyrus unix - n n - - pipe
flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
cyrus unix - n n - - pipe
user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
amavisfeed unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o smtpd_restriction_classes=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
-o local_header_rewrite_clients=
  5:添加为支持虚拟域和虚拟用户所用到的配置文件
//直接在extman中复制过去就可以了
 [root@redhat tmp]# mkdir -pv /etc/postfix/mysql
[root@redhat tmp]# tar zxvf extman-0.2.3.tar.gz
[root@redhat tmp]# cd /tmp/extman-0.2.3/docs
[root@redhat docs]# cp ./mysql_virtual_alias_maps.cf        /etc/postfix/mysql/mysql_virtual_alias_maps.cf
 [root@redhat docs]# cp ./mysql_virtual_limit_maps.cf        /etc/postfix/mysql/mysql_virtual_mailbox_limit_maps.cf
[root@redhat docs]# cp ./mysql_virtual_mailbox_maps.cf        /etc/postfix/mysql/mysql_virtual_mailbox_maps.cf
 [root@redhat docs]# cp ./mysql_virtual_domains_maps.cf /etc/postfix/mysql/mysql_virtual_domains_maps.cf
[root@redhat docs]#
  6:安装pcre
//maildrop时需要
[root@redhat httpd]# tar jxvf pcre-7.2.tar.bz2
[root@redhat httpd]# cd pcre-7.2
 [root@redhat pcre-7.2]# ./configure
[root@redhat pcre-7.2]# make
[root@redhat pcre-7.2]# make install
  7:安装zlib
//clamav的新版本需zlib大于1.2.2
 [root@redhat php]# tar zxvf zlib-1.2.3.tar.gz
 [root@redhat php]# cd zlib-1.2.3
 [root@redhat zlib-1.2.3]# ./configure --prefix=/usr --shared
 [root@redhat zlib-1.2.3]# make
[root@redhat zlib-1.2.3]# make install

三:安装courier-imap

  1:安装

[root@redhat tmp]# tar jxvf courier-imap-4.1.3.tar.bz2
[root@redhat tmp]# cd courier-imap-4.1.3
 [root@redhat courier-imap-4.1.3]# export        COURIERAUTHCONFIG=/usr/local/authlib/bin/courierauthconfig
[root@redhat courier-imap-4.1.3]# ./configure --prefix=/usr/local/imap \
--with-redhat --disable-root-check \
--enable-unicode=utf-8,iso-8859-1,gb2312,gbk,gb18030 --with-trashquota \
--with-dirsync --with-mysql-libs=/usr/local/mysql/lib \
--with-mysql-includes=/usr/local/mysql/include --with-authmysql \
--with-authmysql=yes --disable-root-check
 [root@redhat courier-imap-4.1.3]# make
 [root@redhat courier-imap-4.1.3]# make install
 [root@redhat courier-imap-4.1.3]# make install-configure
  2:编辑配置文件启用pop3及imap
[root@redhat courier-imap-4.1.3]# vi /usr/local/imap/etc/pop3d
 POP3DSTART=YES //第140行
 [root@redhat courier-imap-4.1.3]# vi /usr/local/imap/etc/imapd
 IMAPDSTART=YES     //第403行
  3:启动及加入自动运行队列
//建立相关网页路径
[root@redhat php-5.2.3]# mkdir -pv /var/www/extsuite
mkdir: created directory `/var/www'
mkdir: created directory `/var/www/extsuite'


[root@redhat courier-imap-4.1.3]# cp courier-imap.sysvinit        /usr/local/imap/sbin/imapd
 [root@redhat courier-imap-4.1.3]# chmod +x        /usr/local/imap/sbin/imapd
 [root@redhat courier-imap-4.1.3]# /usr/local/imap/sbin/imapd start
 [root@redhat courier-imap-4.1.3]# cp courier-imap.sysvinit        /etc/rc.d/init.d/courier-imapd
[root@redhat courier-imap-4.1.3]# chmod 755 /etc/rc.d/init.d/courier-imapd
 [root@redhat courier-imap-4.1.3]# chkconfig --add courier-imapd
 [root@redhat courier-imap-4.1.3]# chkconfig --level 2345        courier-imapd on
四:安装maildrop
  1:安装
[root@redhat tmp]# tar jxvf maildrop-2.0.4.tar.bz2
[root@redhat tmp]# cd maildrop-2.0.4
 [root@redhat maildrop-2.0.4]# ln -sv        /usr/local/authlib/bin/courierauthconfig /usr/bin
 create symbolic link `/usr/bin/courierauthconfig' to        `/usr/local/authlib/bin/courierauthconfig'
[root@redhat maildrop-2.0.4]# ln -sv /usr/local/authlib/include/* /usr/include
 [root@redhat maildrop-2.0.4]#./configure        --prefix=/usr/local/maildrop \
--enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail' \
--enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=1001 \
--enable-maildrop-gid=1001 --with-trashquota --with-dirsync
 [root@redhat maildrop-2.0.4]# make
 [root@redhat maildrop-2.0.4]# make install
 [root@redhat maildrop-2.0.4]# cp /usr/local/maildrop/bin/maildrop        /usr/bin
 [root@redhat maildrop-2.0.4]# maildrop -v
maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
GDBM extensions enabled.
Courier Authentication Library extension enabled. //要保证这一行显示
 Maildir quota extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
  2:配置maildrop的日志文件
  [root@redhat maildrop-2.0.4]# vi /etc/maildroprc
logfile "/var/log/maildrop.log"      
  VERBOSE="4"

五:安装clamav

 1:安装

[root@redhat tmp]# tar zxvf clamav-0.91.2.tar.gz
[root@redhat tmp]# cd clamav-0.91.2
[root@redhat clamav-0.91.2]# ./configure --prefix=/usr/local/clamav \
--with-dbdir=/usr/local/share/clamav --disable-zlib-vcheck \
--sysconfdir=/etc/clamav
 [root@redhat clamav-0.91.2]# make
 [root@redhat clamav-0.91.2]# make install
 2:新建相关的文件及目录
[root@redhat clamav-0.91.2]# mkdir /var/log/clamav
 [root@redhat clamav-0.91.2]# chmod -R 744 /var/log/clamav
 [root@redhat clamav-0.91.2]# chown -R amavis:amavis        /var/log/clamav
[root@redhat clamav-0.91.2]# chown -R amavis.amavis /usr/local/share/clamav
[root@redhat clamav-0.91.2]# mkdir /var/run/clamav
[root@redhat clamav-0.91.2]# chmod 700 /var/run/clamav
[root@redhat clamav-0.91.2]# chown amavis.amavis /var/run/clamav

//freshclam.conf内容
[root@redhat clamav-0.91.2]# mv /etc/clamav/freshclam.conf        /etc/clamav/freshclam.conf.old
[root@redhat clamav-0.91.2]#vi /etc/clamav/freshclam.conf
DatabaseDirectory /usr/local/share/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogVerbose yes
LogSyslog yes
LogFacility LOG_MAIL
PidFile /var/run/freshclam.pid
DatabaseOwner amavis
DatabaseMirror db.CN.clamav.net
DatabaseMirror database.clamav.net
DatabaseMirror database.clamav.net

//clamd文件内容
[root@redhat clamav-0.91.2]# mv /etc/clamav/clamd.conf        /etc/clamav/clamd.conf.old
[root@redhat clamav-0.91.2]# vi /etc/clamav/clamd.conf
LogFile /var/log/clamav/clamd.log
LogSyslog yes
LogFacility LOG_MAIL
LogVerbose yes
PidFile /var/run/clamav/clamd.pid
DatabaseDirectory /usr/local/share/clamav
LocalSocket /var/run/clamav/clamd.socket
StreamMaxLength 20M
User amavis
ScanELF yes
ScanPDF yes
ScanMail yes
PhishingSignatures yes
  3:配置库文件及开机自启动
[root@redhat clamav-0.91.2]# cp contrib/init/RedHat/clamd        /etc/rc.d/init.d/clamd
[root@redhat clamav-0.91.2]# cp contrib/init/RedHat/clamav-milter        /etc/rc.d/init.d/clamav-milter
[root@redhat clamav-0.91.2]# chkconfig --add clamd
 [root@redhat clamav-0.91.2]# chkconfig --add clamav-milter
[root@redhat clamav-0.91.2]# chkconfig --level 2345 clamd on
[root@redhat clamav-0.91.2]# chkconfig --level 2345 clamav-milter on
 [root@redhat clamav-0.91.2]# echo "/usr/local/clamav/lib"        >> /etc/ld.so.conf
 [root@redhat clamav-0.91.2]# ldconfig -v
  4:启动服务及添加自动任务
[root@redhat clamav-0.91.2]# vi /etc/rc.d/init.d/clamd
progdir="/usr/local/clamav/sbin" //第19行
[root@redhat clamav-0.91.2]# service clamd start
Starting clamd: [ OK ]
[root@redhat clamav-0.91.2]#
[root@redhat clamav-0.91.2]# crontab -e
37 * * * * /usr/local/clamav/bin/freshclam     //增加系统启动任务
[root@redhat clamav-0.91.2]#/usr/local/clamav/bin/freshclam
ClamAV update process started at Thu Dec 6 04:09:24 2007
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.91.2 Recommended version: 0.92
DON'T PANIC! Read [url]http://www.clamav.net/support/faq[/url]
Downloading main-45.cdiff [100%]
差不多快完成一半了吧,是有点累,后面的等时间再更新吧。