首页 > 代码库 > 自动化安装postfix
自动化安装postfix
#!/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
####################################################
本文出自 “龙爱雪琪” 博客,转载请与作者联系!
自动化安装postfix