设为首页 收藏本站
查看: 888|回复: 0

[经验分享] 自动化安装postfix

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-14 13:21:34 | 显示全部楼层 |阅读模式
#!/bin/bash


setup_select()

{


clear

cat << menu

++++++++++++++ LINUX Network service INSTALL MENU ++++++++++++++++++++++

note:all of the need soft must be located in root directory!!!!

         

1. Install Apache

2. Install Mysql

3. Install PHP

4. Install postfix

5. Install dovecot

6. Install squirrelmail

7. Config  cyrus

8. Config maibox & mail size

9. Config virtual mail user---extman

10.Conifg virtual mail user---courier-authlib

11.Config virtual mail user---post & dove for courier-authlib

12.Install ExtMail

13.Install ExtMan

14.Install MailScanner

15.Install SpamAssassin

16.Install F-Prot

yum.Config yum server

Q. quit

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

menu

echo -e -n " Please Select [1,2,3.....Q] > "

#read -p "please select [1,2,3,Q] >:"  Select

}

###########################################################

amp_setup()

{

           setup_select

           read select

           case $select in               

1)

echo "###############INSTALL Apache################"

sleep 2

Date=`date +%F/%H:%M`

echo "$Date start install apache" >> /tmp/amp.log

tar xzvf /root/httpd-2.2.17.tar.gz -C /usr/src   

cd /usr/src/httpd-2.2.17/

echo "##########configuring.....please wait#########################"

  ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-ssl --with-ssl=/usr/lib  --enable-auth-digest --enable-cgi  --enable-suexec --with-suexec-caller=daemon --with-suexec-docroot=/usr/local/apache2/htdocs

echo "############make && make install#############################"

make && make install

IPADDR=`ifconfig eth0|grep "inet addr"|awk '{print $2}'|cut -d: -f 2`

echo "$IPADDR        mail.benet.com" >> /etc/hosts

cp -pf /usr/local/apache2/bin/apachectl /etc/init.d/httpd

chmod 755 /etc/init.d/httpd

service httpd restart

if [ $? -eq 0 ]

then

Date=`date +%F/%H:%M`

echo "$Date install apache success" >> /tmp/amp.log

fi

echo "apache install success!!!!"

sleep 4


      amp_setup

              ;;

2)

echo "mysql install,please waite 10 mintues"

sleep 4

Date=`date +%F/%H:%M`

echo "$Date start install mysql" >> /tmp/amp.log

useradd -M -s /sbin/nologin mysql

cd /root

tar zxvf  mysql-5.1.55.tar.gz -C /usr/src

cd /usr/src/mysql-5.1.55/

./configure --prefix=/usr/local/mysql

make && make install

if [ $? -eq 0 ]

then

Date=`date +%F/%H:%M`

echo  "$Date mysql make && make install success" >> /tmp/amp.log

else

echo "$Date mysql make && make install fault" >> /tmp/amp.log

fi

cp -f support-files/my-medium.cnf /etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysqld

chmod a+x /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig --level 12345 mysqld on

cd /usr/local/mysql

bin/mysql_install_db --user=mysql

chown -R root.mysql ./

chown -R mysql var

service mysqld restart

echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf

ldconfig

sleep 2

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

source /etc/profile

#/usr/local/mysql/bin/mysqladmin -u root password '123456'

if [ $? -eq 0 ]

then

Date=`date +%F/%H:%M`

echo  "$Date the password of root in mysql database is null  " >> /tmp/amp.log

else

echo "$Date setup password of root in mysql database fault" >> /tmp/amp.log  

fi

                   amp_setup

              ;;  

3)

tar zxf libxml2-2.7.2.tar.gz

cd libxml2-2.7.2

./configure -prefix=/usr/local/libxml

make && make install

cd /root

tar zxf libmcrypt-2.5.7.tar.gz

cd libmcrypt-2.5.7

./configure && make && make instal

cd /root

tar zxf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9

./configure && make && make install

cd /root

tar zxf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8

./configure --prefix=/usr/local/mcrypt && make && make install

cd /root

tar zxf zlib-1.2.8.tar.gz

cd zlib-1.2.8

        ./configure --prefix=/usr/local/zlib/

make && make install

cd /root

tar zxf libpng-1.5.19.tar.gz

cd libpng-1.5.19

./configure --prefix=/usr/local/libpng

make && make install

cd /root

mkdir /usr/local/jpeg8

mkdir /usr/local/jpeg8/bin

mkdir /usr/local/jpeg8/lib

mkdir /usr/local/jpeg8/include

mkdir -p /usr/local/jpeg8/man/man1

tar zxf jpegsrc.v8.tar.gz   

