一、實驗所需要的源碼包
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.5.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.5.100/
說明:php,mysql,apache連接成功。
至此,源碼搭建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 a.org
[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 root@'127.0.0.1'=PASSWORD('redhat'); #以上授權本地用戶
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 <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> GRANT all privileges on extmail.* TO [email protected] IDENTIFIED BY 'extmail';
mysql> 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/Maildir
[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">> /etc/rc.d/rc.local
[root@mail ~]# echo "usr/sbin/qmonitor-init start">> /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後臺管理設置