Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45495
  • 博文数量: 26
  • 博客积分: 1440
  • 博客等级: 上尉
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-17 23:21
文章分类

全部博文(26)

文章存档

2010年(26)

我的朋友
最近访客

分类:

2010-01-22 14:29:40

很久没写bash了,写这个,主要为自动部署lamp环境。编译时的参数可以在数组里更改。大批量部署时,还是使用编译好的二进制文件就好,方便,快捷。
 

[root@VM1 bin]# cat install.sh

#!/bin/bash

#auto install LAMP

FILE_DIR=/usr/local/src
INSTALL_DIR=/usr/local
PACKAGE="tar.gz"
VERSION=('2.2.14' '5.3.0' '5.1.42-linux-i686-icc-glibc23')
#first is apache version ;2th is php;3th is mysql#

APACHE_a="httpd"
APACHE_b="apache"
PHP="php"
MYSQL="mysql"
TAR_ACT="tar -xzvf"
APACHE_ARGV=('./configure --prefix=/usr/local/apache' 'hi')
PHP_ARGV=('./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config' 'ok')
###############MYSQL################

mysql_install(){
if [[ -d $INSTALL_DIR/${MYSQL} ]]
then
    echo "$MYSQL installed,please move it"
    exit 255
fi
cd $FILE_DIR
test -f ${MYSQL}-${VERSION[2]} &&rm -rf ${MYSQL}-${VERSION[2]}
$TAR_ACT ${MYSQL}-${VERSION[2]}.${PACKAGE}
cp -r ${MYSQL}-${VERSION[2]} $INSTALL_DIR/$MYSQL
cp -r ${MYSQL}-${VERSION[2]}/support-files/mysql.server /etc/rc.d/init.d/mysql
cp -r ${MYSQL}-${VERSION[2]}/support-files/my-huge.cnf /etc/my.cnf
sed -i '/^log-bin=mysql-bin/i\
datadir=/data'
/etc/my.cnf
mkdir /data
#groupadd mysql

#useradd -g mysql mysql

cd $INSTALL_DIR/$MYSQL
chown -R mysql:mysql $INSTALL_DIR/$MYSQL
chown -R mysql:mysql /data
./scripts/mysql_install_db --user=mysql

}
###############APACHE###############

apache_install(){
if [[ -d $INSTALL_DIR/${APACHE_b} ]]
then
    echo "${APACHE_b} was installed,please move it"
    exit 255
fi
cd $FILE_DIR
test -f ${APACHE_a}-${VERSION[0]} &&rm -rf ${APACHE_a}-${VERSION[0]}
$TAR_ACT ${APACHE_a}-${VERSION[0]}.${PACKAGE}
cd ${APACHE_a}-${VERSION[0]}
echo $APACHE_ARGV
$1
make &&make install
}
##################PHP##############

php_install(){
if [[ -d $INSTALL_DIR/${PHP} ]]
then
    echo "$PHP installed,please move it"
    exit 255
fi
cd $FILE_DIR
test -f ${PHP}-${VERSION[1]} &&rm -rf ${PHP}-${VERSION[1]}
$TAR_ACT ${PHP}-${VERSION[1]}.${PACKAGE}
cd $FILE_DIR/$PHP-${VERSION[1]}
$1
make &&make install
echo install ok
yes |cp -r php.ini-production $INSTALL/$PHP/lib/php.ini

}
##############main##################

cat<<!
choose 'A --to install apahce'
       'M --to install mysql'
       'P --to install php'
       'L --to install apache mysql php'
       'Q -- to quit current shell'
!
read -n1 -t10 -p "Choose one of L-A-M-P-W:::" line
echo -e "\nyour input is $line\n"
sleep 2
case $line in
A)
apache_install "${APACHE_ARGV[0]}"
;;
Q)
exit 0
;;
M)
mysql_install
;;
P)
php_install "$PHP_ARGV{[0]}"
;;
L)
##set configure in @APACHE_ARGV and @PHP_ARGV

#lamp_install

apache_install "${APACHE_ARGV[0]}"
mysql_install
php_install "$PHP_ARGV{[0]}"

;;
*)
echo 'your input have some mistake'
exit
;;
esac
exit 0


阅读(538) | 评论(1) | 转发(0) |
0

上一篇:awk 处理apachelog

下一篇:mysql-proxy 记录

给主人留下些什么吧!~~

chinaunix网友2010-01-31 14:52:19

好东西