cd jpeg-

./configure --prefix=/usr/local/jpeg8/ --enable-shared --enable-static

make && make install

cd /root

tar zxf freetype-2.4.9.tar.gz

cd freetype-2.4.9

./configure --prefix=/usr/local/freetype

make && make install

tar zxf libgd-2.1.0.tar.gz

cd libgd-2.1.0

./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg8/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/

make && make install

echo "+++++++++++++PHP Install+++++++++++++"

sleep 4

Date=`date +%F/%H:%M`

echo "$Date start install php" >> /tmp/amp.log

cd /root

tar zxvf php-5.3.6.tar.gz -C /usr/src  

cd /usr/src/php-5.3.6/

echo "#########php configure ...........###############"

sleep 3

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache2/bin/apxs  --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml/ -with-png-dir=/usr/local/libpng/  --with-jpeg-dir=/usr/local/jpeg8/  --with-freetype-dir=/usr/local/freetype/ --with-gd --with-zlib-dir=/usr/local/zlib/ --with-mcrypt=/usr/local/mcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all  --enable-sockets


echo "#########php make && make install################"

sleep 3

make && make install

echo "#######濠电姷鏁搁崕鎴犲緤閽樺褰掑磼閻愯尙鐛ュ┑掳鍊曢幊搴ㄥ几娴h櫣纾兼い鏍ㄧ矤閻斾辜pd.conf###############"

echo "AddType application/x-httpd-php .php" >> /usr/local/apache2/conf/httpd.conf

sed 's/DirectoryIndex index.html/DirectoryIndex index.thml index.php/g' /usr/local/apache2/conf/httpd.conf > /root/http.conf.new

mv -f /root/http.conf.new /usr/local/apache2/conf/httpd.conf


/usr/local/apache2/bin/apachectl restart

if [ $? -eq 0 ]

then

Date=`date +%F/%H:%M`

echo "$Date php install success" >> /tmp/amp.log

echo "$Date apache & mysql & php install success" >> /tmp/amp.log

else

echo "$Date apache & mysql & php install fault" >> /tmp/amp.log  

fi


      amp_setup

               ;;

4)

echo "+++++++++++++postfix Install+++++++++++++"

         sleep 4

         Date=`date +%F/%H:%M`

         echo "$Date start install postfix" >> /tmp/amp.log

         service sendmail stop &> /dev/null

         chkconfig --level 2345 sendmail off

         groupadd -g 1200 postdrop

         groupadd -g 1000 postfix

         useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix

         cd /root

         tar zxvf postfix-2.4.6.tar.gz -C /usr/src

         gunzip postfix-2.4.6-vda-ng.patch.gz

         cd /usr/src/postfix-2.4.6

         patch -p1 < /root/postfix-2.4.6-vda-ng.patch

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

         make && make install

         cd /etc/postfix

         postconf -n > main2.cf

         mv -f main.cf main.cf.bak

         mv -f main2.cf main.cf

IPADDR=`ifconfig eth0|grep "inet addr"|awk '{print $2}'|cut -d: -f 2`

cat > main.cf <<EOF

command_directory = /usr/sbin

config_directory = /etc/postfix

daemon_directory = /usr/libexec/postfix

debug_peer_level = 2

html_directory = no

mail_owner = postfix

mailq_path = /usr/bin/mailq

manpage_directory = /usr/local/man

newaliases_path = /usr/bin/newaliases

queue_directory = /var/spool/postfix

readme_directory = no

sample_directory = /etc/postfix

sendmail_path = /usr/sbin/sendmail

setgid_group = postdrop

unknown_local_recipient_reject_code = 550

inet_interfaces = $IPADDR, 127.0.0.1

myhostname = mail.benet.com

mydomain = benet.com

myorigin = \$mydomain

mydestination = \$mydomain, \$myhostname

home_mailbox = Maildir/

EOF

         groupadd mailusers

         useradd -g mailusers -s /sbin/nologin xiaoqi

         useradd -g mailusers -s /sbin/nologin lisi

         echo "123456" | passwd --stdin xiaoqi   &> /dev/null

         echo "123456" | passwd --stdin lisi     &> /dev/null   

postfix start

         if [ $? -eq 0 ]

                 then

                 Date=`date +%F/%H:%M`

                 echo "$Date postfix install success" >> /tmp/amp.log

         fi

amp_setup       

;;

5)

echo "+++++++++++++dovecot Install+++++++++++++"

           sleep 4

           Date=`date +%F/%H:%M`

           echo "$Date start install dovecot" >> /tmp/amp.log       

useradd -M -s /sbin/nologin dovecot

tar zxvf /root/dovecot-1.1.4.tar.gz -C /usr/src

cd /usr/src/dovecot-1.1.4

./configure --sysconfdir=/etc --with-mysql

make && make install

cp /etc/dovecot-example.conf /etc/dovecot.conf

sed  -e '/ssl_disable =/d' -e '/protocols =/d' -e '/disable_plaintext_auth =/d' -e '/mail_location =/d' /etc/dovecot.conf > /tmp/dovecot.conf

mv -f /tmp/dovecot.conf /etc/dovecot.conf

echo "ssl_disable = yes" >> /etc/dovecot.conf

echo "protocols = pop3 imap" >> /etc/dovecot.conf

echo "disable_plaintext_auth = no" >> /etc/dovecot.conf

echo "mail_location = maildir:~/Maildir"  >> /etc/dovecot.conf


cat > /etc/pam.d/dovecot << EOF

auth        required        pam_nologin.so

auth        include        system-auth

account        include        system-auth

session include        system-auth

EOF


/usr/local/sbin/dovecot -c /etc/dovecot.conf

if [ $? -eq 0 ]

         then

Date=`date +%F/%H:%M`

echo "$Date dovecot install success" >> /tmp/amp.log

else

echo "$Date dovecot install fault" >> /tmp/amp.log   

fi

amp_setup

;;       

6)

echo "+++++++++++++squirrelmail Install+++++++++++++"

                sleep 4

                Date=`date +%F/%H:%M`

                echo "$Date start install squirrelmail" >> /tmp/amp.log

rm -rf /usr/local/apache2/htdocs/webmail

cd /root

tar jxvf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs/

cd /usr/local/apache2/htdocs/

mv squirrelmail-1.4.13 webmail

cd webmail/

tar jxvf ~/zh_CN-1.4.13-20071220.tar.bz2

mkdir -p attach data

chown -R daemon:daemon attach/ data/

chmod 730 attach/

cp config/config_default.php  config/config.php

sed -e '/squirrelmail_default_language =/d' -e '/default_charset =/d' -e '/domain =/d' -e '/smtpServerAddress =/d' -e '/smtpServerAddress =/d' -e '/smtpPort =/d' -e '/imap_server_type =/d' -e '/imapPort =/d' -e '/data_dir =/d' -e '/attachment_dir =/d' config/config.php > config/config.php.new


cat >> config/config.php.new << EOF

\$squirrelmail_default_language = 'zh_CN';

\$default_charset = 'zh_CN.UTF-8';

\$domain = 'benet.com';

\$smtpServerAddress = 'localhost';

\$smtpPort = 25;

\$imap_server_type = 'dovecot';

\$imapPort = 143;

\$data_dir = '/usr/local/apache2/htdocs/webmail/data/';

\$attachment_dir = '/usr/local/apache2/htdocs/webmail/attach/';

EOF

mv -f config/config.php.new config/config.php

/usr/local/apache2/bin/apachectl restart


if [ $? -eq 0 ]

      then

      Date=`date +%F/%H:%M`

      echo "$Date squirrelmail install success" >> /tmp/amp.log

      else

echo "$Date squirrelmail install fault" >> /tmp/amp.log   

fi

amp_setup

;;

yum)

read -p "修改yum本地源指向光碟"

echo "####################################################"

umount /dev/cdrom &> /dev/null

mkdir -p /mnt/rhel5

mount /dev/cdrom /mnt/rhel5

cat > /etc/yum.repos.d/rhel-debuginfo.repo << EOF

[Cluster]

name=Cluster Directory

baseurl=file:///mnt/rhel5/Cluster

enabled=1

gpgcheck=0


[ClusterStorage]

name=ClusterStorage Directory

baseurl=file:///mnt/rhel5/ClusterStorage

enabled=1

gpgcheck=0


[Server]

name=Server Directory

baseurl=file:///mnt/rhel5/Server

enabled=1

gpgcheck=0


[VT]

name=VT Directory

baseurl=file:///mnt/rhel5/VT

enabled=1

gpgcheck=0


EOF

sed -e '411s/url/\"\/mnt\/rhel5\/Server\"/g' /usr/lib/python2.4/site-packages/yum/yumRepo.py > /tmp/123

mv -f /tmp/123 /usr/lib/python2.4/site-packages/yum/yumRepo.py

;;

  Q|q)  

exit 0

               ;;

*)

amp_setup

               ;;

esac

}


start_menu()

{

amp_setup

}

####################################################

start_menu

####################################################

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-25977-1-1.html 上篇帖子: 编译安装postfix+sasl+mysql+dovecot+extmail构建完成的邮件系统(一) 下篇帖子: 组策略模板设置outlook2010 添加安全收件人列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表